我有一个名为 tblAuditForms 的表。此表包括一个名为 AuditDate 的日期列。该表以“短日期”格式存储日期,因此时间不存储在表中。我想从此表中选择日期与 2020 年 6 月 11 日匹配的记录。我已确认表中有许多记录包含此日期。
这是我到目前为止所拥有的:
Dim myAuditDate As Date
Dim db As DAO.Database
Dim rst As DAO.Recordset2
Dim strSQL As String
myAuditDate = CDate("6/11/2020")
set db = CurrentDb
strSQL = "SELECT * FROM tblAuditForms WHERE AuditDate = " & Format(myAuditDate, "mm/dd/yyyy") & ";"
Set rst = db.OpenRecordset(strSQL)
rst.MoveFirst
该代码一直到失败的 rst.MoveFirst 行。看来记录集是空的。正如我之前提到的,我知道该表包含我提供的那个日期的记录。我怀疑问题出在我的 SQL 语句的格式上,但我不知道怎么做。我还用 # 个字符包围了日期,但这似乎没有帮助。在创建记录集时,在日期周围包含 ' 字符也会失败。
我很感激任何帮助。谢谢!
在进一步检查我的表后,我发现 AuditDate 字段实际上也在存储时间。这是因为这些特定记录已使用单独的 VBA 宏插入到表中,并且不受任何验证规则的约束。