Accessのクエリとは?種類・できること・作り方を初心者向けにわかりやすく解説

概要

Microsoft Accessのクエリは、テーブルに保存されたデータから必要な情報を検索・抽出・並べ替え・計算・集計したり、複数のテーブルを組み合わせたりするための機能です。Excelのフィルターと似た使い方もできますが、Accessでは抽出条件や並べ替え、計算方法そのものをクエリとして保存し、何度でも再利用できます。また、フォームやレポートのデータ元として利用したり、更新・追加・削除などデータそのものを変更したりするクエリもあります。本記事では、クエリとテーブルの違い、代表的なクエリの種類、データシートビュー・デザインビュー・SQLビュー、基本的な作り方から、実務で安全に利用するための注意点まで、初心者向けに体系的に解説します。

この記事でわかること

この記事を読むと、Accessのクエリがデータベースの中でどのような役割を持つのか、テーブルとの違い、選択クエリ・アクションクエリ・パラメータークエリ・集計クエリなどの用途、データシートビュー・デザインビュー・SQLビューの違い、抽出条件の基本、複数テーブルを組み合わせる考え方、フォームやレポートとの連携まで一連の流れとして理解できます。

  • クエリとテーブルの違い
  • クエリでできる検索・抽出・並べ替え・計算・集計・結合
  • 選択クエリとアクションクエリの違い
  • パラメーター・集計・クロス集計・ユニオンなどの位置付け
  • データシート・デザイン・SQLビューの使い分け
  • 東京都の顧客を抽出する選択クエリの基本手順
  • 更新・削除クエリを安全に使うための注意点

この記事の主な内容

1.Accessのクエリとは?まず30秒でテーブルとの違いを理解しよう
2.クエリでできる6つのこと
3.Accessのクエリにはどんな種類がある?
4.データシートビュー・デザインビュー・SQLビューの違い
5.選択クエリを作ってみよう|東京都の顧客を抽出
6.クエリを実務で使うときの注意点

7.まとめ
8.よくある質問(FAQ)

想定読了時間:約15~20分


Accessのクエリとは?まず30秒でテーブルとの違いを理解しよう

Accessのクエリとは、テーブルに保存されたデータへ条件を指定し、必要な情報だけを取り出したり、並べ替えたり、計算・集計したりするためのオブジェクトです。

初心者にはExcelのフィルターに近いものと説明されることがあります。確かに「東京都の顧客だけを表示する」「金額の大きい順に並べる」といった使い方は似ています。しかしAccessのクエリは、それだけではありません。抽出条件や並べ替え、計算式、複数テーブルの組み合わせ方まで「処理の定義」として保存でき、その結果をフォームやレポート、さらに別のクエリから再利用できます。

左にテーブル=データの保存、右にクエリ=条件・計算・結合を保存。テーブルのデータ更新後にクエリ結果も変わる流れを示す。

テーブルはデータを保存し、クエリはデータを利用する

比較項目テーブルクエリ
主な役割データの実体を保存検索・抽出・計算・集計・結合などの処理
保存するものレコードそのもの処理条件・SQL定義
元データ変更時データそのものが変化再実行すると結果へ反映
複数テーブル1テーブルは自分のデータを保持複数テーブルを組み合わせられる
フォーム・レポート直接データ元にできる必要な項目へ絞ったデータ元として便利
主な用途顧客・商品・受注の保存東京都顧客、月別売上、未処理案件などを作る
クエリを保存してもデータのコピーは増えない
通常の選択クエリを保存すると、検索結果のレコードが別に複製されるわけではありません。保存されるのは「どのテーブルから、どのフィールドを、どの条件で表示するか」という処理内容です。そのため元テーブルが更新されれば、次回クエリを実行した結果も変わります。

クエリ結果は必ず『読み取り専用』とは限らない

選択クエリの結果は、条件や結合方法によってはデータシートビューから編集でき、その変更が元テーブルへ反映される場合があります。つまり「クエリだから元データには影響しない」と考えるのは危険です。

一方で、集計クエリ、クロス集計、複雑な結合など、構造によっては編集できないクエリもあります。既存Accessでデータを編集する場合は、そのクエリがどのテーブルを参照し、更新可能なのかを確認してから操作してください。


クエリでできる6つのこと|検索・抽出・並べ替え・計算・集計・結合

クエリは単なる検索だけではなく、Accessのデータ処理の中心的な役割を担います。初心者がまず押さえたいのは次の6つです。

検索/抽出・並べ替え・計算・集計・複数テーブル結合・フォーム/レポートへのデータ供給を6アイコンで図示。

1. 必要なレコードだけを抽出する

