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

INAccess db エンジンは、値リストのパラメーターを受け入れません。IOW、このようなものは決して機能しません...

tableID IN ([a_parameter_string])

SQL ステートメントを動的に作成し、コンマ区切り値の文字列を SQL ステートメント テキストに挿入する必要があります。

または、代わりにこのようなことを行うこともできます...

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

しかし、これは醜いようで、インデックス付き検索を使用してクエリを高速化することはできません。

于 2013-04-12T16:29:23.337 に答える