在两个日期之间选择 - 我总是得到运行时错误3464

时间:2014-05-06 23:45:36

标签: sql vba ms-access dao

我使用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'

列&#39; ImportData&#39;在我的表中也是日期/时间类型,为什么这不起作用?也是在没有'或使用<>等情况下尝试过,这没有帮助。有任何想法吗?谢谢

编辑:

如果我愿意的话:

"SELECT * FROM Table1 WHERE ImportData between #" & date1 & "# AND #" & date2 & "#"

然后我得到Runtime Error 3075 - 日期

中的语法错误

1 个答案:

答案 0 :(得分:2)

对于日期值,请使用#而不是单引号:

strSQL = "SELECT * FROM Table1 WHERE ImportData between #" & date1 & "# AND #" & date2 & "#"