例えば顧客テーブルから「住所が東京都の顧客」「今月登録された顧客」「有効フラグがYesの顧客」だけを取り出せます。条件を保存できるため、毎回同じ検索を手作業で繰り返す必要がありません。

2. 必要なフィールドだけを表示する

顧客テーブルに顧客ID、顧客名、住所、電話番号、メール、登録日など多数のフィールドがあっても、一覧画面では顧客名と電話番号だけを表示する、といった使い方ができます。

3. 並べ替える

顧客名の昇順、売上金額の降順、登録日の新しい順など、表示順をクエリに保存できます。フォームやレポートで一定の並び順を使いたい場合にも便利です。

4. 計算フィールドを作る

テーブルに保存していない値を、クエリ上で計算して表示できます。例えば「数量 × 単価」で売上金額を算出したり、日付から経過日数を計算したりできます。

計算できる値を必要以上にテーブルへ保存すると、元データ変更時に計算結果との不整合が起きるため、クエリで算出した方がよいケースがあります。

5. 集計する

担当者別売上、顧客別受注件数、月別売上など、グループ化して合計・件数・平均・最大・最小を計算できます。ExcelのSUMIFSやピボットテーブルに近い用途でも利用できます。

6. 複数テーブルの情報を組み合わせる

Accessらしい使い方の一つです。顧客テーブルと受注テーブルを顧客IDで結び、顧客名・受注日・金額を1つの一覧として表示できます。

顧客IDをキーに2テーブルをJOINし、結果に顧客名・受注日・金額を表示するイメージ。

Accessのクエリにはどんな種類がある?用途別に整理

Accessには多くのクエリがありますが、初心者は最初から名称をすべて暗記する必要はありません。まず「データを見る・計算するクエリ」と「データを書き換えるクエリ」を大きく分けて理解すると分かりやすくなります。

大分類を選択系とアクション系に分け、パラメーター・集計・クロス集計・ユニオン・不一致などを用途別に配置。

まず覚えたい:選択クエリ

選択クエリは、テーブルや他のクエリから必要なデータを取り出す最も基本的なクエリです。条件検索、並べ替え、複数テーブル結合、計算など幅広く利用します。

Access初心者は、まず選択クエリを使いこなすことを目標にするとよいでしょう。

データを書き換える:アクションクエリ

種類何をするクエリか利用例
更新クエリ既存レコードの値を一括変更税率・区分・フラグ等を条件付きで更新
追加クエリ抽出したレコードを別テーブルへ追加取込データを本番テーブルへ追加
削除クエリ条件に合うレコードを削除一時データや不要レコードを削除
テーブル作成クエリクエリ結果から新規テーブルを作成スナップショット・一時加工用テーブルを作成

アクションクエリは便利ですが、実行すると実データが変わります。特に更新・削除は、対象条件を誤ると大量のレコードを一度に変更してしまうため、実行前の確認が必要です。

入力条件を毎回変える:パラメータークエリ

クエリを開いたときに「開始日を入力してください」「顧客コードを入力してください」といった入力欄を表示し、その値を抽出条件として利用するクエリです。

毎回異なる期間や顧客を指定する検索で便利ですが、実務ではフォーム上の入力値をクエリ条件として使う構成の方が利用者に分かりやすいケースもあります。

集計・分析で使う:集計クエリとクロス集計クエリ

集計クエリでは、顧客別・担当者別・月別などにグループ化して、合計、件数、平均などを求められます。クロス集計クエリは、行見出しと列見出しを使って集計結果を表形式にまとめるクエリで、Excelのピボットテーブルに近い見せ方ができます。

特殊用途:ユニオン・不一致・重複検索など

同じ列構成の複数データを縦方向にまとめるユニオンクエリ、2つのテーブルを比較して片方にしか存在しないレコードを探す不一致検索、重複レコードを見つけるクエリなどもあります。

ユニオンクエリなど一部のSQL固有クエリは、通常のデザインビューではなくSQLビューで記述します。初心者は必要になったときに個別記事で学べば十分です。


データシートビュー・デザインビュー・SQLビューの違い

Accessのクエリには、用途の異なる3つの代表的なビューがあります。

データシート=結果、デザイン=GUI設計、SQL=SQL文という3画面を横並び比較。
ビュー主な用途初心者の使い方
データシートビュークエリ実行結果を確認結果件数・表示内容・対象レコードを確認
デザインビューテーブル、フィールド、条件、並べ替え、集計等を設定クエリ作成の中心
SQLビュークエリをSQL文として確認・編集基本は閲覧から。UNIONや複雑条件で重要

データシートビュー:結果を見る

クエリをダブルクリックすると、通常はデータシートビューで結果が表示されます。見た目はテーブルに似ていますが、表示内容はクエリで定義した条件や計算の結果です。

アクションクエリを実行する前に、対象レコードを確認する目的でもデータシートビューは重要です。

