Access活用の第一歩は、テーブルに蓄積されたデータをいかに効果的に活用するかにあります。多くの場合、テーブルのデータをそのまま利用するのではなく、加工や抽出などの処理を加えて活用します。そのデータ加工を担うのが「クエリ」というオブジェクトです。
今回の記事では、具体的な操作は一旦置いて、クエリの基本的な事柄を網羅的に解説します。
クエリの概要
Accessにおけるクエリの位置づけ
Accessは、複数のオブジェクトを組み合わせることで、その機能を最大限に発揮します。
以下の図は、Accessにおける各オブジェクトの関連性を示したものです。ご覧いただくと分かるように、クエリはテーブルに格納されたデータを加工し、フォームやレポートを通じてユーザーに情報を提供する重要な役割を担っています。

クエリ(デザインビュー)の画面構成
クエリの操作画面について解説します。
Accessのクエリは、「データシートビュー」「SQLビュー」「デザインビュー」という3つの表示形式で操作できます。今回は、クエリの作成を主に行う「デザインビュー」の画面構成について詳しく説明します。

後述の解説をイメージしやすくするためにも、画面の名称などを覚えておきましょう
メニュー「作成」→「クエリデザイン」をクリックします。

クエリのデザインビュー画面が開きます。

①各種メニュー
メニューでは、さまざまな操作を実行できます。代表的な操作としては、表示形式の切り替え、クエリの実行、クエリの種類の変更などが挙げられます。ここでは、ひとまず「作成したクエリを実行するための場所」と覚えておくと良いでしょう。
②フィールドリスト
フィールドリストは、クエリの基となるテーブルを表示する領域です。ここに必要なテーブルを配置することで、クエリで使用するデータを指定します。単一のテーブルだけでなく、複数のテーブルを配置することも可能で、複数のテーブルを配置した場合は、外部キー同士を線で結び、テーブル間の関連付けを行います。
③デザイングリッド
デザイングリッドは、クエリ作成における主要な操作領域です。この画面で、データの抽出、並べ替え、集計といったクエリの各種操作(詳細は後述)に必要な条件を設定します。デザイングリッドの操作を理解し、使いこなすことが、クエリを効果的に活用するための鍵となります。
④プロパティシート
プロパティシートは、フィールドリストやデザイングリッドに配置された各オブジェクトの詳細な設定を行うための画面です。各オブジェクトはそれぞれ固有の属性(プロパティ)を持っており、プロパティシートを使用することで、これらの属性の値を設定したり、変更したりすることができます。
クエリで出来ること
前述の「Accessにおけるクエリの位置づけ」で説明したように、クエリはデータを加工するためのオブジェクトです。では、具体的にどのような処理を行うのでしょうか。ここでは、クエリで実行できる主なデータ操作について詳しく解説します。
クエリを使用すると、以下のさまざまなデータ操作が可能です。
・データ抽出
・データ集計
・データ並び替え
・データ追加
・データ更新
・データ削除
・新規テーブルを作成

