Access 2013: я пытаюсь вернуть сегодняшнюю дату, когда поля "да / нет" помечены как "да"
Я пытаюсь вернуть сегодняшнюю дату в поле даты, когда другое поле помечено как "Да". Я попробовал следующее выражение, но безрезультатно. Я имею ограниченный опыт работы с выражениями и очень ценю любые рекомендации. Если поле не имеет "Да", поле даты может быть пустым. Я не могу установить значение по умолчанию "Нет" для поля Утверждено.
Дата утверждения: IIf([Одобрено]= Истина, Сегодня (), Нуль)
Если я установлю дату, она будет работать, но дата будет динамичной, так что это не очень полезно. Дата утверждения: IIf([Одобрено]= Истина,5/1/2016, Нуль)
Спасибо заранее за вашу помощь.
1 ответ
Хорошо, я потратил немного времени на то, чтобы сделать это с помощью выражения. Ответ: вы не можете, по крайней мере, без вспомогательной функции. Итак, мое гибридное решение:
1) Создать функцию в стандартном модуле:
Public Function SetControlValue( _
ByVal ctlControl As Access.Control, _
ByVal varValue As Variant, _
Optional ByVal varTest As Variant = True)
If (varTest) Then
ctlControl.Value = varValue
End If
End Function
2) В AfterUpdate
событие для флажка Утверждено, введите:
=SetControlValue([ApprovedDate],Date(),([Approved]=True) AND (IsNull([ApprovedDate])))
Такой подход избавляет вас от создания модуля класса в форме. И вы можете хранить весь такой код в общем модуле, чтобы вы могли собрать библиотеку таких функций для других форм.
(старый ответ 2)
Исходя из ваших ответов, вы можете добавить AfterUpdate
событие для Утвержденного элемента управления, которое делает что-то вроде:
Private Sub Approved_AfterUpdate()
If (Approved.Value = True) And IsNull(ApprovedDate.Value) Then
ApprovedDate.Value = Date()
End If
End Sub
Это установит утвержденную дату один раз, когда проверенный флажок будет впервые установлен. Если вам нужно другое поведение, это можно легко изменить.
(старый ответ 1)
Я думаю, что у вас есть это задом наперед. Если для параметра [Approved] установлено значение True, установите [ApprovedDate] = Today(). Таким образом, он сохраняется в таблице, и у вас есть постоянная запись о том, когда он был утвержден.