2013-08-27 64 views
0

我需要通過ADO從Excel工作簿中查詢XLS「數據庫」。一次SQL查詢各種ID

我使用了以下內容:

...代碼

objRecordset.Open "SELECT * FROM [MY_TABLE$] WHERE Code_ID = " & the_ID & ", objConnection, adOpenStatic, adLockOptimistic, adCmdText 

...代碼

它運行好,如果我只是在尋找一個ID(the_ID),例如1234

但我需要的是尋找各種the_ID的同時....

因此,例如ID1234,1225,6225,5656的任何匹配應該返回查詢。

或多或少的一個Id的數組。

任何幫助表示讚賞...

+1

尋找IN()運算符。 – Arvo

回答

3

你可以加入使用Join ID數組,然後在sql,例如使用IN

Dim ids(3) As String 

ids(0) = "1234" 
ids(1) = "1225" 
ids(2) = "6225" 

Dim sql As String 
sql = "SELECT * FROM [MY_TABLE$] WHERE Code_ID IN (" & Join(ids, ",") & ")" 

如果你正在從一系列的IDS則this answer將是你的興趣。

注意

由於您只查詢自己的電子表格我假定安全可能不是一個主要問題,但我通常會建議使用參數化查詢,這要麼需要已知數量的ID,或你將不得不動態生成的SQL,是這樣的:

WHERE Code_id IN (@Param1, @Param2, @Param3, @Param4) 

應該不會太難讓你這樣的SQL然後添加您的ID作爲參數記錄。我很久沒有使用VBA了,所以我不能完全記得添加參數的正確方法(或者甚至可能)。如果我記得我會更新答案。

+0

你的答案很好,我不得不添加代碼從「這個答案」的鏈接,因爲我有一個範圍上的Id號碼。 – user1135218