SQL一次查询各种ID

时间:2013-08-27 10:12:04

标签: sql excel vba

我需要通过ADO从Excel工作簿中查询XLS“数据库”。

我使用以下内容:

...代码

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

...代码

如果我只搜索Id(the_ID),例如1234

,它运行良好

但我需要的是同时搜索各种the_ID ....

例如,ID 1234,1225,6225,5656的任何匹配都应该在查询中返回。

或多或少是Id的数组。

感谢任何帮助...

1 个答案:

答案 0 :(得分: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, ",") & ")"

如果您从某个范围获取ID,那么您将感兴趣this answer

注意

由于您只是查询自己的电子表格,我认为安全性可能不是主要问题,但我通常建议使用参数化查询,这可能需要已知数量的ID,或者您必须生成sql苍蝇,像是:

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

制作这样的sql应该不会太难,然后将你的id作为参数添加到记录集中。我很久没有使用VBA了,所以我不记得添加参数的正确方法(或者甚至可能)。如果我记得我会更新答案。