ACCESSのクエリで抽出条件を設定する方法
ACCESSで最も便利な機能の一つがクエリ。その中でもよく使うのが選択クエリです。
選択クエリではテーブルにあるすべてのレコードに中から一定の条件に合致したレコードのみを抽出できます。
しかし、クエリの設定の仕方が若干難しいかもしれません。
クエリの抽出条件を使いこなすことができれば、ACCESSをより自由自在に操ることができます。
今日は、クエリの抽出条件の設定方法を解説していきましょう。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSの基本的な使い方をご紹介していきます。
サンプルデータ
今回はサンプルとして下記のデータを準備しました。
こちらはある売上管理用のデータです。
ACCESSのテーブルにこのデータが入っています。
ここから特定のレコードを抽出していくのですが、抽出方法にもいくつか種類があります。
完全一致 | 抽出条件と完全に一致するレコードのみを抽出する |
部分一致(あいまい検索) | 抽出条件と一部が一致するレコードを抽出する |
ACCESSでのそれぞれの抽出条件設定方法をみていきましょう。
完全一致での抽出
では、まずこのデータから、特定の商品の売上だけを抽出してみましょう。
ACCESSでは1行のデータをレコードと呼びます。
商品名が「ACCESSで売上管理ツールを作成します」のレコードのみを抽出します。
作成するのは選択クエリです。
クエリのデザインビューで抽出条件を設定します。
今回は上の図のように「商品名」の抽出条件欄に「ACCESSで売上管理ツールを作成します」と入力してみます。
文字の前後に「”」(ダブルクォーテーション)が入っているのは抽出条件がテキストデータだからです。
では、結果を見てみましょう。
こんな形で、「商品名」が「ACCESSで売上管理ツールを作成します」のレコードだけを抽出できました。
このように、指定した文字列と全く同じレコードを抽出することを完全一致といいます。
あいまい検索
では次に、完全一致ではない抽出をしてみましょう。
検索をする際によく使う、あいまい検索、もしくは部分一致というやつです。
先ほどのデータで、「顧客名」に「かず」という文字を含むレコードを抽出してみましょう。
クエリのデザインビューで以下のように設定します。
顧客名欄に「Like “*かず*”」と書いてみました。
結果を見てみましょう。
狙い通り、「顧客名」に「かず」という文字を含むレコードが抽出されていますね。
あいまい検索をする際は「Like」という文字を使う点が特徴です。
また、文字の前後につけた「*」(アスタリスク)は正規表現、もしくはワイルドカードと呼ばれます。
任意の数の文字と一致する、ということを表す記号です。
「*」以外にも、
?:任意の 1 つの英数字と一致
#:任意の 1 つの数字と一致
等のワイルドカードがありますが、まぁ「*」を覚えておけば困ることはないでしょう。
ちなみに今回の例では文字列の前後に「*」を付けていますので前後両方でのあいまい検索をしていますが、片方だけにつけることも可能です。
例えば、「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の操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。
最後までお読みいただき、ありがとうございました。