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

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

ACCESSで最も便利な機能の一つがクエリ。その中でもよく使うのが選択クエリです。

選択クエリではテーブルにあるすべてのレコードに中から一定の条件に合致したレコードのみを抽出できます。
しかし、クエリの設定の仕方が若干難しいかもしれません。

クエリの抽出条件を使いこなすことができれば、ACCESSをより自由自在に操ることができます。

今日は、クエリの抽出条件の設定方法を解説していきましょう。


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

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

サンプルデータ

今回はサンプルとして下記のデータを準備しました。
こちらはある売上管理用のデータです。
ACCESSのテーブルにこのデータが入っています。

ここから特定のレコードを抽出していくのですが、抽出方法にもいくつか種類があります。

完全一致抽出条件と完全に一致するレコードのみを抽出する
部分一致(あいまい検索)抽出条件と一部が一致するレコードを抽出する

ACCESSでのそれぞれの抽出条件設定方法をみていきましょう。

完全一致での抽出

では、まずこのデータから、特定の商品の売上だけを抽出してみましょう。

ACCESSでは1行のデータをレコードと呼びます。
商品名が「ACCESSで売上管理ツールを作成します」のレコードのみを抽出します。

作成するのは選択クエリです。
クエリのデザインビューで抽出条件を設定します。

今回は上の図のように「商品名」の抽出条件欄に「ACCESSで売上管理ツールを作成します」と入力してみます。
文字の前後に「”」(ダブルクォーテーション)が入っているのは抽出条件がテキストデータだからです。

では、結果を見てみましょう。

こんな形で、「商品名」が「ACCESSで売上管理ツールを作成します」のレコードだけを抽出できました。
このように、指定した文字列と全く同じレコードを抽出することを完全一致といいます。

あいまい検索

では次に、完全一致ではない抽出をしてみましょう。
検索をする際によく使う、あいまい検索、もしくは部分一致というやつです。

先ほどのデータで、「顧客名」に「かず」という文字を含むレコードを抽出してみましょう。
クエリのデザインビューで以下のように設定します。

顧客名欄に「Like “*かず*”」と書いてみました。
結果を見てみましょう。

狙い通り、「顧客名」に「かず」という文字を含むレコードが抽出されていますね。
あいまい検索をする際は「Like」という文字を使う点が特徴です。


また、文字の前後につけた「*」(アスタリスク)は正規表現、もしくはワイルドカードと呼ばれます。
任意の数の文字と一致する、ということを表す記号です。

「*」以外にも、
?:任意の 1 つの英数字と一致
#:任意の 1 つの数字と一致
等のワイルドカードがありますが、まぁ「*」を覚えておけば困ることはないでしょう。

ちなみに今回の例では文字列の前後に「*」を付けていますので前後両方でのあいまい検索をしていますが、片方だけにつけることも可能です。

例えば、「Like “*かず”」と、前方のみにワイルドカードを使用すると、「ふるた ふみかず」は「かず」で終わるので抽出できますが、「たけもと かずひこ」は「かず」で終わらないので抽出できません。

Like演算子の利用方法はこちらの記事も参照ください。

Like演算子であいまい検索する方法

日付の抽出

文字列以外の抽出方法も見ていきましょう。
比較的よく使う、日付です。

先ほどのデータで「受注日」が「2020/03/31」のレコードを抽出してみましょう。
クエリのデザインビューで以下のように設定します。

「受注日」の抽出条件に「#2020/03/31#」と入力しました。
ここで、「#」を入れているのは、データが「日付・時刻型」であることを示すためです。

表示だけですと日付も文字列も同じように見えますが、データベース内では別のデータ型でデータが保存されていますので、日付・時刻を抽出する際は「#」を付けます。

では、結果を見てみましょう。

このように、該当のレコードが抽出できました。

日付の抽出では、テキストと間違って”を付けてしまう失敗が多くみられますので注意しましょう。

期間指定抽出

日付の抽出に関しては、特定の日付を注するすることもありますが、多いのは期間指定での抽出です。
例えば、先月のレコードを抽出したい、先週のレコードを抽出したい、等。
こうした期間指定もクエリで実施可能です。

ここでは、「受注日」が「2020/03/01」から「2020/03/31」のレコードを抽出してみましょう。
クエリのデザインビューで抽出条件に「>=#2020/03/01# And <=#2020/03/31#」と記載します。

期間の指定は不等号で行っています。
>=# 日付 # と記載すればその日付以降の日を、<=# 日付 # と記載すればその日付以前の日付を抽出できます。
あとは2つの条件を「and」で結ぶだけです。

では、結果を見てみましょう。

このように、「受注日」が「2020/03/01」から「2020/03/31」のレコードが抽出できました。
等号、不等号を使って以上、以下を抽出条件に設定するのは、日付だけでなく数値でも使えます。

このように、クエリでのレコードの抽出はACCESSの使い方の基本です。

マスターすればかなりACCESSを使いこなすことができるでしょう。

以上、クエリの抽出条件の設定方法をご説明しました。


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

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

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

サービス一覧

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