我试图在日期字段中返回今天的日期,此时另一个字段标记为"是"。我尝试了以下表达但无济于事。我对表达的经验有限,非常感谢任何指导。如果该字段没有"是"日期字段可以为空白。我无法将默认设置为"否"对于已批准的字段。
批准日期:IIf([已批准] =真,今天(),空)
如果我设置日期,它会起作用,但日期是动态的,所以这不是真的有用。 批准日期:IIf([已批准] = True,2016年5月1日,无效)
提前感谢您的帮助。
答案 0 :(得分:0)
好的,所以我花了一点时间看一下表达式如何做到这一点。答案是你不能,至少没有辅助功能。所以,我的混合解决方案是:
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)在Approved复选框的AfterUpdate
事件中,输入:
=SetControlValue([ApprovedDate],Date(),([Approved]=True) AND (IsNull([ApprovedDate])))
这种方法可以避免在表单下创建类模块。并且您可以将所有这些代码保存在一个公共模块中,这样您就可以为其他表单构建这样的函数库。
(旧回答2)
根据您的回答,您可以做的是向Approved控件添加AfterUpdate
事件,其中包含以下内容:
Private Sub Approved_AfterUpdate()
If (Approved.Value = True) And IsNull(ApprovedDate.Value) Then
ApprovedDate.Value = Date()
End If
End Sub
首次选中已批准的复选框时,这将设置一次批准的日期。如果您需要不同的行为,可以轻松修改。
(旧答案1)
我认为你倒退了。 当[已批准]设置为True时,设置[ApprovedDate] = Today()。这样,它就会保存到表格中,并且您可以获得批准时间的永久记录。