2016-07-14 97 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:很好。但是你應該提到錯誤是什麼。我懷疑「標準表達式中的數據類型不匹配」。請通過編輯提及您的問題中的錯誤。它將對其他用戶更有用。 –

相關問題