デザインビュー:GUIでクエリを設計する

上段にテーブルやクエリ、下段にデザイングリッドが表示されます。表示するフィールド、並べ替え、抽出条件、表示/非表示、集計などを視覚的に設定できます。

SQLを直接書かなくてもクエリを作れるのがAccessの大きな特徴です。

SQLビュー:クエリの裏側を確認する

Accessのクエリは、裏側ではSQLとして表現されています。SQLビューを開くと、デザインビューで設定した内容をSELECT、FROM、WHEREなどのSQL構文として確認できます。

初心者が最初からSQLを手入力する必要はありませんが、複雑なクエリの確認、トラブル解析、UNIONクエリ、SQL Serverとの連携を学ぶ際にはSQLの理解が役立ちます。

デザインビューとSQLビューは別物ではない
デザインビューで作ったクエリも、Access内部ではSQLとして表現されています。デザインビューはSQLを視覚的に組み立てるための画面、と理解すると両者の関係が分かりやすくなります。

選択クエリを作ってみよう|東京都の顧客を抽出する基本手順

ここでは顧客テーブルから「住所が東京都から始まる顧客」だけを表示する簡単な選択クエリを作ります。

クエリデザイン→テーブル追加→フィールド追加→条件設定→実行→確認→保存の7段階。

使用する顧客テーブル

顧客ID顧客名住所電話番号登録日
1001A商事株式会社東京都中央区03-XXXX-10012026/08/01
1002Bテクノ株式会社東京都新宿区03-XXXX-10022026/08/05
1003C物流株式会社神奈川県横浜市045-XXX-10032026/08/08
1004Dサービス株式会社東京都品川区03-XXXX-10042026/08/10
1005E工業株式会社埼玉県さいたま市048-XXX-10052026/08/15

STEP1|クエリデザインを開く

  1. Accessの[作成]タブを開きます。
  2. [クエリ デザイン]を選択します。
  3. データソースとして顧客テーブルを追加します。

STEP2|表示したいフィールドを追加する

顧客ID、顧客名、住所、電話番号、登録日をデザイングリッドへ追加します。実際の業務では、画面や帳票に必要なフィールドだけを選ぶと分かりやすくなります。

STEP3|抽出条件を設定する

住所フィールドの[抽出条件]行へ、東京都から始まる住所を対象にする条件を設定します。例として次のような条件を利用できます。

抽出条件の例
Like “東京都*”

ワイルドカードを使うことで「東京都中央区」「東京都新宿区」など、東京都から始まる文字列をまとめて対象にできます。抽出条件の詳しい指定方法は、専用記事へ内部リンクする構成にします。

STEP4|実行して結果を確認する

[実行]をクリックするとデータシートビューへ切り替わり、条件に合う東京都の顧客だけが表示されます。

左に住所 Like 東京都* のデザインビュー、右にA商事・Bテクノ・Dサービスの結果を表示。

STEP5|分かりやすい名前で保存する

クエリを保存するときは「Query1」ではなく、目的が分かる名称を付けます。

避けたい名前おすすめ例
Query1Q_東京都顧客
qry2Q_今月受注一覧
testQ_未入金請求一覧
抽出1Q_担当者別案件一覧

実際の命名規則は企業ごとに異なりますが、クエリが増えたときに用途を追跡できることが重要です。

SQLビューではどう見える?

同じクエリをSQLビューで見ると、概念的には次のようなSQLになります。

SELECT 顧客ID, 顧客名, 住所, 電話番号, 登録日
FROM 顧客テーブル
WHERE 住所 Like “東京都*”;

初心者はデザインビューで作成できれば問題ありません。SQLビューは『GUIで指定した条件がどのようなSQLになるのか』を確認する学習材料としても有効です。


クエリを実務で使うときの注意点|更新・重複・フォーム連携・保守性

クエリはAccessを便利にする一方、設計や使い方を誤るとデータ更新や保守でトラブルが起きます。特に企業の既存Accessを変更するときは注意が必要です。

1. 更新・削除クエリは実行前に必ず対象を確認する

アクションクエリは実際のテーブルを書き換えます。Microsoftも、更新・追加・削除などによる変更は簡単にCtrl+Zで元へ戻せないため、実行前にバックアップを用意するよう案内しています。

選択クエリで対象確認→件数確認→バックアップ→アクションクエリへ変更→実行→結果確認。

2. JOIN条件が間違うと同じデータが何度も表示される

複数テーブルをクエリで結合するとき、関連付けるフィールドが適切でない、または必要な結合条件がないと、想定以上のレコードが表示されることがあります。

例えば顧客と受注を顧客名だけで結合したり、明細テーブルを含めたことで1受注が商品数分だけ複数行になるなど、データ構造を理解していないと「重複しているように見える」結果になります。

