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

How to check if a record has already been created today

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

但是,使用下面的代码,我收到 "Data type mismatch in criteria expression."(运行时错误“3464”)

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

如果您的 CalibrationDate 字段是 Date/Time 数据类型,您将收到该错误。在这种情况下,将 Date 的值包含在 # 而不是 ' 个字符中。

'rs.FindLast "CalibrationDate='" & Date & "'"
rs.FindLast "CalibrationDate=#" & Date & "#"

此外,您可以格式化 Date 值以避免 d/m/yyyym/d/yyyy 之间可能出现的混淆 格式化日期。

rs.FindLast "CalibrationDate=" & Format(Date, "\#yyyy-m-d\#")

然而,只使用 Date 函数的名称而不用担心格式化应该更简单。

rs.FindLast "CalibrationDate=Date()"

更简单,使用DCount() 计算CalibrationDate 包含今天日期的行数。使用这种方法,您无需为记录集操心。

If DCount("*", "tblCalibration", "CalibrationDate=Date()") = 0 Then
    Me.navCalibration.Visible = True
Else
    Me.navCalibration.Visible = False
End If