Следуя этот вопрос, как мне пойти о записи результирующего значения даты в поле (DEADLINE (25 WD)
), которое находится в форме?
(Поле находится в форме, которая связана с таблицей.)
Следуя этот вопрос, как мне пойти о записи результирующего значения даты в поле (DEADLINE (25 WD)
), которое находится в форме?
(Поле находится в форме, которая связана с таблицей.)
Реальное решение состоит в том, чтобы не хранить этот «вычисление», а использовать его, когда и где это необходимо. Расчеты относятся к запросам, а не к таблицам. Причина, по которой лучше использовать в запросах, чем хранить в таблицах с использованием метода формы, заключается в том, что при изменении DateOpened
крайний срок автоматически обновляется. НО это происходит, только если вы используете форму для редактирования информации. Если вы редактируете дату непосредственно в таблице или используете запрос для обновления записи, крайний срок не будет согласованным.
Однако, если вы используете запрос типа
SELECT
DateOpened,
addWorkDays(25, DateOpened) As Deadline
FROM
yourTable;
Это будет работать на основе DateOpened, как при запуске запроса. Даже если он будет изменен в запросе (пока он открыт), крайний срок будет соответствующим образом обновлен. Вы теряете эту гибкость, когда используете форму для хранения вычислений обратно в таблицу.
При этом вам нужно рассчитать это на основе другого поля; Я бы посоветовал вам использовать событие AfterUpdate
элемента управления DateOpened.
Private sub DateOpened_AfterUpdate()
If Len(Me.DateOpened & vbNullString) <> 0 Then
Me.DeadlineDate = addWorkDays(25, DateOpened)
Else
Me.DeadlineDate = ""
End If
End Sub
Поскольку элемент управления привязан к таблице, запускать код обновления не нужно. Это автоматически заполнит крайний срок.
Date opened
и 25WD
. Функция addWorkDays
установлена в качестве источника управления для 25WD
. Спасибо.
- person Mus; 05.06.2015