• ベストアンサー

ACCESSクエリーの抽出条件について

OS WIN7 ACCESS 2007使用です。 クエリーの抽出条件について何ですが、テーブルにコードというフィールドがありまして、そこには数値が入力されています。 コード 1 2 3 4 5 ・ ・ このテーブルを元に選択クエリーを作りたいのですが、条件としてコードの値に2と3両方がある場合、2のレコードだけを表示せず、どちらか一方の数値だけの場合またはどちらもない場合は、全てのレコードを表示するようにしたいのです。 抽出条件はどのように書けばよいのでしょうか? いろいろ試したのですが、うまくいきません。 どなたかお助け下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • bonaron
  • ベストアンサー率64% (482/745)
回答No.2

条件がいろいろ書かれていますが、 要は ・コード 3 が存在すれば 2以外を抽出 ・コード 3 が存在しなけば すべてを抽出 この2つのみですね。 クエリデザインでフィールドを2個追加。 フィールド:コード  |DLookUp("コード","テーブル名","コード=3")  テーブル:テーブル名|    表示:オフ   |オフ  抽出条件:<>2    |Is Not Null   または:     |Is Null

thunder-sg
質問者

お礼

ありがとうございます。 ばっちりできました。 久しぶりにアクセスを使うと、いろんなことを忘れてるもんですねえ。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

むりやりSQL考えてみました もっといい方法あるかもしれませんが。 SELECT コード FROM TABLE_A WHERE ( NOT EXISTS ( SELECT * FROM TABLE_A WHERE コード =2) OR NOT EXISTS ( SELECT * FROM TABLE_A WHERE コード =3) ) OR ( EXISTS ( SELECT * FROM TABLE_A WHERE コード =2) AND EXISTS ( SELECT * FROM TABLE_A WHERE コード =3) AND コード <> 2 ) ; Where句の説明 (コードが2のレコードがないか、コードが3のレコードがない場合は(両方存在しない場合も含め) それ以外の条件はなし) または (コードが2のレコードが存在し、コードが3のレコードが存在する場合は、 さらにコードが2以外のレコード) といったかんじですかね

thunder-sg
質問者

お礼

コードまで書いていただきましてありがとうございます。 SQLの記述は苦手なもんで、非常に勉強になります。

すると、全ての回答が全文表示されます。

専門家に質問してみよう