それぞれをどの場面で使えばいいのか、今はまだ分からなくて大丈夫です
データ抽出
クエリを使用すると、抽出条件を設定することで、特定のレコードのみを表示するようにデータを絞り込むことができます。抽出条件は、デザイングリッドの「抽出条件」欄で設定しますが、さまざまな条件設定が可能であり、非常に奥深い機能です。データ抽出は、クエリの基本であり、最も代表的な活用方法と言えるでしょう。
さまざまな抽出条件のバリエーションについては、以下の記事で詳しく解説しています。
データ集計
クエリを使用すると、フィールドに格納された数値データを集計することができます。集計には、縦方向と横方向の2種類の集計方法があります。
縦方向の集計 | レコードの集計を行います。特定のフィールドに格納された同一のデータをグループ化し、グループごとに値の集計を行います。これは、いわゆる「縦計」です。 |
横方向の集計 | フィールド同士の四則演算を行います。例えば、「時給」と「勤務時間」というフィールドがある場合、新しいフィールドに「給料: [時給] * [勤務時間]」という式を設定することで、給料の金額を算出できます。これは、いわゆる「横計」です。 |
データ並び替え
テーブルに保存されたデータには、基本的に特定の並び順という概念はありません。しかし、特定のフィールドを基準にデータを並べ替えたい場面は多々あります。クエリのデザイングリッドには、各フィールドに「並べ替え」という項目があり、ここで「昇順」または「降順」を選択することで、データの並べ替えを行うことができます。
データ追加
クエリを使用すると、別のテーブルに格納されているデータを、条件を指定して一括で追加することができます。例えば、「タスク管理」テーブルの処理済フラグが「True」になっているレコードのみを、「タスク処理済」テーブルに追加する、といった処理も簡単に行えます。
データ更新
クエリを使用すると、テーブルに格納されたデータを一括で更新することができます。例えば、「時給」というフィールドがある場合、全員一律で50円アップさせるには、「[時給] + 50」という式を実行します。これにより、従業員が50人いたとしても、元の時給に50円を加算する処理を一括で行うことができます。
データ削除
クエリを使用すると、テーブルに格納されたデータを一括で削除することができます。例えば、処理済フラグが「True」のレコードを「タスク管理」テーブルから「タスク処理済」テーブルに移動した後、元のデータが不要になった場合などに、一括削除を行うことができます。
新規テーブル作成
既存のテーブルを元に新しいテーブルを作成することができます。
クエリの正体
前述したように、Accessのクエリでは、テーブルのデータに対して抽出や集計など、さまざまな処理を実行できます。これらの処理の条件設定は、「デザインビュー」で行うことができます。
実は、Accessと同様のデータベース管理システムは他にも多数存在します。OracleやSQL Serverといった管理システムは、Accessよりも堅牢で大規模なデータベース運用に適していますが、テーブルにデータを保持し、必要に応じてデータ抽出や集計を行うという基本的な使い方は共通しています。
ただし、データの操作方法は異なります。OracleやSQL Serverでは、SQL(Structured Query Language)というデータベース言語を使用して、データ抽出や集計を行います。
では、Accessだけが異なるかというと、そうではありません。Accessはクエリというオブジェクトを通じてデータ操作を行いますが、実際にはAccess内部でクエリをSQLに変換して実行しています。そのため、ユーザーは(一部の高度な操作を除き)SQLという複雑な構文をすべて習得しなくても、データ操作を行うことができます。
具体的には、「デザインビュー」では、視認性に優れたデザイングリッドで条件設定を行うことができ、「SQLビュー」では、生成されたSQLの構文を確認することができます。ビューの切り替えは、メニューの「表示」から行います。(データシートビューは、実際のデータを表示するための画面です。)

以下の図は、デザインビューとSQLビューの比較です。両者は、「総務部社員のみ抽出」という同じデータ抽出を実行しています。SQLの文字列と比較すると、デザインビューの視認性の高さが際立ちます。

ほとんどの処理はデザインビューで可能ですが、SQLを活用した方が効果的な場面もあります。詳しくはこちらの記事で解説していますので、ぜひご覧ください!
クエリの種類
前項では、クエリで実行できるさまざまな処理について説明しましたが、これらの処理をすべて1つのクエリで行うわけではありません。クエリにはいくつかの種類があり、種類によって実行できる処理が異なります。

ここではクエリの種類について、それぞれ概要を説明します。
選択クエリ
選択クエリは、最も使用頻度が高く、基本的なクエリと言えます。主な用途は、デザイングリッドの「抽出条件」で指定した条件に基づくデータの絞り込みや、レコードのグループ化による集計などです。後述する他の種類のクエリも、選択クエリと同様の条件指定を行うため、すべてのクエリの基本となっていると言っても過言ではありません。
選択クエリの抽出パターンの詳細については、こちらの記事で解説しています。
アクションクエリ
選択クエリが既存のテーブルに一切の変更を加えないのに対し、アクションクエリはテーブルに直接変更を加えるクエリです。ここでは、3種類のアクションクエリについて解説します。
追加クエリ
追加クエリは、別のテーブルやクエリのデータを、現在のテーブルに一括で追加するためのクエリです。前述の「クエリで出来ること」で説明した「データ追加」は、このクエリで実行します。
こちらの記事では、追加クエリの作成方法や具体的な使用例を解説しています。
更新クエリ
更新クエリは、特定の条件に一致するレコードの値を一括で更新するためのクエリです。前述の「クエリで出来ること」で説明した「データ更新」は、このクエリで実行します。
こちらの記事では、更新クエリの作成方法や具体的な使用例を解説しています。
削除クエリ
削除クエリは、テーブルから特定の条件に一致するレコードを、一括で削除するためのクエリです。前述の「クエリで出来ること」で説明した「データ削除」は、このクエリで実行します。
テーブル作成クエリ
テーブル作成クエリは、既存のテーブルやクエリを基に、新しいテーブルを作成するためのクエリです。前述の「クエリで出来ること」で説明した「新規テーブルの作成」は、このクエリで実行します。
SQLクエリ
これまで説明したクエリは、すべてデザインビューの「デザイングリッド」で条件設定などが可能であるため、SQL構文を直接記述しなくても作成・実行できました。
しかし、Accessのクエリの中には、SQLビューでSQLを直接記述しないと実行できないクエリも存在します。これらのクエリを便宜的に「SQLクエリ」と呼びます。ここでは、3種類のSQLクエリについて説明します。
ユニオンクエリ
ユニオンクエリは、2つの異なるテーブルやクエリを組み合わせ、あたかも1つのテーブルやクエリのように扱うことができるクエリです。組み合わせるテーブルやクエリのフィールド名とデータ型は、同一である必要があります。
格納件数が多いテーブル同士を組み合わせる場合は、処理速度が低下する可能性があるため、使用する場面を慎重に検討しましょう。

