我使用Access和VBA通过DAO读取一些表。我想读一下我的表中date1和date2之间的所有内容。我有这样的事情:
Dim date1 As Date
Dim date2 As Date
' ...
Dim strSQL As String
Dim rs As DAO.Recordset
strSQL = "SELECT * FROM Table1 WHERE ImportData between '" & date1 & "' AND '" & date2 & "'"
Set rs = CurrentDb.OpenRecordset(strSQL) 'Runtime Error 3464
我刚收到运行时错误3464 Data type mismatch
不知道为什么,如果我把strSQL放在MsgBox中,我得到的查询是这样的:
SELECT * FROM Table1 WHERE ImportData between '15.03.2014' AND '11.03.2014'
列' ImportData'在我的表中也是日期/时间类型,为什么这不起作用?也是在没有'
或使用<>
等情况下尝试过,这没有帮助。有任何想法吗?谢谢
编辑:
如果我愿意的话:
"SELECT * FROM Table1 WHERE ImportData between #" & date1 & "# AND #" & date2 & "#"
然后我得到Runtime Error 3075
- 日期
答案 0 :(得分:2)
对于日期值,请使用#而不是单引号:
strSQL = "SELECT * FROM Table1 WHERE ImportData between #" & date1 & "# AND #" & date2 & "#"