質問: access where条件式について access where条件式について 最近マクロでwhere条件式による抽出を知った初心者です。 現在単ページ表示のフォームから、表示されているid番号のレポートを表示させたいと考えているのですが、そのレポートをレコードソースになるマスターテーブルから [form]![id]=[マスターテーブル]![id] とすると該当するレポートが表示されるのですが、 レポートのレコードソースをクエリに変更 [form]![id]=[マスターテーブルクエリ]![id] に変更するとすべて空で表示されてしまいます。 クエリを使用することは出来ないのでしょうか? データベースの基礎があやふやなこと、where条件を最近知ったことなどから、検討違いなことを質問していたら申し訳ありません。 また質問に対して、足りない情報があればご指摘願います。 os windows xp access 2003
回答: where句の条件式は現実にあるオブジェクト名を 使わなければなりません。 「マスターテーブル」というテーブルに「id」と言う フィールドがある以上、レコードソースがクエリに 代わっても、各オブジェクト(テーブルやフィールド) の名前は変わらないので、元のままの名前を使います。 クエリ内でエイリアス(別名)を定義した場合は別名を 使います。以下はその例です。 select id as repoid from マスターテーブル as master 上記sqlを持つクエリをxxxとします。idはreportid、 マスターテーブルはmasterという別名になっています。 条件式は下記の様に変わります。 [form]![id]=[master]![reportid] つまり、クエリ名は出てきません。エイリアスを定義 していないなら、名前は元のままです。