2つのテーブルを縦にドン、ドンと積み重ねるイメージだね
パススルークエリ
パススルークエリは、Access単体ではなく、Accessと接続した外部のリレーショナルデータベース(OracleやSQL Serverなど、以下「外部RDB」)に対して処理を要求するクエリです。クエリの実行処理は、Accessが動作している端末ではなく、外部RDBが動作しているサーバーで行われるため、端末に負荷をかけずに高速で処理結果を取得できます。また、外部RDBで実行されるため、AccessではサポートされていないSQL構文なども使用できます。
データ定義クエリ
前述したアクションクエリは、レコードの追加、更新、削除を行うクエリでしたが、データ定義クエリは、レコードを格納するための「箱」であるテーブルの定義を行うクエリです。テーブル定義とは、テーブルのフィールドを追加・削除したり、データ型を変更したり、インデックスを設定したりする作業のことです。

まさにテーブル作成時に行う作業をクエリで行えるってことですね!
その他のクエリ
パラメータークエリ
パラメータークエリは、選択クエリの派生とも言えるクエリで、基本的な動作は選択クエリとほぼ同じですが、抽出条件の設定方法が異なります。通常の選択クエリでは、デザイングリッドの「抽出条件」欄に条件となる文字列を入力すると、その条件に一致するレコードが抽出されます。
一方、パラメータークエリでは、抽出条件に文字列を入力するのではなく、パラメーターを設定し、クエリ実行時に条件を手動で入力します。つまり、固定の抽出条件ではなく、実行するたびに条件を入力することで、動的な抽出結果を得ることができるクエリです。
クロス集計クエリ
クロス集計クエリは、Excelのピボットテーブルと同様の分析に特化したクエリです。行と列に項目を設定することで、データの集計結果を表形式で表示できます。
例:企業の部署別残業時間のクロス集計
行(縦軸):部署名
列(横軸):月
上記のようなクロス集計を作成することで、各部署の月別残業時間を一覧で確認し、分析することができます。
クロス集計クエリは、ウィザードを使用して簡単に作成できます。画面の指示に従って操作するだけで、クロス集計表を作成できます。
重複クエリ
重複クエリは、指定したフィールドに重複するレコードがある場合に、それらを抽出するクエリです。
単純に重複する値を抽出したい場合や、誤入力による重複データの有無を調査したい場合などに活用できます。選択クエリでも同様のクエリを作成できますが、「重複クエリウィザード」を使用すると、より簡単に作成できます。
不一致クエリ
不一致クエリは、2つのテーブルを比較し、一方のテーブルにのみ存在するデータを抽出するクエリです。重複クエリとは逆の動作をするクエリと考えると分かりやすいでしょう。こちらも「不一致クエリウィザード」が用意されており、専門的な知識がなくても簡単に作成できます。
まとめ
今回の記事では、Accessのクエリに関する網羅的な知識について解説しました。クエリは、Accessデータベースを効果的に活用するための重要な要素であり、データの抽出、集計、更新、削除など、様々な操作を可能にします。
この記事では、クエリの概要から、主なクエリの種類、そしてそれぞれのクエリでできることについて説明しました。特に、クエリの種類については、選択クエリ、アクションクエリ、SQLクエリなど、それぞれの特徴と用途を理解することで、より効率的なデータベース管理が可能になります。
各クエリの種類については、より詳しい解説記事をご用意しています。ぜひそちらもご覧ください。