【发布时间】:2015-11-28 22:31:38
【问题描述】:
我正在尝试运行一个查询,作为 VBA 代码的一部分,它查看日期字段中包含今天日期的所有记录并将它们写入记录集。但是,以下 SQL 语句不起作用。 它不返回任何记录,即使 DateEntered 字段中明确包含今天日期的记录。
dim cn as new adodb.connection
dim rs as new adodb.recordset
dim SQL as string
SQL = "SELECT * FROM tbl1LinkAuths WHERE DateEntered = #" & Date & "# "
Debug.Print SQL
cn.Open cnDB
rs.Open SQL, cn, , adLockPessimistic
我一直使用这种形式的数据库连接,它适用于我代码中的其他查询,只是日期识别出了问题。
【问题讨论】:
-
至少使用
BuildCriteria形成正确的日期/时间格式SQL = "SELECT * FROM tbl1LinkAuths WHERE " & BuildCriteria("DateEntered",dbDate,Date) -
日期的格式可能因存储它们的服务器而异。您是否尝试过在没有日期匹配的情况下获取前 10 条记录并比较(通过 MsgBox)显示的日期与在 VBA 中输入的日期字段
-
DateEntered 有时间部分吗?
-
有可能,您的日期存储了不同的时间,而您要比较的时间根本没有时间,反之亦然
标签: sql excel vba date ms-access