如何检查今天是否已创建记录
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/yyyy 和 m/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
加载主窗体后,我希望 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/yyyy 和 m/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