首页 > 解决方案 > 将变量传递给 sql 查询时,ms 访问条件表达式中的数据类型不匹配

问题描述

我收到与以下代码不匹配的数据类型。但是,当我进行调试打印时,它看起来不错。

Dim strSQL As String
Dim StartDate As Date
Dim EndDate As Date

StartDate = “1/1/2019”
EndDate = “2/1/2019”


strSQL = SELECT Table1.Start INTO 1 FROM Table1 WHERE (((Table1.Start) BETWEEN ‘“ & StartDate & “‘“ & “ AND ‘“ & EndDate & “‘));”

Debug.Print strSQL

Docmd.RunSQL strSQL 

标签: sqlms-accessvba

解决方案


对日期和日期值表达式使用正确的语法:

Dim strSQL As String
Dim StartDate As Date
Dim EndDate As Date

StartDate = #1/1/2019#
EndDate = #2/1/2019#


strSQL = "SELECT Table1.Start INTO 1 FROM Table1 WHERE (((Table1.Start) BETWEEN #" & Format(StartDate, "yyyy\/mm\/dd") & "# AND #" & Format(EndDate, "yyyy\/mm\/dd") & "#);"

推荐阅读