SQL一次查询各种ID

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

我正在使用以下内容:

…码

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

…码

它运行良好,如果我只是在寻找一个Id(the_ID),例如1234

但是我需要的是同时search各种the_ID。

因此,例如ID为1234,1225,6225,5656的任何匹配应该返回查询。

所以或多或less是一个Id的数组。

任何帮助表示赞赏…

你可以使用JoinJoin 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,那么这个答案将是你感兴趣的。

注意

既然你只是查询自己的电子表格,我认为安全可能不是一个主要的担心,但是我通常会推荐使用参数化查询,这可能需要一个已知数量的ID,或者你将不得不生成SQL,就像是:

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

让你的sql像这样不要太难,然后把你的ID作为参数添加到logging集。 我很久没有使用VBA,所以我不能完全记得添加参数的正确方法(或者甚至可能)。 如果我记得我会更新答案。