Accessのクエリとは?種類と使いどころ、選択クエリの基本操作を解説

Access
この記事は約6分で読めます。

前回の記事で、Accessのテーブルは“データの保管場所”とお伝えしました。

じゃあ、その保管庫から必要なデータだけを取り出すにはどうするのか?そこで登場するのが クエリ です。

「名前は聞いたことあるけど、結局クエリってなに?」
「どうやって作るの?」

と疑問に思っている人に向けて、この記事では

  • Accessのクエリとは何か
  • クエリで何ができるのか
  • クエリの作り方

を、初心者でもわかるようにやさしく解説します。

読み終わるころには、Accessで“欲しいデータだけを取り出す力” が身につきます。

Accessのクエリとは

Access のクエリは、ExcelでいうとVLOOKUP や FILTER 関数のように、必要なデータだけを抜き出して“別シートのように表示する”機能です。

AccessではSQL文を書かなくてもテーブルやフィールドをドラッグするだけで、必要な情報の抽出し別テーブルのような形に生成してくれます。

クエリは、一度作って保存しておけば、Excel のように毎回関数を書き直す必要がありません。条件や結合の設定を保存しておけるので、いつでも同じ抽出結果を再利用できます。

ここでクエリの特徴をまとめます。

Accessクエリの特徴
  • GUI操作だけでクエリ作成できるので、SQLを書かなくて良い
  • 必要なデータだけ抽出できる、ExcelのFILTERやVLOOKUPの上位互換のようなもの
  • 複数テーブルのフィールドとフィールドをドラッグすることで簡単に結合できる
  • 元のテーブルデータを壊さないため安全に使用できる
  • 一度作れば何度でも使える

Excelよりも便利で安全にデータを管理できるというのがクエリの特徴です。

Accessで作成できるクエリの種類

クエリにも種類があります。ここでは業務で使いそうなクエリの種類を抜粋してご紹介します。

  • 選択クエリ

    テーブルから必要なデータだけ「取り出す」ためのクエリです。
    例:新潟県の顧客だけ抽出
    例:4月の売上だけ取り出す
    例:名前に「田」が含まれる人を検索

  • アクションクエリ

    データを「変更する」クエリです。アクションクエリは次の4種類に分かれます。
    • 追加クエリ:テーブルにデータを追加
    • 更新クエリ:既存データを更新
    • 削除クエリ:条件に合うデータを削除
    • テーブル作成クエリ:抽出結果から新しいテーブルを作る
  • クロス集計クエリ

    行 × 列 の表を作るクエリです。
    単一テーブルでも複数テーブルでも、二軸で比較する表”を作りたいときに使用します。

Access初心者では、選択クエリとアクションクエリを使用するのがメインだと思います。

といっても私もアクションクエリを使用したのはほんの1、2回で、選択クエリの出番が圧倒的に多いです。

アクションクエリとクロス集計クエリ、(そのほかにもいくつかのクエリがあります)については、「こんな種類もあるんだなぁ」くらいに覚えておいて問題ありません。

よく使う選択クエリの作成手順

ここでは、単一のテーブルから必要な情報を抽出する選択クエリと、複数のテーブルから必要な情報を抽出して一つの表にまとめる選択クエリの作成方法をお伝えします。

使って必要な情報を取り出す選択クエリの作成

Accessのテーブルについての記事で顧客リストのテーブルを作成してました。

このテーブルを使用して、必要な顧客情報のみを抽出する選択クエリを作成していきます。

上部メニュー[作成]から[クエリデザイン]をクリックします。

テーブルの追加から、[顧客リスト]テーブルをドラッグします。

抽出したいフィールドのデータは下のエリアにドラッグします。

今回は[ユーザー名][電話番号][メールアドレス][入会日]を抽出するクエリを作成します。

抽出したデータは順番がバラバラなため、並べ替えしたほうが見やすいです。

赤枠の箇所でデータの並べ替えができます。今回は入会日が早い顧客が上になるように並び替えます。

ユーザー名の昇順でもいいと思います。

 Ctrl + S で選択クエリの保存をします。クエリ名作成画面がでたら、[顧客連絡先]を入力して保存します。

左のナビゲーションに選択クエリが追加されました。ダブルクリックするとデータが確認できます。入会日順になっていることがわかります。

複数テーブルを結合して取り出す選択クエリの作成

顧客リストテーブルのほかに、追加で注文履歴テーブルを作成します。

注文履歴テーブルはこんな感じのテーブルデザインにします。

注文履歴テーブルの情報

ID(主キー)        オートナンバー型
顧客ID(顧客リストのID)  数値型
注文日           短いテキスト   
数量            数値型

テーブル名は注文履歴で良いです。データは次のような感じで入れていきます。顧客IDには顧客リストテーブルのIDを入力します。

顧客リストと注文履歴のテーブルを結合して、必要な情報のみまとめたリストを選択クエリで作成します。

作成した注文履歴テーブルには、注文した顧客の情報は顧客IDのみで注文した顧客の名前までは注文履歴テーブルからはわかりません。

これを注文した顧客名もわかるように情報を抜き出して別のリストとして作成していきます。

2つのテーブルをドラッグして、クエリデザインの中に追加します。

注文履歴テーブルの[顧客ID]と顧客リストテーブルの[ID]の紐づけを行います。フィールド同士をドラッグしてつなげます。

こんな風に結合しました。

あとは先ほど作成した選択クエリと同じように、必要な情報だけ取り出す作業です。*を下エリアにドラッグすると、注文履歴のすべてのフィールドを取得できます。

顧客リストテーブルの[ユーザー名]も必要なので下エリアに追加します。

データの並び順はIDの昇順にしておきます。

Ctrl + S で保存します。クエリ名は「注文一覧」とします。

新しいクエリが作成されました。ダブルクリックすると中身を確認できます。

注文データのそれぞれにユーザー名が表示されていることがわかります。

ほかにも商品テーブルを作成して紐づけて、商品詳細や単価などを表示させたりなど色々なテーブルと紐づけて必要な情報のみの一覧を作成することができます。

ほかのクエリはどんな場面で使う?

クエリの作成で説明した選択クエリ以外のクエリは実務でどのようなときに使用するのか?例えば、次のようなときに使用できます。

  • 追加クエリ
    • 受注データを“売上テーブル”に追加
    • 新規顧客リストを既存テーブルに取り込み
  • 削除クエリ
    • 1年以上前の履歴を削除
    • テストデータを一括削除
  • 更新クエリ
    • ある条件のレコードのステータスを[完了]に変える
    • セール対象月のみポイントが2倍になるように取得ポイントを変更する
  • テーブル作成クエリ
    • 月次レポート用のテーブルを毎月コピー
    • 今月分の空テーブルを自動生成
  • クロス集計クエリ
    • 二軸で比較したい表の作成
       ・担当者 × 月
       ・商品 × 店舗
       ・カテゴリ × 年
       ・顧客 × 月

まとめ

Access のクエリは、 「必要なデータだけを取り出す」「まとめる」「加工する」ための基本機能です。まず覚えるべきは次の3種類のクエリです。

  • 選択クエリ  必要なデータだけを抽出する、最もよく使うクエリ
  • アクションクエリ  データを追加・更新・削除・新規作成するクエリ
  • クロス集計クエリ  二軸で比較する表(担当者 × 月 など)を作るクエリ

クエリは一度作れば何度でも使えるので、 Excelよりも正確・高速・再利用しやすいのが大きなメリットです。

Access を使いこなす第一歩は、 まず 選択クエリで“必要なデータだけ取り出す”感覚をつかむことが大切だと思います。

今回の記事が参考になれば嬉しいです。