おすすめ記事

同じカテゴリー

2つのテーブルの差分を求める



Accessで2つのテーブルの不一致レコードを抽出する方法です。
下のように[テーブルA]と[テーブルB]があります。テーブルのオブジェクトの表示は、タブを使わない表示にしています。
2つのテーブル

オブジェクトのタブを使わない表示は、[Accessのオプション]の[基本のデータベース]にある[ドキュメントウィンドウオプション]で[ウィンドウを重ねて表示する]を選択します。Access2007以降は、タブ付きウィンドウの表示が既定になっています。設定の詳細は、タブを使わない表示を参照してください。
Accessのオプション

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

スポンサーリンク

[不一致クエリウィザード]をクリックします。ウィザードは、初心者向けによく作られています。できれば、ウィザードに記載されているヒントは一読されてください。
「このウィザードで、1つのテーブルからほかのテーブルと一致しないレコード(行)を抽出するクエリを作成します。」
不一致クエリウィザード

ウィザードに記載されているヒントを読むと分かりやすいですね。
「このウィザードは、あるテーブルのレコードのうち、もう1つのテーブルのレコードと対応しないものだけを抽出するクエリを作成します。たとえば、注文がなかった得意先だけを抽出するクエリを作成できます。最初にレコードを抽出するテーブルまたはクエリを選択し、次に比較に使うテーブルまたはクエリを選択します。」
[テーブルA]を選択して、[次へ]ボタンをクリックします。
テーブルの選択

不一致クエリウィザードのヒントを記載します。
「比較に使うテーブルまたはクエリを選択します。
たとえば、前の画面で[得意先]テーブルを選択した場合、注文がなかった得意先だけを取り出すには、[受注]テーブルを選択します。」

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

「2つのテーブルに共通するデータを含むフィールドを選択します。
たとえば、[得意先]テーブルと[受注]テーブルは、[得意先コード]フィールドによって関連付けられます。関連付けるフィールドは、それぞれ別の名前でもかまいません。
各テーブルから関連付けるフィールドを選択し、[<=>]をクリックしてください。」

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

「クエリの結果に表示するフィールドを選択してください。」
ここでは、すべて表示したいので、[>>]ボタンをクリックします。
フィールドの選択

下のように右側にフィールド名が移動します。[次へ]ボタンをクリックします。
フィールドの確認

クエリに名前を付けます。下の[テーブルAとテーブルBの差分]は既定のままです。[完了]ボタンをクリックします。
クエリに名前を付ける

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

2つのテーブルの不一致レコードを抽出して、さらにその差分をテーブルに追加したいということがありますね。これも[追加クエリ]を使って、簡単に操作することができます。
ここで求めたレコードを元に追加クエリで、テーブルBに追加する方法を差分を追加で紹介しています。
追加クエリも参考になると思います。

トラブルをすぐに解決したいならteratail

おすすめ記事

シェアする