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

时间:2015-08-02 17:14:20

标签: vba ms-access access-vba ms-access-2013

加载主表单后,我希望Access检查今天是否已提交记录。如果是这样,我希望该标签不可见。

但是,使用下面的代码,我收到“条件表达式中的数据类型不匹配”。 (运行时错误'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

1 个答案:

答案 0 :(得分:1)

如果 CalibrationDate 字段是日期/时间数据类型,则会出现该错误。在这种情况下,请将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