ACCESS クエリの抽出条件を複数設定する方法

クエリの抽出条件を複数設定する方法

ACCESSでクエリを使用していると、だんだんと抽出条件が複雑化してくるときがあると思います。

一つではなく、複数の抽出条件を設定したいけれど、どうするんだろう?
And条件とOr条件って?

今回は、ACCESSのクエリで抽出条件を複数設定する方法をご説明します。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSの基本的な使い方をご紹介していきます。

And条件とOr条件

クエリに複数の抽出条件を設定する際に覚えておきたいのが、And条件とOr条件です。
抽出結果が「〇〇かつ〇〇」となるのがAnd条件で、「〇〇もしくは〇〇」となるのがOr条件です。

どちらもクエリで設定可能です。
以下で詳しい作成方法を紹介します。

サンプルデータ

まずは、今回の記事用にサンプルのテーブルを作成しました。

売上情報が格納されたテーブルです。
今回は、このテーブルを対象にクエリでレコードを抽出していきます。

クエリの作成

それではクエリを作成しましょう。
ACCESSのメニューから、「作成」→「クエリデザイン」を選択します。

クエリの作成画面で、先ほどの「TRN_売上サンプル」テーブルを追加します。

日付条件で抽出

まずは、売上日が2020年3月31日以前のレコードを抽出しましょう。

クエリデザイン画面の下段に「TRN_売上サンプル」テーブルのフィールドをドラッグアンドドロップし、売上日のフィールドの抽出条件欄に、抽出条件を記載します。

今回は下記のように記載しました。

<=#2020/03/31#

不等号を使って、売上日が2020/03/31より小さい、という条件を示しています。

範囲指定をする際の不等号ですが、「<」と「=」では、「<」の方が前に来ることに注意ください。
順番を逆にして「=<」とすると動作しなくなります。

また、日付の前後に「#」が入っています。
この「#」は、囲まれた値が日付型のデータであることを示しています。

これを “2020/03/31” としてしまうと、日付ではなく単なるテキストとして処理されるため、期間の抽出がうまく動作しなくなります。
これで、1つ目の抽出条件が設定できました。

複数の抽出条件

それでは、ここに2つ目の抽出条件を追加しましょう。

複数の抽出条件を設定する際に注意しなければいけないのは、それがAnd条件なのか、Or条件なのか、という点です。

And条件は複数の条件をすべて満たした場合のみ条件合致とみなすのに対して、Or条件ではいずれかの条件を満たせば条件合致として扱います。

例えば、売上日が 2020/03/31より小さく、かつ2020/02/01より大きい、はAnd条件です。
一方、 売上日が2020/03/31より小さい、または2020/04/10より大きい、はOr条件です。

それぞれの設定方法を見ていきましょう。

And条件

抽出結果が「〇〇かつ〇〇」となるのがAnd条件です。
And条件の場合は、複数の条件をAndでつないで記述します。

<=#2020/03/31# And >=#2020/02/01#

この例は、同じ売上日フィールドに対する条件を複数設定した場合です。

では、売上日が 2020/03/31より小さく、かつ顧客名に「よし」を含む、の場合はどうすればよいでしょうか。

こういった場合は、複数のフィールドに抽出条件を記載します。
その際、注意すべき点は同じ行に記載することです。

クエリの抽出条件は複数の行にわたって記載できますが、And条件は必ず同じ行に記載する必要があります。

Or条件

続いて、Or条件の設定方法です。
抽出結果が「〇〇もしくは〇〇」となるのがOr条件です。

まずは、売上日が2020/03/31より小さい、または2020/04/10より大きい、という条件を設定してみましょう。

<=#2020/03/31# Or >=#2020/04/10#

こちらも、複数の条件をOrでつなぐことで表現できます。
一方で、同じ条件を下記のように記述することも可能です。

クエリの抽出条件は、複数の行に記載するとそれぞれがOr条件となります。

また、複数のフィールドにわたってOr条件を設定することも可能です。
売上日が 2020/03/31より小さい、または、顧客名に「よし」を含む、の場合は複数の行を利用して下記の設定になります。

これらを組み合わせれば、クエリの抽出条件を様々な形で設定可能です。
クエリに抽出条件を設定する場合は、同じ行ならAnd条件、別の行ならOr条件ということを覚えておきましょう。

以上、クエリの抽出条件を複数設定する方法をご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス一覧

最後までお読みいただき、ありがとうございました。

ACCESS入門

前の記事

ACCESS マクロの使い方