我正在尝试使用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语句的前半部分。
我尝试了一些变体,使用双引号,双引号,无引号等等。
有什么建议吗?
感谢。
答案 0 :(得分:3)
在Excel VBA中,字符串标识符为" (双引号)字符。当用双引号括起来时,你不需要将单引号字符加倍,以便传递给数据库。
试试这个:
strSql = "SELECT * FROM Pricing WHERE Account In ('1234', 'ABCD')"
答案 1 :(得分:-1)
请用这个试试:
strSql = "SELECT * FROM Pricing WHERE Account In ('1234', 'ABCD')"