2016-07-14 559 views
0

我建立SQL查询在VBA,下面返回错误:运行时错误“-2147217900(80040E14)”错误的语法时才(缺少操作室),在SQL查询表达式在VBA

stSQLstring = "SELECT * FROM [" & sheetName & "$] 
       WHERE [" & headerName & "] in (" & stNodes & ");" 

调试。打印stSQLstring给出:

SELECT * FROM [sheetName$] 
WHERE [headerName] in ('3','4','5','6','16','45','64','65','67','71','76','79','80','86','89','103','115','116','124','142','145','160'); 

我然后使用ACE.OLEDB查询外部工作簿(我认为这部分是不错,因为与其它SQL语句的工作,只是没有这一项)。

我会很感激你的帮助!

+2

而错误是...? – Siyual

回答

1

使用数字时,不应使用单引号。

SELECT * FROM [sheetName$] WHERE [headerName] in (3,4,5,6,16,45,64,65,67,71,76,79,80,86,89,103,115,116,124,142,145,160); 
+0

这是真的,除非数字存储在格式为文本的单元格中。但是,这似乎不是这种情况,因为它会在单引号中使用数字。 –

+0

像梦一样工作,谢谢! –

+0

@Amy Rollinson:很好。但是你应该提到错误是什么。我怀疑“标准表达式中的数据类型不匹配”。请通过编辑提及您的问题中的错误。它将对其他用户更有用。 –

相关问题