3. フォームのクエリを変更すると入力できなくなることがある

フォームのレコードソースにクエリを使うことは一般的ですが、クエリの構造によっては結果が更新できなくなり、フォームから入力・編集できなくなる場合があります。

既存フォームで使用されているクエリへテーブル追加、集計、DISTINCTなどを安易に加える前に、フォームからの更新が必要かどうかを確認します。

4. クエリを何段もつなぎすぎると保守しにくい

Accessでは、クエリAを元にクエリBを作り、そのBを元にCを作ることができます。適切に使えば処理を分割できて便利ですが、何十段も連鎖すると、どこで条件や計算が行われているのか分かりにくくなります。

共通処理として再利用するクエリ、画面専用クエリ、集計専用クエリなど目的を整理し、名前や依存関係を管理することが重要です。

5. VBAに書く前にクエリで実現できないか検討する

既存Accessでは、検索・集計・更新処理がすべてVBAに書かれているケースがあります。しかし、標準クエリで実現できる処理をクエリへ分離すると、条件やデータソースが画面上で確認しやすくなり、保守性が上がる場合があります。

一方で、大量データや複雑な処理では、SQL Server側で処理した方がよいこともあります。Accessクエリ、VBA、SQL Serverのどこに処理を持たせるかは、データ量・利用人数・性能要件を含めて判断します。

そのAccess、クエリが複雑になりすぎていませんか?
Accessが遅い、同じデータが何度も表示される、フォームで編集できない、更新クエリを実行するのが怖い、どのクエリがどこから呼ばれているか分からない場合、クエリ・JOIN・テーブル構造やVBAに原因がある可能性があります。
既存Accessのテーブル・クエリ・フォーム・VBAを調査し、処理ロジックの整理、改修、高速化、SQL Serverへのアップサイジングまで対応しておりますのでお気軽にご相談下さい。

まとめ|クエリはAccessの『データ処理の中心』

Accessのクエリは、単なる検索機能ではありません。テーブルに保存されたデータを、業務で使える形へ変換する重要なオブジェクトです。

  • データの実体は基本的にテーブルへ保存する
  • 選択クエリは検索・抽出・並べ替え・計算・集計を行う
  • 複数テーブルのデータをJOINして1つの結果にできる
  • クエリはフォームやレポートのデータ元として再利用できる
  • デザインビューを使えばSQLを直接書かずにクエリを作れる
  • SQLビューを見るとクエリの裏側を確認できる
  • 更新・追加・削除などアクションクエリは実データを変更するため要注意

初心者はまず選択クエリで「必要なフィールドを選ぶ」「条件を指定する」「並べ替える」という基本操作を覚えましょう。その後、集計、複数テーブル結合、更新クエリ、SQLへ進むと、Accessでできることが大きく広がります。


よくある質問(FAQ)

テーブルに保存されたデータへ条件や計算を指定し、必要なデータを検索・抽出・集計・結合したり、場合によっては更新したりするためのオブジェクトです。

テーブルはデータそのものを保存します。通常の選択クエリはデータを保存せず、どのデータをどの条件で表示するかという処理内容を保存します。

通常の選択クエリでは検索結果のコピーを保存しません。元テーブルが変われば、次回実行したクエリ結果も変わります。

更新可能な選択クエリでは、クエリ結果から編集すると元テーブルへ反映される場合があります。一方、集計や複雑な結合などでは編集できない場合があります。

テーブルや他のクエリから必要なフィールド・レコードを取り出して表示する、Accessで最も基本的なクエリです。

テーブルのデータを追加・更新・削除したり、新しいテーブルを作成したりするクエリです。実行するとデータが変わるため、バックアップと対象確認が重要です。

はい。デザインビューでテーブル・フィールド・抽出条件を視覚的に設定できます。SQLは慣れてから学んでも問題ありません。

できます。主キー・外部キーなど関連するフィールドを使ってテーブルを結合し、必要な項目を1つの結果として表示できます。

はい。フォームやレポートのレコードソースとしてクエリを利用するのは一般的です。必要なデータだけをあらかじめ抽出・計算できるため、画面や帳票を作りやすくなります。

複数テーブルを結合した際の1対多関係、結合条件不足、明細データの存在などが主な原因です。まず元テーブルの関係とJOIN条件を確認します。


参考資料・確認ソース

Microsoft Support:クエリの概要(Introduction to queries)
https://support.microsoft.com/ja-jp/access/introduction-to-queries

Microsoft Support:簡単な選択クエリを作成する
https://support.microsoft.com/ja-jp/access/create-a-simple-select-query

Microsoft Support:Run a query
https://support.microsoft.com/en-us/access/run-a-query

TOP