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