0

我需要通过 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。

任何帮助表示赞赏...

4

1 回答 1

2

您可以在 sql 中使用Jointhen加入 id 数组,例如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 作为参数添加到记录集中应该不会太难。不过,我已经很长时间没有使用 VBA,所以我不太记得添加参数的正确方法(或者是否有可能)。如果我记得我会更新答案。

于 2013-08-27T10:32:12.030 回答