0

現在、ODBC を介してリンクされたいくつかのテーブルのデータを照会する複数のクエリと、ユーザー インターフェイスを介して編集されるいくつかの一時テーブルがあります。クエリには、次のような複雑な基準があります。
SELECT * from ThingsData
WHERE (Thing In(SELECT Thing from ListOfThings) AND getThingFlag() = True);
この場合、Thing はフィールドであり、ListOfThings は、ユーザーがユーザー インターフェイスから定義する一時テーブルです。基本的に、ユーザーは、データをフィルタリングしたいフィールド Thing のリストをまとめ、ユーザーがリストに追加した Thing 値に一致するデータのみをクエリしたいと考えています。現在、クエリしているデータはリンクされた ODBC テーブルにあり、一時テーブル ListOfThings は単なる通常のローカル テーブルであり、すべてがうまく機能します。リンクされたテーブルを取り除き、代わりにパススルー クエリを使用したいと考えています。ただし、そうすると、基準が非常に単純でない限り、エラーが発生します。

「ODBC -- 呼び出しに失敗しました。オブジェクト名 ListOfThings が無効です。」

基準がない場合は、うまく機能します。

簡単に言うと、パススルー クエリで、モジュールの SELECT と関数を含む条件を適用し、基本的にローカル テーブルのデータに基づいてパススルー テーブルをフィルター処理するにはどうすればよいですか?

4

1 に答える 1

0

その ODBC リンクの反対側には何がありますか? パススルー クエリでは、Access 構文ではなく、データベース サーバーが必要とする構文に従う必要があります。最初に、大/小文字混合のテーブル名を使用できないのではないかと疑い、名前としてlistofthingsを試してみます。

データベース サーバーに対してクエリを直接テストするために使用できるツールがある場合は、そこでクエリを実行してから、それをカット アンド ペーストして Access パススルー クエリに貼り付けます。

于 2009-11-10T19:10:02.793 に答える