「Accessでデータを絞り込みたいけれど、SQLの書き方が分からない」「クエリデザインビューの使い方を最初から確認したい」「どのフィールドをどこに配置すれば条件付きで抽出できるのか」——Accessを学び始めたばかりの方が最初にぶつかる壁が、選択クエリのデザインビュー操作です。選択クエリとは、テーブルに格納されたデータの中から条件に合うレコードを抽出し、必要なフィールドだけを表示するAccessの基本クエリです。
Accessにはクエリを作成する方法が2種類あります。SQLを直接記述する「SQLビュー」と、マウス操作で視覚的に設定できる「デザインビュー」です。デザインビューでは、上段にテーブルのフィールド一覧、下段にデザイングリッドと呼ばれる設定表が表示されます。フィールドをドラッグするだけで表示対象を指定でき、「抽出条件」行に条件式を入力するだけで絞り込みが完成します。SQLを覚えなくても実用的な選択クエリが作れるのが最大のメリットです。
本記事では、選択クエリの基本的な役割から始めて、デザインビューでのクエリ新規作成手順・フィールドの追加方法・データ型別の条件式の書き方・複数条件(AND/OR)の設定・並べ替えの設定・演算フィールドの作成・複数テーブルの結合・よくあるエラーと対処法・MOS Access試験での出題ポイントまで、ステップごとに徹底解説します。「Accessのクエリ操作を基礎からマスターしたい」という方も、「MOS Access試験の対策として確認したい」という方も、ぜひ最後まで読んでください。
選択クエリとAccessのクエリ種類
Accessには複数の種類のクエリが用意されています。まず、それぞれの役割を整理しておきましょう。
| クエリの種類 | 主な用途 | 備考 |
|---|---|---|
| 選択クエリ | テーブルからレコードを抽出・表示する | 最も基本的なクエリ。読み取り専用が基本(更新可能な場合もある) |
| 集計クエリ | GROUP BYでグループ別に合計・件数・平均を集計する | 選択クエリの一種。「集計」行を表示して設定する |
| クロス集計クエリ | 行×列の二次元マトリクスで集計値を表示する | ウィザードまたはデザインビュー+SQLビューで作成 |
| パラメータクエリ | 実行時にダイアログで条件値を入力する動的クエリ | 選択クエリの抽出条件に角かっこで変数を設定する |
| アクションクエリ | データの追加・更新・削除・テーブル作成を一括実行する | 更新・削除・追加・テーブル作成の4種類がある |
| ユニオンクエリ | 複数テーブルのレコードを縦方向に統合する | SQLビューのみで作成(デザインビュー不可) |
このうち、最も基本となるのが選択クエリです。選択クエリを作成できれば、集計クエリ・パラメータクエリへの応用も自然にできるようになります。まずは選択クエリのデザインビュー操作を完全にマスターすることが、Accessクエリ学習のスタートラインです。
デザインビューでクエリを新規作成する手順
ステップ1:クエリデザインビューを開く
データベースを開いた状態で、リボンの[作成]タブをクリックします。「クエリ」グループにある[クエリデザイン]ボタンをクリックします。「テーブルの追加」ダイアログが自動的に表示されます。
ナビゲーションウィンドウの「クエリ」セクションで空白エリアを右クリックし、「デザインビュー」を選んで新規クエリを作成することもできます。どちらの方法でもデザインビューが開き、同じ「テーブルの追加」ダイアログが表示されます。
ステップ2:テーブルを追加する
「テーブルの追加」ダイアログには、データベース内のテーブル一覧(またはクエリ一覧)が表示されます。クエリのデータソースにしたいテーブルを選択し、[追加]ボタンをクリックします。複数のテーブルを使う場合は、必要なテーブルをすべて追加してから[閉じる]をクリックします。
テーブルを追加するとデザインビューの上段(テーブルペイン)にフィールド一覧ウィンドウが表示されます。テーブルを追加した後で別のテーブルを追加したくなった場合は、デザインビューの上段の空白エリアで右クリック→「テーブルの追加」から追加できます。
ステップ3:フィールドをデザイングリッドに追加する
デザインビューの下段が「デザイングリッド」です。各列がクエリの出力フィールドに対応しています。フィールドをデザイングリッドに追加する方法は以下の3つです。
| 追加方法 | 操作 | 使いどころ |
|---|---|---|
| ダブルクリック | テーブルペインのフィールド名をダブルクリックする | フィールドを1つずつ確認しながら追加するとき |
| ドラッグ&ドロップ | テーブルペインのフィールドを下段のグリッドにドラッグする | 特定の列位置に挿入したいとき |
| ドロップダウンで選択 | グリッドの「フィールド」行のセルをクリックし、ドロップダウンから選ぶ | テーブルペインを使わずに直接指定するとき |
テーブルペインのフィールド一覧の一番上にある*(アスタリスク)をデザイングリッドに追加すると、そのテーブルの全フィールドをまとめて出力できます。ただし*を使うとフィールド名が固定されず、テーブルにフィールドが追加された場合に自動的にクエリの出力にも反映されます。特定のフィールドだけを出力したい場合は*を使わず、必要なフィールドを個別に追加してください。
デザイングリッドの各行の役割
デザイングリッドには複数の行があり、それぞれに役割があります。
| 行名 | 役割 | 設定例 |
|---|---|---|
| フィールド | 出力するフィールド名(演算フィールドも設定可) | 顧客名 / 税込金額: [単価]*1.1 |
| テーブル | フィールドの元テーブル名(複数テーブル使用時に自動表示) | 顧客マスタ / 受注テーブル |
| 並べ替え | 昇順・降順・なし を選択する | 昇順 / 降順 / (なし) |
| 表示 | クエリ結果にこのフィールドを表示するかどうか(チェックON/OFF) | 条件のみに使うフィールドはOFF |
| 抽出条件 | フィルタの条件式(AND条件は同じ行・OR条件は別の行) | “東京” / >1000 / Like “*田*” |
| または | 「抽出条件」行の下のOR条件の追加行 | 複数OR条件を縦に並べる |
抽出条件(条件式)の書き方
選択クエリで最も重要な設定が「抽出条件」行への条件式の入力です。データ型に応じて記述形式が異なります。
テキスト型フィールドの条件式
テキスト型(短いテキスト・長いテキスト)フィールドの抽出条件では、値をダブルクォートで囲みます。Accessは自動的に変換してくれるため、入力後にEnterキーを押すと"東京"のようにダブルクォートが自動付与されます。
| 条件の目的 | 条件式の例 | マッチする例 |
|---|---|---|
| 完全一致 | "東京" | 「東京」のみ |
| 部分一致(含む) | Like "*東京*" | 「東京都」「東京支店」「東東京」など東京を含む |
| 前方一致(始まる) | Like "東京*" | 「東京」「東京都」「東京支店」(東京で始まる) |
| 後方一致(終わる) | Like "*支店" | 「東京支店」「大阪支店」(支店で終わる) |
| OR(どちらか) | "東京" Or "大阪" | 「東京」または「大阪」 |
| NOT(以外) | Not "東京" | 「東京」以外のすべての値 |
| NULL(未入力) | Is Null | 値が入力されていないレコード |
| 空欄以外 | Is Not Null | 値が入力されているレコード |
ワイルドカードの * は0文字以上の任意の文字列を表します。1文字だけ任意の文字を表す場合は ? を使います(例: Like "田?" なら「田中」「田村」「田口」などにマッチ)。
数値型フィールドの条件式
数値型フィールドの条件式では値をクォートで囲まず、比較演算子と数値を直接記述します。
| 条件の目的 | 条件式の例 | マッチする例 |
|---|---|---|
| 完全一致 | 1000 | 値が1000のレコード |
| より大きい | >1000 | 1001以上の値 |
| 以上 | >=1000 | 1000以上の値 |
| 未満 | <5000 | 4999以下の値 |
| 範囲(Between) | Between 100 And 500 | 100以上500以下の値(両端を含む) |
| AND範囲 | >=100 And <=500 | Between 100 And 500 と同義 |
| OR(いずれか) | 100 Or 200 Or 300 | 100・200・300のいずれかの値 |
| In(リスト) | In (100, 200, 300) | リスト内の値いずれか |
日付型フィールドの条件式
日付型フィールドの条件式では、日付値を#(シャープ)で囲みます。日付の書き方は#2026/01/01#のようにスラッシュ区切りで入力します。
| 条件の目的 | 条件式の例 | マッチする例 |
|---|---|---|
| 特定の日付 | #2026/04/01# | 2026年4月1日のレコード |
| 以降 | >=#2026/04/01# | 2026年4月1日以降 |
| 日付範囲 | Between #2026/04/01# And #2026/09/30# | 2026年4月1日から9月30日 |
| 今日 | Date() | 今日のレコード(実行日に動的に変化) |
| 今月以降 | >=DateSerial(Year(Date()),Month(Date()),1) | 今月の1日以降のレコード |
| 過去30日以内 | >=Date()-30 | 今日から30日前以降のレコード |
複数条件(AND・OR)の設定方法
選択クエリでは複数の条件を組み合わせて絞り込みができます。条件の組み方はAND(すべての条件を満たす)とOR(いずれかの条件を満たす)の2パターンです。
AND条件(同じ行に複数の条件を入力する)
2つ以上の条件をすべて満たすレコードを抽出したい場合は、それぞれのフィールドの「抽出条件」行に同じ行で条件を入力します。たとえば「都道府県が東京」かつ「売上金額が10万以上」のレコードを抽出する場合は、「都道府県」フィールドの抽出条件行に "東京"、「売上金額」フィールドの抽出条件行(同じ行)に >=100000 と入力します。
OR条件(別の行に条件を入力する)
いずれかの条件を満たすレコードを抽出したい場合は、「抽出条件」行と「または」行(下の行)に条件を縦に並べる方法が使えます。たとえば「東京または大阪」のレコードを抽出する場合は、「都道府県」フィールドの抽出条件行に "東京"、その下の「または」行に "大阪" と入力します。または、同じセル内に "東京" Or "大阪" とまとめて入力することもできます。
| 条件の組み方 | 設定の方法 | 具体例 |
|---|---|---|
| AND(複数フィールドの全条件) | 同じ行の各フィールドに条件を入力 | 「都道府県=東京」かつ「売上金額>=100000」 |
| OR(同一フィールドで複数値) | 同じセルに「A Or B Or C」と記述、またはIn(A,B,C) | 「東京 Or 大阪 Or 名古屋」 |
| OR(複数行に縦並べ) | 「抽出条件」行と「または」行に縦に並べる | 1行目:東京、2行目:大阪 |
| AND+OR の組み合わせ | 複数行を活用し、各行内にAND条件を設定 | 1行目:東京かつ100万以上、2行目:大阪かつ50万以上 |
AND+OR の複合条件では、デザイングリッドの行が「OR」の単位になり、1行内のフィールド間の条件が「AND」で結合されます。「(東京 AND 100万以上) OR (大阪 AND 50万以上)」のような条件は、1行目に「東京・100万以上」、2行目に「大阪・50万以上」という形で設定します。
並べ替えの設定
クエリ結果の表示順序を制御するのが「並べ替え」行の設定です。各フィールドの「並べ替え」行のドロップダウンから「昇順」「降順」「(なし)」を選択します。
| 設定値 | 動作 | 典型的な使用例 |
|---|---|---|
| 昇順 | 小→大(数値)/ A→Z(テキスト)/ 古い→新しい(日付) | 顧客IDの若い順・氏名の50音順・日付の古い順 |
| 降順 | 大→小(数値)/ Z→A(テキスト)/ 新しい→古い(日付) | 売上金額の多い順・日付の新しい順 |
| (なし) | 並べ替えをこのフィールドでは行わない | 表示はするが並べ替えには使わないフィールド |
複数フィールドの並べ替え優先順位は、デザイングリッドの左から右の順番で決まります。最も左のフィールドの並べ替えが第1優先、右のフィールドが第2優先以降になります。たとえば「部署名(昇順)」を第1優先、「売上金額(降順)」を第2優先にしたい場合は、デザイングリッドで「部署名」フィールドを「売上金額」フィールドより左側に配置し、それぞれ「昇順」「降順」を設定します。
「表示」チェックボックスをOFFにしても、並べ替えは有効です。並べ替えのキーにはなるが結果画面には表示したくないフィールド(例: データ内部管理用のID番号)は、「並べ替え」行を設定したうえで「表示」チェックをOFFにします。
複数テーブルを結合した選択クエリ
実務では、複数のテーブルを結合して必要な情報を一つのクエリで表示する場面がよくあります。たとえば「受注テーブル」には顧客IDが入っているが、顧客名は「顧客マスタ」テーブルにある、という構成が典型例です。
リレーションシップが設定済みの場合
Accessのリレーションシップウィンドウでテーブル間の結合が設定されている場合、デザインビューに複数のテーブルを追加すると自動的に結合線(テーブル間のリレーションを示す線)が表示されます。この結合線がある状態でクエリを実行すると、対応するレコードが自動的に結合されて表示されます。
デザインビューで手動結合する場合
リレーションシップが設定されていない場合、または一時的な結合が必要な場合は、デザインビューのテーブルペインで結合させたいフィールドをドラッグして接続します。片方のテーブルの結合フィールド(例: 顧客マスタの「顧客ID」)から、もう片方のテーブルの対応フィールド(例: 受注テーブルの「顧客ID」)へドラッグすると、2つのフィールドを繋ぐ結合線が表示されます。
結合線をダブルクリックすると「結合プロパティ」ダイアログが表示され、内部結合(両テーブルに一致するレコードのみ)と外部結合(片方の全レコードを表示)を切り替えられます。
| 結合の種類 | 動作 | 使いどころ |
|---|---|---|
| 内部結合(既定) | 両テーブルに一致するレコードのみ出力 | マスタに登録済みの受注データだけを表示したい場合 |
| 左外部結合 | 左テーブルの全レコード+右テーブルの一致レコード(不一致はNull) | 受注があってもマスタ未登録の顧客を含めて表示する場合 |
| 右外部結合 | 右テーブルの全レコード+左テーブルの一致レコード(不一致はNull) | マスタの全顧客を表示し、受注なしの顧客もリストしたい場合 |
演算フィールドの追加
デザイングリッドの「フィールド」行には、テーブルの既存フィールドだけでなく、数式で計算した演算フィールドを追加できます。演算フィールドの書式は次のとおりです。
表示名: 数式
フィールド名の後にコロン(:)を付けて区切り、右側に数式を記述します。数式内でテーブルのフィールド名を参照するときは角かっこ([ ])で囲みます。
| 演算フィールドの例 | 入力する内容 | 計算内容 |
|---|---|---|
| 税込金額の計算 | 税込金額: [単価]*[数量]*1.1 | 単価×数量に消費税10%を加算 |
| 氏名の結合 | 氏名: [姓] & " " & [名] | 姓フィールドと名フィールドをスペースで結合 |
| 年齢の計算 | 年齢: DateDiff("yyyy",[生年月日],Date()) | 生年月日から今日時点の年齢を年単位で計算 |
| 利益率の計算 | 利益率: ([売上金額]-[原価])/[売上金額] | (売上-原価)÷売上で利益率を算出 |
| 文字列の抽出 | 都道府県: Left([住所],3) | 住所の先頭3文字(都道府県名の抜き出し) |
演算フィールドはクエリ実行時に計算されるため、元のテーブルには保存されません。クエリを実行するたびにリアルタイムで計算結果が表示されます。演算フィールドに対しても「並べ替え」「抽出条件」を設定することができます(例: 税込金額の高い順に並べる、利益率が50%以上のものだけを抽出する)。
クエリの実行と保存
デザインビューでの設定が完了したら、クエリを実行して結果を確認します。
クエリを実行する
リボンの[デザイン]タブにある[実行]ボタン(!アイコン)をクリックするか、キーボードショートカットF5キーを押すとクエリが実行されます。実行結果はデータシートビューで表示されます。実行結果を確認したあと、デザインビューに戻るにはナビゲーションウィンドウまたはリボンの「表示」から「デザインビュー」を選びます。
クエリを保存する
Ctrl+Sキーまたはリボンの[ファイル]→[保存]でクエリを保存します。初めて保存する際はクエリ名の入力ダイアログが表示されます。クエリ名は目的が分かりやすい名前(例: 「Q_東京顧客売上一覧」「Q_当月受注抽出」)を付けておくと管理しやすくなります。保存したクエリはナビゲーションウィンドウの「クエリ」グループに表示されます。
選択クエリのよくあるエラーと対処法
| 症状・エラー | 原因 | 対処法 |
|---|---|---|
| 「式に未定義の関数が含まれています」エラー | 演算フィールドの数式に存在しない関数名やスペルミスがある | 数式を確認し、関数名・フィールド名を正確に入力し直す |
| 「フィールドに型不一致があります」エラー | テキスト型フィールドに数値形式の条件を指定した、またはその逆 | テキスト型には” “で囲んだ文字列、数値型にはそのまま数値を入力する |
| 結果がゼロ件になる | 条件が厳しすぎるか、条件式の書き方が間違っている | 条件を一時的に削除して全件表示にし、データの実際の値と条件式を照合する |
| 期待しないレコードが含まれる | OR条件の設定ミス(別フィールドの条件を同行に設定しているため意図しないAND/ORになっている) | デザイングリッドの行構成を見直し、AND/ORの意図と設定が一致しているか確認する |
| 演算フィールドで#Error!が表示される | 数式内でゼロ除算が発生している(分母がゼロまたはNull) | IIf関数やNz関数で除数がゼロまたはNullのケースを除外する |
| 複数テーブルで「あいまいなフィールド名」エラー | 同名フィールドが複数のテーブルに存在し、どちらのテーブルのフィールドか判別できない | 「テーブル名.フィールド名」形式で明示する(例: 顧客マスタ.顧客ID) |
| 日付条件で全件表示される | 日付リテラルを#で囲んでいない(テキストとして比較されている) | 日付値は必ず#2026/01/01#のように#で囲む |
MOS Access試験での選択クエリの出題ポイント
MOS Access 365試験(MO-500)では、クエリの作成・管理に関するスキルが出題範囲に含まれます。選択クエリはその中核をなすトピックです。試験本番で迷わず操作できるよう、以下のポイントを整理しておきましょう。
- [作成]タブからの起動:選択クエリはリボンの[作成]タブ→[クエリデザイン]で新規作成する。クエリウィザードとの使い分けを理解しておく
- テーブルの追加操作:「テーブルの追加」ダイアログからデータソースを選ぶ操作を確実に行えるようにする。後からテーブルを追加する方法(デザインペインで右クリック)も押さえる
- デザイングリッドの行の役割:「フィールド」「テーブル」「並べ替え」「表示」「抽出条件」「または」の6行それぞれの役割を正確に理解する。特に「表示」チェックのOFF操作(条件には使うが出力には表示しない)が問われやすい
- 条件式のデータ型別の書き方:テキスト型はダブルクォート、日付型は#シャープ#、数値型はそのまま、という基本ルールを確実に覚える
- ワイルドカードの使い方:Like “*キーワード*”(部分一致)、Like “キーワード*”(前方一致)の使い分けを練習しておく
- AND/OR条件の設定:AND条件は同一行・OR条件は別の行(または同一セルに「Or」で記述)という原則を覚え、意図した条件が正しく設定できるか確認する
- 並べ替えの優先順位:複数フィールドの並べ替えはデザイングリッドの左から右の順で優先度が決まる点を理解する
- 演算フィールドの書式:「表示名: 数式」の書式を理解し、フィールド参照に角かっこを使うことを確認する
MOS試験 選択クエリ操作チェックリスト
| 確認ポイント | 操作内容 | 難易度 |
|---|---|---|
| クエリデザインビューの起動 | [作成]→[クエリデザイン]でデザインビューを開ける | ★☆☆ |
| テーブルの追加 | 「テーブルの追加」ダイアログでテーブルを選択・追加できる | ★☆☆ |
| フィールドの追加(ダブルクリック) | テーブルペインのフィールドをダブルクリックでグリッドに追加できる | ★☆☆ |
| テキスト型の完全一致条件 | 抽出条件行に “値” 形式で正確に入力できる | ★☆☆ |
| Like によるあいまい検索 | Like “*キーワード*” でPartial matchの条件を設定できる | ★★☆ |
| 数値型の比較条件 | >=・Between And などを使って数値条件を設定できる | ★★☆ |
| 日付型の条件(#日付#) | #2026/01/01# 形式で日付条件を正確に入力できる | ★★☆ |
| AND条件(複数フィールド同行) | 複数フィールドの同一行に条件を設定してAND絞り込みができる | ★★☆ |
| OR条件(別行に設定) | 「抽出条件」行と「または」行を使ってOR条件を設定できる | ★★☆ |
| 「表示」チェックOFF | 並べ替え・条件目的のフィールドの「表示」チェックをOFFにできる | ★★☆ |
| 演算フィールドの作成 | 「表示名: 数式」形式で演算フィールドをグリッドに入力できる | ★★★ |
| 複数テーブルの結合 | 2つのテーブルを追加してフィールドをドラッグ結合、または既存リレーションシップを確認できる | ★★★ |
MOS Access 365試験(MO-500)は試験時間50分、採点1,000点満点です。合格点は非公開で550点~850点が目安とされています。合格率は公表されていません。試験形式はマルチプロジェクト形式(5個~10個のプロジェクトで構成されます)で、実際にAccessの操作を行うプロジェクト実技問題が中心です。受験料については改定されることがあるため、最新の受験料は公式サイトの「受験料・価格」(https://mos.odyssey-com.co.jp/exam/examfee.html)でご確認ください。
まとめ:デザインビューの選択クエリでAccessデータ抽出の基礎を固める
本記事のポイントをまとめます。
- 選択クエリとは:テーブルから条件に合うレコードを抽出し、指定したフィールドだけを表示するAccessの基本クエリ。集計・クロス集計・アクションなどすべてのクエリの土台になる
- デザインビューの起動:[作成]タブ→[クエリデザイン]で新規作成する。「テーブルの追加」ダイアログでデータソースを選んで追加する
- デザイングリッドの6行:「フィールド」「テーブル」「並べ替え」「表示」「抽出条件」「または」の各行の役割を把握する。「表示」のチェックOFF操作(条件には使うが画面には出さない)が実務でも試験でも重要
- 条件式のデータ型ルール:テキスト型は”ダブルクォート”・数値型はそのまま・日付型は#シャープ#で囲む。この3ルールを暗記しておく
- AND/OR条件:AND条件は同一行の複数フィールドに設定・OR条件は「抽出条件」行と「または」行を縦に並べる(または同一セルにOrで記述)
- 並べ替えの優先順位:デザイングリッドの左のフィールドほど優先度が高い。表示したくない並べ替えキーは「表示」をOFFにする
- 演算フィールド:「表示名: 数式」形式でフィールド行に入力する。フィールド名は角かっこ([])で囲む。演算フィールドにも並べ替え・抽出条件が設定できる
- 複数テーブルの結合:リレーションシップが設定済みならテーブルを追加すると自動で結合線が表示される。結合線のダブルクリックで内部結合・外部結合を切り替えられる
- MOS試験対策:デザイングリッドの行の役割・条件式のデータ型別書式・AND/OR条件の設定・演算フィールドの書式・複数テーブル結合の操作をAccessのサンプルデータベースで繰り返し練習する
選択クエリのデザインビュー操作をマスターすれば、Accessのデータ活用の可能性が大きく広がります。条件式・並べ替え・演算フィールド・複数テーブル結合の組み合わせで、ほとんどの実務的なデータ抽出ニーズに対応できます。まずはシンプルな単一テーブルの選択クエリをデザインビューで作成し、条件式・並べ替えの基本操作を体に馴染ませてから、演算フィールドや複数テーブル結合へとステップアップしていきましょう。
PR
Microsoft Copilot for Microsoft 365活用大全
Microsoft 365の各アプリをAIで最大活用するノウハウを一冊に凝縮。AccessをはじめとするOfficeツール全般の業務自動化・データ活用の視野を広げたい方におすすめです。クエリで抽出・集計したデータをさらに効率よく活用するヒントが得られます。
PR
MOS試験シリーズの定番対策テキスト。試験の形式・採点の仕組み・本番操作の確認方法をMOS Excel 365の学習と並行して理解しておくと、MOS Access試験対策にも応用できます。MOS試験全般に共通する受験戦略の把握に活用してください。
