1

我在 Access 中存储了一个简单的访问查询,但它似乎不起作用。查询是这样的...

SELECT blah FROM table WHERE (((tableID) IN ([@myArrayOfIDs])));

很简单,但当然它只是不想工作?如果我写 IN (16,17,21) 那么结果会正确返回,但是按照我现在的方式,什么也没有回来。我错过了什么?

编辑:在将数组传递给 Access 之前,我使用 VB.NET 将数组转换为逗号分隔值的字符串。

4

2 回答 2

1

你得到的只是 IN(['16,17,21']),它不是测试单个数字。我不记得 Access 支持多个可变数量的参数。

于 2013-04-12T16:29:07.063 回答
1

Access db 引擎将不接受IN值列表的参数。IOW,这样的事情永远不会奏效......

tableID IN ([a_parameter_string])

您需要动态创建 SQL 语句并将逗号分隔值的字符串插入 SQL 语句文本。

或者你可以做这样的事情......

"," & [a_parameter_string] & "," Like "%," & tableID & ",%"

但是那个看起来很丑,并且不能使用索引检索来加速查询。

于 2013-04-12T16:29:23.337 回答