似乎 WHERE 子句在我的 VBA 代码中不起作用

It seems like WHERE clause does not work in my VBA code

Dim rs As New ADODB.Recordset
Dim str SQL AS String
Dim strConn As String
Dim FUMR_date As Date

FUMR_date = "2019-02-20 11:00"
strSQL = "SELECT * FROM [initial DB] " & _
        " WHERE (date(LNT) < date(FUMR_date) )"


strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\Alldata.mdb;" 
rs.Open strSQL, strConn, adOpenStatic, adLockReadOnly, adCmdText

Alldata.mdb 中有一个名为 table 的 Initial DB。 LNT 是 Initial DB table 的列名。日期信息在 LNT 列中。

我想做的是调用LNT值早于FUMR_date的数据集。但是我的代码根本不起作用。我总是遇到运行时错误。

我也试过了

    " WHERE (Datevalue(LNT) < Datevalue(FUMR_date) )"

但没有用。然而,

    " WHERE (Datevalue(LNT) < Datevalue(now()) )"

此代码有效。我不知道为什么。请让我知道问题。

命令字符串直接发送到数据库。但是,FUMR_date 是一个 VBA 变量,在您的数据库中未知。
要获得快速解决方案,请写 " WHERE (date(LNT) < date('" & FUMR_date & "') )" - 这会将变量的内容(作为字符串)放入 Where 子句中。

但是,最好使用 ADODB 命令并为日期添加 ADODB 参数,这样您就不必关心日期格式