Vector3d
Alldata.mdb中有一个名为Initial DB的表。 LNT是Initial DB表的列名。日期信息在LNT列中。
我想做的是调用LNT值早于FUMR_date的数据集。但是我的代码根本不起作用。总是出现运行时错误。
我也尝试过
dSorted[0]
,但没有用。但是,
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
此代码有效。我不知道为什么请让我知道问题所在。
答案 0 :(得分:2)
命令字符串直接发送到数据库。但是,FUMR_date
是VBA变量,在数据库中未知。
为了快速解决方案,请写
" WHERE (date(LNT) < date('" & FUMR_date & "') )"
-这会将变量的内容(作为字符串)放入Where-Clause中。
但是,最好使用ADODB-Command并为日期添加ADODB-Parameter,这样您就不必担心日期格式了