Ms access 如何检查今天是否已创建记录
加载主窗体后,我希望Access检查今天是否已提交记录。如果是这样,我希望该选项卡不可见 但是,使用下面的代码,我收到“条件表达式中的数据类型不匹配”(运行时错误“3464”)Ms access 如何检查今天是否已创建记录,ms-access,vba,ms-access-2013,Ms Access,Vba,Ms Access 2013,加载主窗体后,我希望Access检查今天是否已提交记录。如果是这样,我希望该选项卡不可见 但是,使用下面的代码,我收到“条件表达式中的数据类型不匹配”(运行时错误“3464”) 如果CalibrationDate字段是日期/时间数据类型,则会出现该错误。在这种情况下,在#字符中包含日期的值,而不是'字符 “rs.FindLast”校准日期=“&Date&” rs.FindLast“CalibrationDate=#”和Date&“#” 此外,您还可以格式化日期值,以避免d/m/yyyy和m/d
如果CalibrationDate字段是日期/时间数据类型,则会出现该错误。在这种情况下,在
#
字符中包含日期的值,而不是'
字符
“rs.FindLast”校准日期=“&Date&”
rs.FindLast“CalibrationDate=#”和Date&“#”
此外,您还可以格式化日期
值,以避免d/m/yyyy和m/d/yyyy格式日期之间的任何可能混淆
rs.FindLast“CalibrationDate=“&Format(Date,\\\\ yyyy-m-d\\”)
但是,只使用Date
函数名应该更简单,而不必担心格式问题
rs.FindLast“CalibrationDate=Date()”
更简单的是,使用DCount()
计算CalibrationDate包含今天日期的行数。您不需要使用这种方法来处理记录集
如果DCount(“*”,“tblCalibration”,“CalibrationDate=Date()”)=0,则
Me.navCalibration.Visible=真
其他的
Me.navCalibration.Visible=错误
如果结束
Private Sub Form_Load()
Set db = CurrentDb
Set rs = db.OpenRecordset("tblCalibration", dbOpenSnapshot, dbReadOnly)
rs.FindLast "CalibrationDate='" & Date & "'"
If rs.NoMatch Then
navCalibration.Visible = True
Else
navCalibration.Visible = False
End If
End Sub