Ms access 如何检查今天是否已创建记录

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

加载主窗体后,我希望Access检查今天是否已提交记录。如果是这样,我希望该选项卡不可见

但是,使用下面的代码,我收到“条件表达式中的数据类型不匹配”(运行时错误“3464”)


如果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