「先月のデータだけ表示したい」「特定の担当者の売上を確認したい」──そのたびにクエリのデザインビューを開いて条件を書き換えていませんか?パラメータクエリを使えば、クエリを実行するたびに入力ダイアログが表示され、条件を変えながら動的にデータを絞り込めます。
パラメータクエリはAccessの標準機能であり、追加のプログラミングなしで実装できます。ダイアログ入力・Like演算子との組み合わせ・日付範囲指定・フォームとの連動など、実務でよく使うパターンを押さえれば、毎回クエリを編集する手間がなくなり、担当者が自分でデータ抽出できる仕組みを作れます。
本記事では基本的な作成手順から、データ型指定・複数条件・Like演算子との組み合わせ・フォーム参照連動の実務パターン・よくあるエラーの対処・MOS Access試験の出題ポイントまでを体系的に解説します。
パラメータクエリとは
パラメータクエリとは、クエリの実行時に入力ダイアログが表示され、入力した値を条件として使う仕組みです。通常の選択クエリで条件行に「東京」と直書きした場合、東京のデータしか表示されません。パラメータクエリでは条件行に[都道府県を入力してください]のように角括弧([ ])で囲んだテキストを書くことで、実行のたびに条件を変えられます。
パラメータの仕組みはシンプルです。角括弧の中に書いたテキストが入力ダイアログのメッセージになり、入力された値がそのまま絞り込み条件として機能します。フィールド名と完全一致する名前をパラメータに使うとフィールド参照と誤認されるため、「○○を入力してください」のように案内文を入れることが推奨されます。
| 種別 | 条件行の記述例 | 動作 |
|---|---|---|
| 固定値クエリ | “東京” | 常に東京のデータのみ表示 |
| パラメータクエリ | [都道府県を入力してください] | 実行のたびにダイアログが表示され、入力値で絞り込み |
パラメータクエリの基本的な作成手順
パラメータクエリは既存の選択クエリに条件を追記するだけで作成できます。
手順1:選択クエリをデザインビューで開く
ナビゲーションウィンドウで対象のクエリを右クリックし「デザインビュー」を選択します。新規作成する場合は「作成」タブ→「クエリデザイン」でデザインビューを開き、必要なテーブルを追加してフィールドを設定します。
手順2:条件行にパラメータを記述する
絞り込みたいフィールドの「条件」行に、角括弧で囲んだメッセージを入力します。例えば担当者名で絞り込みたいフィールドの条件行に次のように記述します。
| フィールド | 条件行の記述 |
|---|---|
| 担当者名 | [担当者名を入力してください] |
角括弧の外に等号(=)は不要です。条件行に直接[担当者名を入力してください]と書くだけで、入力された値と完全一致するレコードが抽出されます。
手順3:クエリを実行して動作を確認する
「クエリのデザイン」タブ→「実行」(または赤い「!」ボタン)をクリックすると入力ダイアログが表示されます。値を入力して「OK」を押すと、条件に一致するレコードだけが表示されます。何も入力せずに「OK」を押した場合は全レコードが表示されます(条件行の空値扱いになるため)。
パラメータのデータ型を指定する
パラメータを角括弧だけで記述した場合、Accessはデフォルトでテキスト型として扱います。日付型や数値型のフィールドを条件にする場合、データ型を明示しないと比較が正しく機能しない場合があります。
「パラメータ」ダイアログでデータ型を設定する手順
デザインビューで「クエリのデザイン」タブ→「パラメータ」をクリックすると「クエリパラメータ」ダイアログが表示されます。ここにパラメータ名とデータ型を設定することで、入力値を適切な型として処理できます。
| パラメータ名(角括弧の内側と一致させる) | データ型 | 用途 |
|---|---|---|
| 受注日を入力してください | 日付/時刻型 | 日付フィールドでの絞り込み |
| 金額を入力してください | 通貨型 | 金額フィールドでの絞り込み |
| 数量を入力してください | 整数型 | 数値フィールドでの絞り込み |
データ型を設定しておくと、入力値が型に合わない場合(数値型フィールドに文字を入力するなど)に自動的にエラーが返されるため、誤操作を防げます。日常的に使うパラメータクエリには、データ型設定を習慣として行うと安全です。
複数のパラメータを設定する
パラメータクエリは複数のフィールドに同時に設定できます。複数のパラメータを設定すると、クエリ実行時に順番にダイアログが表示され、すべての入力が完了してからクエリが実行されます。
AND条件(複数フィールドに別々のパラメータ)
異なるフィールドの「条件」行にそれぞれパラメータを記述すると、AND条件として機能します。例えば担当者名と商品カテゴリを両方で絞り込む場合は次のようにします。
| フィールド | 条件行 |
|---|---|
| 担当者名 | [担当者名を入力してください] |
| 商品カテゴリ | [カテゴリを入力してください] |
この場合、実行すると「担当者名を入力してください」→「カテゴリを入力してください」の順でダイアログが表示されます。パラメータを空のまま「OK」を押すとそのフィールドの絞り込みがスキップされるため、片方だけを入力して絞り込むことも可能です。
同じパラメータを複数個所で使う
同じ角括弧テキストを複数の条件行に記述した場合、Accessは同一のパラメータとして扱い、ダイアログは1回だけ表示されます。入力した値が複数個所の条件に同時に適用されます。例えばOr条件で同じ検索語を2つのフィールドに適用したいときに使えます。
Like演算子とワイルドカードを組み合わせる
完全一致ではなく部分一致・前方一致で絞り込みたい場合は、Like演算子とワイルドカード(*)を組み合わせます。パラメータとの組み合わせでは、入力値をLike演算子の右辺に埋め込む記述が必要です。
| 種別 | 条件行の記述 | 動作 |
|---|---|---|
| 前方一致 | Like [検索文字列を入力] & “*” | 入力値で始まるレコードを抽出 |
| 後方一致 | Like “*” & [検索文字列を入力] | 入力値で終わるレコードを抽出 |
| 部分一致 | Like “*” & [検索文字列を入力] & “*” | 入力値を含むすべてのレコードを抽出 |
&は文字列を連結する演算子です。例えば商品名フィールドで「コーヒー」と入力したときにコーヒーを含む商品名を全件抽出したい場合は、条件行にLike "*" & [商品名を入力してください] & "*"と記述します。なお、Accessのワイルドカードはアスタリスク(*)です(SQLビューではパーセント記号%と同等ですが、デザインビューでは*を使います)。
日付範囲で絞り込む実務パターン
月次レポートや期間指定の抽出など、日付の範囲指定は業務でよく使うパターンです。Between~And演算子とパラメータを組み合わせることで、開始日と終了日をダイアログから入力して範囲抽出できます。
設定手順
日付フィールドの条件行に次のように記述します。
| フィールド | 条件行 |
|---|---|
| 受注日 | Between [開始日を入力(例: 2026/01/01)] And [終了日を入力(例: 2026/01/31)] |
実行すると「開始日を入力(例: 2026/01/01)」→「終了日を入力(例: 2026/01/31)」の順でダイアログが表示されます。入力例をパラメータ名に含めることで、入力者が書式を迷わず入力できます。
日付型として正しく比較させるために、「クエリパラメータ」ダイアログで両パラメータのデータ型を「日付/時刻型」に設定しておくことを推奨します。設定することで「2026/1/1」「2026-01-01」など表記が多少揺れても正しく解釈されます。
月単位で抽出するパターン
入力の手間を減らすため、月の数字だけ入力して抽出するパターンも実用的です。この場合は年のフィールドと月のフィールドを別々に持つ設計か、Year関数・Month関数で演算フィールドを用意する設計が必要になります。
| 演算フィールド名 | 式 | 条件行 |
|---|---|---|
| 受注月 | Month([受注日]) | [抽出する月(1~12)を入力] |
| 受注年 | Year([受注日]) | [抽出する年(例: 2026)を入力] |
演算フィールドはデザインビューの「フィールド」行に直接式を記述するか、クエリの「フィールド名:式」という形式で追加します。この演算フィールドに対してパラメータを設定すれば、「2026年9月分」のようなシンプルなダイアログ入力で月次データを取り出せます。
フォームと連動させる実務パターン
毎回ダイアログが表示されるパラメータクエリは使いやすい反面、何度も実行する運用では操作ステップが増えます。フォームのテキストボックスや選択肢とクエリを連動させることで、フォーム上で条件を選んでボタン1つでクエリを実行できる、より洗練された操作感を実現できます。
フォーム参照の記述方法
クエリの条件行でフォームのコントロールを参照するには、次の構文を使います。
| 参照対象 | 記述形式 |
|---|---|
| フォーム「売上検索」のテキストボックス「txtTantosya」の値 | Forms![売上検索]![txtTantosya] |
| フォーム「集計設定」のコンボボックス「cboMonth」の値 | Forms![集計設定]![cboMonth] |
フォーム参照を使うと、クエリ実行時にダイアログは表示されず、フォームのコントロールに入力・選択された値が条件として自動的に使われます。フォームが閉じている状態でクエリを実行するとパラメータとして認識されダイアログが表示されるため、フォームが開いた状態でコマンドボタンからクエリを実行するような運用設計にします。
コマンドボタンからクエリを開くマクロ設定
フォームのコマンドボタンにマクロを設定してクエリを開く手順は次のとおりです。
- フォームをデザインビューで開く
- コマンドボタンを右クリック→「イベントプロパティ」を開く
- 「クリック時」の「…」ボタンをクリックしてマクロビルダーを開く
- アクション「クエリを開く」を選択し、クエリ名に対象クエリを指定する
- ビューを「データシートビュー」に設定して保存する
この設定により、ボタンをクリックするとフォームの入力値を条件にしたクエリ結果が表示されます。条件を変えて再度ボタンを押すたびにクエリが最新の入力値で再実行されます。
よくあるエラーと対処法
| 症状・エラー | 原因 | 対処法 |
|---|---|---|
| ダイアログに「式に未定義の関数…」と表示される | 条件行に誤った関数名や角括弧の閉じ忘れがある | 条件行をクリアして再記述する。角括弧の開き([)と閉じ(])の対応を確認する |
| 日付パラメータを入力しても全件または0件が返る | データ型が未指定でテキスト型として比較されている | 「クエリパラメータ」ダイアログでパラメータのデータ型を「日付/時刻型」に設定する |
| Like演算子のパラメータが部分一致にならない | Like [検索文字列]のみ記述しており、ワイルドカードが連結されていない | Like "*" & [検索文字列] & "*"の形式に修正する |
| フォーム参照クエリ実行時にダイアログが表示される | 参照先フォームが閉じている、またはフォーム名・コントロール名のスペルが違う | フォームが開いた状態でクエリを実行する。Forms!の後ろのフォーム名とコントロール名を正確に確認する |
| パラメータを空のまま「OK」を押すと意図しない全件表示になる | 空値は条件なしとして扱われるため全件が返る(仕様) | 必須入力にしたい場合はフォーム参照+VBAのバリデーションを組み合わせる |
| 数値パラメータに文字を入力すると「式に値の型が不一致です」エラー | 数値型フィールドに文字列が渡された | 「クエリパラメータ」でデータ型を指定しておくと入力段階でエラーメッセージが表示され、誤入力を早期発見できる |
MOS Access試験でのパラメータクエリ出題ポイント
MOS Access 365&2019では、パラメータクエリは選択クエリの応用操作として出題範囲に含まれます。分野別の出題数・配点は公表されていません。基本的な作成手順と動作の仕組みを理解したうえで、実際に手を動かして確認しておくことが重要です。
- パラメータの記述方法:条件行への
[メッセージ]記述と、実行時のダイアログ表示の関係を理解していること - パラメータのデータ型設定:「クエリのデザイン」タブ→「パラメータ」ダイアログを開いてデータ型を設定できること
- Like演算子との組み合わせ:
Like "*" & [パラメータ] & "*"の記述でどのような結果が返るかを理解していること - Between~Andとの組み合わせ:日付範囲パラメータの条件行の書き方
- 同一パラメータの複数使用:同じ名前を複数個所に記述するとダイアログが1回だけ表示されることを知っていること
MOS試験チェックリスト
| 確認ポイント | 操作内容 | 難易度 |
|---|---|---|
| パラメータクエリを新規作成する | 選択クエリの条件行に[メッセージ]を記述して実行できる | ★☆☆ |
| パラメータのデータ型を設定する | 「クエリパラメータ」ダイアログを開き、データ型を指定して保存できる | ★★☆ |
| Like演算子と組み合わせる | 条件行にLike “*” & [パラメータ] & “*”を正確に記述できる | ★★☆ |
| 日付範囲パラメータを設定する | Between [開始日] And [終了日] の構文を条件行に記述できる | ★★☆ |
| 複数パラメータを設定する | 複数フィールドにそれぞれパラメータを設定し、AND条件として機能することを確認できる | ★★☆ |
| 既存のクエリをパラメータクエリに変更する | 固定値の条件を[パラメータ]に置き換えて動作を確認できる | ★★☆ |
まとめ:パラメータクエリで「毎回書き換え」をなくす
本記事のポイントをまとめます。
- 角括弧がパラメータの基本:条件行に[メッセージ]を書くだけでダイアログが表示される。フィールド名と区別するために案内文を入れるのが推奨
- データ型は明示するのが安全:「クエリパラメータ」ダイアログで日付型・数値型を指定しておくと型不一致エラーを早期に検出できる
- Like演算子で部分一致検索を実現:
Like "*" & [パラメータ] & "*"の形式でキーワード検索機能を持たせられる - Between~Andで日付範囲指定:開始日・終了日を入力するパターンは月次レポートで特に実用的
- フォーム参照で操作性を高める:Forms![フォーム名]![コントロール名]の記述でダイアログレスのUIを作れる
- MOS試験対策:パラメータの記述・データ型設定・Like演算子との組み合わせをサンプルデータで繰り返し練習する
パラメータクエリをマスターすると、条件を変えるたびにデザインビューを開く必要がなくなり、データ抽出の速度と正確性が向上します。フォーム連動まで組み合わせれば、専門知識のない担当者でもボタン操作だけで任意の条件でデータを抽出できる業務システムが構築できます。MOS試験の準備としても、実際にテーブルとクエリを作って動作を体験することが最短の攻略法です。
PR
MOS試験の出題形式・採点の流れ・操作確認の進め方はExcelとAccessで共通しています。本書でクエリやプロパティダイアログ操作の「何をどこで確認するか」という感覚を養うと、Accessのパラメータクエリ設定やMOS Access試験の対策にも直結して活用できます。
PR
改善Excel パフォーマンスを底上げする仕事改善・効率化テクニック
Accessのパラメータクエリで動的な絞り込みを実現したあとは、ExcelへのエクスポートやExcelでのデータ集計と組み合わせることで業務自動化がさらに進みます。Excelの効率化テクニックを体系的に学ぶことでOffice全体の生産性向上につなげられます。
