Excel VBA,查询表达式中的语法错误(缺少运算符)

时间:2016-01-11 18:56:58

标签: string vba excel-vba ms-access excel

我正在尝试使用VBA for Excel从MS Access数据库中检索结果集。在VBA代码中,我构造了一个等于:

的字符串
strSql = "SELECT * FROM Pricing WHERE Account In (''1234'', ''ABCD'') '; "

请注意,SQL语句中的字符串周围有2个单引号。在分号前还有一个单引号。如果我没弄错的话,评估为:

  

SELECT * FROM Pricing WHERE Account In('1234','ABCD');

此查询在MS Access中直接运行时可以正常工作。但是,在Excel VBA中,我不断收到运行时错误:

  

查询表达式'Account In('''1234'',''ABCD'')'中的语法错误(缺少运算符); “

请注意,此错误实际上切断了SQL语句的前半部分。

我尝试了一些变体,使用双引号,双引号,无引号等等。

有什么建议吗?

感谢。

2 个答案:

答案 0 :(得分:3)

在Excel VBA中,字符串标识符为" (双引号)字符。当用双引号括起来时,你不需要将单引号字符加倍,以便传递给数据库。

试试这个:

strSql = "SELECT * FROM Pricing WHERE Account In ('1234', 'ABCD')"

答案 1 :(得分:-1)

请用这个试试:

strSql = "SELECT * FROM Pricing WHERE Account In ('1234', 'ABCD')"