2つのテーブルの共通フィールドを比較して、一方のテーブルにしかないレコードを抽出する方法です。
例えば、製品テーブルと売上テーブルがあって、売上がない製品を求めたいというような場合です。
不一致クエリウィザードを使用する方法もありますが、ここでは、直接クエリを作成します。
参考ここでは[ドキュメントウィンドウオプション]で[ウィンドウを重ねて表示する]を選択しています。[ウィンドウを重ねて表示する]と[タブ付きドキュメント]の違いについては、以下の記事で解説しています。
-
[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い
Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...
2つのテーブルの確認
テーブル[T_製品]とテーブル[T_売上明細]があります。
製品テーブル
テーブル[T_製品]は、製品情報のみのテーブルです。
デザインビューは、以下のようになっています。
フィールド[製品コード]に[主キー]の設定をしています。
参考主キーについては、以下の記事で解説しています。
-
Accessテーブルの[主キー]の設定
Accessのテーブルでは、[主キー](シュキー)を設定することができます。[主キー]とは、各レコードを固有のものとして識別するフィールドの ...
売上テーブル
テーブル[T_売上明細]は、売上情報のテーブルです。
デザインビューは、以下のようになっています。
リレーションシップ
[データベースツール]タブの[リレーションシップ]をクリックします。
リレーションシップは、2つのテーブルのフィールド[製品コード]で結ばれています。
参考参照整合性については、以下の記事を参照してください。
-
リレーションシップの作成と参照整合性の設定
Accessでは、複数のテーブルがあって、そのテーブル間の共通フィールドを関連付けることができます。この関連付けのことを[リレーションシップ ...
クエリをデザインビューで作成
売上がない製品を求めるためのクエリを作成します。
ここでのサンプルは、シンプルなので見ただけで分かりますが、レコード数が多くなると見た目では分かりません。
これをクエリで求められるようにします。
クエリデザインにテーブルを表示
[作成]タブの[クエリ]グループにある[クエリデザイン]をクリックします。
[テーブルの表示]ダイアログボックスが表示されます。
[テーブル]タブの[T_製品]を選択して、[追加]ボタンをクリックします。
同じように[T_ 売上明細]も追加します。
追加が終わったら、[閉じる]ボタンをクリックして[テーブルの表示]ダイアログボックスは閉じます。
クエリは、以下のようになります。
参照整合性を設定しているので、以下のように結合線が表示されています。
リレーションシップを設定しない場合は、以下のようになります。これでもOKです。
参考バージョンによって異なると思いますが、[作成]タブの[クエリデザイン]をクリックすると、Microsoft 365のAccessとAccess 2021では[テーブルの追加]作業ウィンドウとして表示されます。
クエリデザインの「テーブルの追加」は作業ウィンドウに表示される
デザイングリッドにフィールドを追加
クエリに表示したいフィールドをデザイングリッドにドラッグします。ダブルクリックでも構いません。
テーブル[T_製品]の3つのフィールドをデザイングリッドに追加します。
比較する共通フィールドを追加
2つのテーブルの比較する共通フィールドをデザイングリッドに追加します。
ここでは、テーブル[T_売上明細]の[製品コード]を追加します。
テーブル[T_売上明細]の[製品コード]は、クエリに表示する必要はないので、[表示]の□をクリックしてオフします。
テーブル[T_売上明細]にはないレコードを抽出したいので、[抽出条件]に[Is Null]と入力します。
結合プロパティの設定
結合線をダブルクリックして、[結合プロパティ]を表示します。
[結合プロパティ]は、以下のようになっています。
ここで、[2:'T_製品'の全レコードと'T_売上明細'の同じ結合フィールドのレコードだけを含める。]を選択して、[OK]ボタンをクリックします。
結合線は、以下のようになります。
結合線はダブルクリックしていつでも確認できます。
結合プロパティについて
結合線をダブルクリックして表示される[結合プロパティ]には3つの選択肢があります。
Accessでは、クエリのデザインビューに配置したテーブルの位置とは関係なく、一側テーブルが左、多側テーブルが右と呼ばれます。
- 内部結合
- 左外部結合
- 右外部結合
通常は、内部結合といってテーブル間の結合フィールドが一致するレコードが表示されます。
外部結合は、どちらか一方のテーブルのすべてのレコードが表示されます。
表示されるはずのレコードが表示されない場合は、結合を間違って選択している場合があります。
クエリの結果を確認して名前を付けて保存
デザインビューの[表示]ボタンをクリックして、結果を確認します。
結果、以下のようになります。
クエリは、分かりやすい名前を付けて保存します。
キーボードから[F12]キーを押すと、[名前を付けて保存]ダイアログボックスを表示できます。
ここでは、[Q_売上無し製品]という名前を付けています。
参考不一致クエリウィザードを使って求める方法は、以下の記事で解説しています。不一致クエリウィザードで作成した後、クエリをデザインビューで開くと、同じ仕組みで作成されていることが分かります。
-
2つのテーブルの差分を求める(不一致クエリウィザード)
Accessで2つのテーブルの不一致レコードを抽出する方法です。 下のように[テーブルA]と[テーブルB]があります。2つのテーブルのうち、 ...
また、1つのテーブルの複数フィールドを他テーブルの同じフィールドへ結合する場合のクエリの作成方法は、以下で解説しています。
-
複数フィールドを他テーブルの同じフィールドへ結合するクエリの作成
Accessで2つのテーブルがあって、1つのテーブルの複数のフィールドが、別テーブルの同じフィールドへ結合する場合のクエリの作成方法です。 ...