我有一个名为 tblAuditForms 的表。此表包含一个名为 AuditDate 的日期列。该表以“短日期”格式存储日期,因此时间不存储在表中。我想从此表中选择日期与 6/11/2020 匹配的记录。我已确认表中有许多包含此日期的记录。
以下是我目前所掌握的信息:
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 语句的格式上,但我不知道怎么回事。我还用 # 字符包围了日期,但似乎没有帮助。在创建记录集时,在日期周围添加 ' 字符也会失败。
我很感激任何帮助。谢谢!
答案1
进一步检查我的表格后,我发现 AuditDate 字段实际上也存储了时间。这是因为这些特定记录是使用单独的 VBA 宏插入到表中的,不受任何验证规则的约束。