Access 2013:当 yes/no 字段标记为 "Yes" 时,我正在尝试 return 今天的日期
Access 2013: I am trying to return today's date when a yes/no fields is marked as "Yes"
我正在尝试 return 日期字段中的今天日期,而另一个字段被标记为 "Yes"。我尝试了以下表达式但无济于事。我对表达的经验有限,非常感谢任何指导。如果该字段没有 "Yes",则日期字段可以为空。我无法将 Approved 字段的默认值设置为 "No"。
批准日期:IIf([Approved]=True,Today(),Null)
如果我设置日期,它会起作用,但日期是动态的,所以这不是很有帮助。
批准日期:IIf([Approved]=True,5/1/2016,Null)
提前感谢您的帮助。
好的,所以我花了一点时间研究如何用表达式来做到这一点。答案是你不能,至少不能没有辅助函数。所以,我的混合解决方案是:
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])))
这种方法可以避免在表单下制作 class 模块。并且您可以将所有此类代码保存在一个公共模块中,这样您就可以为其他形式构建此类函数的库。
(旧答案 2)
根据您的回答,您可以向 Approved 控件添加一个 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()。这样,它就会保存到 table,并且您可以永久记录它何时获得批准。
我正在尝试 return 日期字段中的今天日期,而另一个字段被标记为 "Yes"。我尝试了以下表达式但无济于事。我对表达的经验有限,非常感谢任何指导。如果该字段没有 "Yes",则日期字段可以为空。我无法将 Approved 字段的默认值设置为 "No"。
批准日期:IIf([Approved]=True,Today(),Null)
如果我设置日期,它会起作用,但日期是动态的,所以这不是很有帮助。 批准日期:IIf([Approved]=True,5/1/2016,Null)
提前感谢您的帮助。
好的,所以我花了一点时间研究如何用表达式来做到这一点。答案是你不能,至少不能没有辅助函数。所以,我的混合解决方案是:
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])))
这种方法可以避免在表单下制作 class 模块。并且您可以将所有此类代码保存在一个公共模块中,这样您就可以为其他形式构建此类函数的库。
(旧答案 2)
根据您的回答,您可以向 Approved 控件添加一个 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()。这样,它就会保存到 table,并且您可以永久记录它何时获得批准。