【发布时间】:2019-08-06 17:59:55
【问题描述】:
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 中有一个名为 Initial DB 的表。 LNT 是 Initial DB 表的列名。日期信息在 LNT 列中。
我要做的是调用 LNT 值早于 FUMR_date 的数据集。但是我的代码根本不起作用。我总是遇到运行时错误。
我也试过
" WHERE (Datevalue(LNT) < Datevalue(FUMR_date) )"
它没有工作。然而,
" WHERE (Datevalue(LNT) < Datevalue(now()) )"
此代码有效。我不知道为什么。请让我知道问题所在。
【问题讨论】:
-
如果您在 Access 中编写此查询并将值替换为您的变量,此查询是否有效?如果它确实在 Access 中工作,那么更多地查看进入查询的值。尝试使用
Debug.Print variable查看您提供的值 -
您实际上并没有使用 FUMR_Date 的变量,这是故意的吗?或者应该是
strSQL = "SELECT * FROM [initial DB] " & _ " WHERE (date(LNT) < date(" & FUMR_date & ") )"