Accessで2つのテーブルの不一致レコードを抽出する方法です。
下のように[テーブルA]と[テーブルB]があります。2つのテーブルのうち、一方にしかレコードを抽出します。
クエリを作成した後、デザインビューで開くと、どういう仕組みで抽出されたのかを知ることができます。
ここでは、テーブルのオブジェクトの表示は、タブを使わない[ウィンドウを重ねて表示する]設定にしています。
[ウィンドウを重ねて表示する]設定
オブジェクトのタブを使用しない表示は、[Accessのオプション]の[現在のデータベース]にある[ドキュメントウィンドウオプション]で[ウィンドウを重ねて表示する]を選択します。
Access2007以降は、[タブ付きドキュメント」の表示が既定になっています。
設定の詳細は、タブを使わない表示、またはタブではなく、ウィンドウで表示したいを参照してください。
[ウィンドウを重ねて表示する]と[タブ付きドキュメント]の違いについては、以下の記事で解説しています。
-
[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い
Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...
参考[オプション]ダイアログボックスは、アクセスキーを使ってキーボードから[Alt]→[F]→[T]の順に押して表示することができます。
不一致クエリウィザードの起動
クエリウィザードの中の[不一致クエリウィザード]を使用します。
不一致クエリウィザードを表示
[作成]タブの[クエリ]グループにある[クエリウィザード]をクリックします。
[新しいクエリ]が表示されますので、[不一致クエリウィザード]をクリックします。
ウィザードは、初心者向けによく作られています。
できれば、ウィザードに記載されているヒントは一読されることをおすすめします。
不一致クエリウィザードには、以下のように記されています。
このウィザードで、1つのテーブルからほかのテーブルと一致しないレコード(行)を抽出するクエリを作成します。
レコードを抽出するテーブルまたはクエリの選択
ウィザードに記載されているヒントを読むと分かりやすいですね。
このウィザードは、あるテーブルのレコードのうち、もう1つのテーブルのレコードと対応しないものだけを抽出するクエリを作成します。
たとえば、注文がなかった得意先だけを抽出するクエリを作成できます。
最初にレコードを抽出するテーブルまたはクエリを選択し、次に比較に使うテーブルまたはクエリを選択します。
[テーブルA]を選択して、[次へ]ボタンをクリックします。
比較に使うテーブルまたはクエリの選択
不一致クエリウィザードのヒントを記載します。
比較に使うテーブルまたはクエリを選択します。
たとえば、前の画面で[得意先]テーブルを選択した場合、注文がなかった得意先だけを取り出すには、[受注]テーブルを選択します。
ここでは[テーブルB]を選択して、[次へ]ボタンをクリックします。
関連付けるフィールドの選択
2つのテーブルに共通するデータを含むフィールドを選択します。
たとえば、[得意先]テーブルと[受注]テーブルは、[得意先コード]フィールドによって関連付けられます。
関連付けるフィールドは、それぞれ別の名前でもかまいません。
各テーブルから関連付けるフィールドを選択し、[<=>]をクリックしてください。
ここでは、[日付]を選択して、[<=>]ボタンをクリックして、[次へ]ボタンをクリックします。
結果に表示するフィールドを選択
クエリの結果に表示するフィールドを選択してください。
ここでは、すべて表示したいので、[>>]ボタンをクリックします。
下のように右側にフィールド名が移動します。
[次へ]ボタンをクリックします。
クエリ名の指定
クエリに名前を付けます。
下の[テーブルAとテーブルBの差分]は既定のままです。
[クエリを実行して結果を表示する]を選択したまま[完了]ボタンをクリックします。
不一致レコードの抽出結果
以下のように不一致レコードのみが抽出されます。
作成したクエリをデザインビューで確認
不一致クエリウィザードで作成したクエリをデザインビューで開いてみます。
[日付]フィールドの[抽出条件]に[Is Null]が指定されています。
また、結合線をダブルクリックして、[結合プロパティ]を開くと、以下のようになっています。
この内容が分かれば、ウィザードを使用しなくても不一致レコードを抽出できると思います。
参考不一致クエリウィザードを使用せずに、直接クエリを作成する方法は以下で解説しています。
-
2つのテーブルの共通フィールドを比較して一方にしかないデータを抽出する
2つのテーブルの共通フィールドを比較して、一方のテーブルにしかないレコードを抽出する方法です。 例えば、製品テーブルと売上テーブルがあって、 ...
関連2つのテーブルの不一致レコードを抽出して、さらにその差分をテーブルに追加したいということがありますね。
これも[追加クエリ]を使って、簡単に操作することができます。
ここで求めたレコードを基に追加クエリで、テーブルBに追加する方法を以下の記事で紹介しています。
-
レコードの差分をテーブルに追加(追加クエリの作成)
Accessで2つのテーブルの不一致レコードを抽出した後、その差分レコードをテーブルへ追加する方法です。 参考ここでは[ドキュメントウィンド ...
以下の追加クエリの記事も参考になると思います。
-
追加クエリの作成方法(追加先テーブルのフィールドへ特定の値を表示)
1つのテーブルに別のテーブルのレコードを追加する方法です。 3個テーブルがあって、各テーブルのフィールド名は同じです。 ここでは例として、テ ...
テーブルやクエリで重複した値のレコードを見つけるには、[重複クエリウィザード]が便利です。
-
重複クエリウィザードで重複したレコードを抽出
Accessのテーブルやクエリで重複した値のレコードを見つけるには、[重複クエリウィザード]でクエリを作成しておくと便利です。 ウィザードを ...