Windows 8 & Office 2013 Access 2013

2つのテーブルの差分を求める(不一致クエリウィザード)

投稿日:2017年1月7日 更新日:

Accessで2つのテーブルの不一致レコードを抽出する方法です。

下のように[テーブルA]と[テーブルB]があります。2つのテーブルのうち、一方にしかレコードを抽出します。

クエリを作成した後、デザインビューで開くと、どういう仕組みで抽出されたのかを知ることができます。

ここでは、テーブルのオブジェクトの表示は、タブを使わない[ウィンドウを重ねて表示する]設定にしています。

2つのテーブル

[ウィンドウを重ねて表示する]設定

オブジェクトのタブを使用しない表示は、[Accessのオプション]の[現在のデータベース]にある[ドキュメントウィンドウオプション]で[ウィンドウを重ねて表示する]を選択します。

Access2007以降は、[タブ付きドキュメント」の表示が既定になっています。

設定の詳細は、タブを使わない表示、またはタブではなく、ウィンドウで表示したいを参照してください。

[Accessのオプション]の[現在のデータベース]にある[ドキュメントウィンドウオプション]

[ウィンドウを重ねて表示する]と[タブ付きドキュメント]の違いについては、以下の記事で解説しています。

[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い

Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...

続きを見る

参考[オプション]ダイアログボックスは、アクセスキーを使ってキーボードから[Alt]→[F]→[T]の順に押して表示することができます。

キーボード[Alt]→[F]→[T]

不一致クエリウィザードの起動

クエリウィザードの中の[不一致クエリウィザード]を使用します。

不一致クエリウィザードを表示

[作成]タブの[クエリ]グループにある[クエリウィザード]をクリックします。

[作成]タブの[クエリ]グループにある[クエリウィザード]

[新しいクエリ]が表示されますので、[不一致クエリウィザード]をクリックします。

ウィザードは、初心者向けによく作られています。

できれば、ウィザードに記載されているヒントは一読されることをおすすめします。

不一致クエリウィザードには、以下のように記されています。

このウィザードで、1つのテーブルからほかのテーブルと一致しないレコード(行)を抽出するクエリを作成します。

[新しいクエリ]の[不一致クエリウィザード]

レコードを抽出するテーブルまたはクエリの選択

ウィザードに記載されているヒントを読むと分かりやすいですね。

このウィザードは、あるテーブルのレコードのうち、もう1つのテーブルのレコードと対応しないものだけを抽出するクエリを作成します。

たとえば、注文がなかった得意先だけを抽出するクエリを作成できます。

最初にレコードを抽出するテーブルまたはクエリを選択し、次に比較に使うテーブルまたはクエリを選択します。

[テーブルA]を選択して、[次へ]ボタンをクリックします。

不一致クエリウィザードでテーブルの選択

比較に使うテーブルまたはクエリの選択

不一致クエリウィザードのヒントを記載します。

比較に使うテーブルまたはクエリを選択します。

たとえば、前の画面で[得意先]テーブルを選択した場合、注文がなかった得意先だけを取り出すには、[受注]テーブルを選択します。

ここでは[テーブルB]を選択して、[次へ]ボタンをクリックします。

不一致クエリウィザードで比較に使うテーブルまたはクエリを選択

関連付けるフィールドの選択

2つのテーブルに共通するデータを含むフィールドを選択します。

たとえば、[得意先]テーブルと[受注]テーブルは、[得意先コード]フィールドによって関連付けられます。

関連付けるフィールドは、それぞれ別の名前でもかまいません。

各テーブルから関連付けるフィールドを選択し、[<=>]をクリックしてください。

ここでは、[日付]を選択して、[<=>]ボタンをクリックして、[次へ]ボタンをクリックします。

不一致クエリウィザードでフィールドの選択

結果に表示するフィールドを選択

クエリの結果に表示するフィールドを選択してください。

ここでは、すべて表示したいので、[>>]ボタンをクリックします。

不一致クエリウィザードで結果に表示するフィールドを選択

下のように右側にフィールド名が移動します。

[次へ]ボタンをクリックします。

不一致クエリウィザードでクエリの結果に表示するフィールドを確認

クエリ名の指定

クエリに名前を付けます。

下の[テーブルAとテーブルBの差分]は既定のままです。

[クエリを実行して結果を表示する]を選択したまま[完了]ボタンをクリックします。

不一致クエリウィザードでクエリに名前を指定

不一致レコードの抽出結果

以下のように不一致レコードのみが抽出されます。

不一致レコードの抽出結果

作成したクエリをデザインビューで確認

不一致クエリウィザードで作成したクエリをデザインビューで開いてみます。

[日付]フィールドの[抽出条件]に[Is Null]が指定されています。

不一致クエリウィザードで作成クエリのデザインビュー

また、結合線をダブルクリックして、[結合プロパティ]を開くと、以下のようになっています。

この内容が分かれば、ウィザードを使用しなくても不一致レコードを抽出できると思います。

結合プロパティ

参考不一致クエリウィザードを使用せずに、直接クエリを作成する方法は以下で解説しています。

2つのテーブルの共通フィールドを比較して一方にしかないデータを抽出する

2つのテーブルの共通フィールドを比較して、一方のテーブルにしかないレコードを抽出する方法です。 例えば、製品テーブルと売上テーブルがあって、 ...

続きを見る

関連2つのテーブルの不一致レコードを抽出して、さらにその差分をテーブルに追加したいということがありますね。

これも[追加クエリ]を使って、簡単に操作することができます。

ここで求めたレコードを基に追加クエリで、テーブルBに追加する方法を以下の記事で紹介しています。

レコードの差分をテーブルに追加(追加クエリの作成)

Accessで2つのテーブルの不一致レコードを抽出した後、その差分レコードをテーブルへ追加する方法です。 参考ここでは[ドキュメントウィンド ...

続きを見る

以下の追加クエリの記事も参考になると思います。

追加クエリの作成方法(追加先テーブルのフィールドへ特定の値を表示)

1つのテーブルに別のテーブルのレコードを追加する方法です。 3個テーブルがあって、各テーブルのフィールド名は同じです。 ここでは例として、テ ...

続きを見る

テーブルやクエリで重複した値のレコードを見つけるには、[重複クエリウィザード]が便利です。

重複クエリウィザードで重複したレコードを抽出

Accessのテーブルやクエリで重複した値のレコードを見つけるには、[重複クエリウィザード]でクエリを作成しておくと便利です。 ウィザードを ...

続きを見る

検索

ほかの記事も検索してみませんか?

Access / Excel / PowerPoint / Word

関連記事30件

Profile

-Windows 8 & Office 2013 Access 2013

Copyright © 2001-2024 初心者のためのOffice講座 All Rights Reserved.

Copyright© 初心者のためのOffice講座 , 2024 AllRights Reserved Powered by AFFINGER4.