我在 Access 中存储了一个简单的访问查询,但它似乎不起作用。查询是这样的...
SELECT blah FROM table WHERE (((tableID) IN ([@myArrayOfIDs])));
很简单,但当然它只是不想工作?如果我写 IN (16,17,21) 那么结果会正确返回,但是按照我现在的方式,什么也没有回来。我错过了什么?
编辑:在将数组传递给 Access 之前,我使用 VB.NET 将数组转换为逗号分隔值的字符串。
你得到的只是 IN(['16,17,21']),它不是测试单个数字。我不记得 Access 支持多个可变数量的参数。
Access db 引擎将不接受IN
值列表的参数。IOW,这样的事情永远不会奏效......
tableID IN ([a_parameter_string])
您需要动态创建 SQL 语句并将逗号分隔值的字符串插入 SQL 语句文本。
或者你可以做这样的事情......
"," & [a_parameter_string] & "," Like "%," & tableID & ",%"
但是那个看起来很丑,并且不能使用索引检索来加速查询。