リンクユニット

Office 2019 Access 2019

ユニオンクエリ(複数のテーブルを結合)をコピーと貼付で簡単作成

投稿日:2020年8月19日 更新日:

Accessには、複数のテーブルやクエリのレコードを結び付けて、1つのクエリにする[ユニオンクエリ]という機能があります。

ユニオンクエリは、さまざまな場面で利用できて便利なのですが、他のクエリのようにデザインビューで設定ができません。SQLビューを開いてSQL文を書き込まなければなりません。

ですから、難しく思われるかもしれませんが、ここではSQL言語を知らなくても簡単に作成できる方法を解説します。

ユニオンクエリは、知れば本当に便利な機能です。ぜひ使ってみてください。

ここでは、Access2019で解説しますが、他のバージョンでも同じ操作です。

ユニオンクエリで2つのテーブルのレコードを結合

2つのテーブルの確認


サンプルとして使用するテーブルです。

以下は、テーブル[Aグループ]とテーブル[Bグループ]のデータシートビューです。

2つのテーブルのデータシートビュー

以下は、テーブル[Aグループ]のデザインビューです。テーブル[Bグループ]も同じです。

テーブルのデザインビュー

参考ここでは、ドキュメントウィンドウオプションで、[ウィンドウを重ねて表示する]の設定にしています。[タブ付きドキュメント](既定)でも操作は同じです。

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

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

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

続きを見る

[Aグループ]と[Bグループ]のクエリを作成

テーブル[Aグループ]とテーブル[Bグループ]を結び付けて、1つのクエリを作成していきます。

ここでは2つのクエリを作成してから、ユニオンクエリを作成します。

本来は、テーブルを元に2つのクエリを作成する必要はないのですが、分かりやすいように、あえてクエリを作成します。ユニオンクエリを作成した後は、2つのクエリは削除してもかまいません。

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

[作成]タブの[クエリ]グループにある「クエリデザイン」

[テーブルの表示]ダイアログボックスが表示されますので、[テーブル]タブから[Aグループ]を選択して[追加]ボタンをクリックします。

[テーブルの表示]ダイアログボックス

クエリウィンドウにテーブル[Aグループ]のフィールドリストが表示されます。

ID以外のフィールドを選択して、デザイングリッドへドラッグして登録します。

参考テーブルのフィールドリストは、[Shift]キーを使うと連続した範囲を選択できます。また、フィールドリストをダブルクリックしても登録できます。

フィールドを選択して、デザイングリッドへドラッグして登録

クエリを実行して確認してみます。

[デザイン]タブの[結果]グループにある[表示]ボタンをクリックします。

[デザイン]タブの[結果]グループにある[表示]ボタン

クエリのデータシートビューは、以下のようになっています。

クエリのデータシートビュー

参考クエリは、[選択クエリウイザード]を使用して作成しても構いません。

クエリに名前を付けて保存

クエリに名前を付けて保存します。

[F12]キーを押すと、[名前を付けて保存]ダイアログボックスが表示されます。

[クエリ1]のテキストボックスに、分かりやすい名前を付けて保存します。ここでは[クエリ_A]としておきます。

[名前を付けて保存]ダイアログボックス

同様にテーブル[Bグループ]も同じフィールドを登録して[クエリ_B]を作成して保存します。

ナビゲーションウィンドウには、以下のように2つのクエリが保存されます。

2個のクエリを作成した後のナビゲーションウィンドウ

ユニオンクエリの作成

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

[作成]タブの[クエリ]グループにある[クエリデザイン]

[テーブルの表示]ダイアログボックスが表示されますが、[閉じる]ボタンで閉じます。

[テーブルの表示]ダイアログボックス

[デザイン]タブの[クエリの種類]グウr-プにある[ユニオン]をクリックします。

[デザイン]タブの[クエリの種類]グウr-プにある[ユニオン]

SQLビューが表示されます。

[表示]ボタンをクリックすると、[SQLビュー]が選択されています。

ここにSQL言語を書き込んでいくわけです。

でも、SQLを知らなくても大丈夫です。

ユニオンクエリのSQLビューは、開いたままにしておきます。

ユニオンクエリのSQLビュー

[クエリ_A]をSQLビューで開いてSQL文をコピーして貼り付け

クエリ[クエリ_A]をデザインビューで開きます。

[デザイン]タブの[結果]グループにある[表示]ボタンの下方(文字の部分)をクリックして、[SQLビュー]をクリックします。

[デザイン]タブの[表示]で[SQLビュー]を選択

以下のようにSQL文が表示されます。

SQLビューのSQL文

このままコピーします。ここでは、右クリックしてショートカットメニューから[コピー]をクリックします。

SQL文をコピー

クエリ[クエリ_A]は、閉じます。

ユニオンクエリに貼り付けします。

ユニオンクエリにSQL文を貼り付け

[UNION]と入力

貼り付けたSQL文に続けて、[UNION]と入力します。これだけは入力してください。

UNION

UNIONとは、英語で「結合」という意味です。

分かりやすくするために、ここでは改行していますが、しなくても構いません。

ユニオンクエリはSQLビューのまま表示しておきます。

SQL文に続けて[UNION]と入力

[クエリ_B]をSQLビューで開いてSQL文をコピーして貼り付け

クエリ[クエリ_B]も同様に、デザインビューで開いて、SQLビューを表示して、SQL文をコピーします。

クエリ[クエリ_B]は閉じます。

結合したいクエリのSQL文をコピー

そして、ユニオンクエリに貼り付けます。

以下のようになります。

ユニオンクエリに貼り付け

ユニオンクエリを確認して名前を付けて保存

[結果]グループにある[表示]ボタンをクリックして、データシートビューで結合できているかを確認します。

ユニオンクエリを実行

以下のようになります。

ユニオンクエリのデータシートビュー

[F12]キーを押して[名前を付けて保存]ダイアログボックスを表示します。

ここでは、[グループ結合]という名前を付けて保存します。

[名前を付けて保存]ダイアログボックス

ナビゲーションウィンドウには、以下のようなアイコンが表示されます。これがユニオンクエリです。

ナビゲーションウィンドウのユニオンクエリ

参考ユニオンクエリを作成した後、クエリ[クエリ_A]と[クエリ_B]は不要であれば、削除しても構いません。

ここでは、分かりやすくするために、クエリを作成し保存した後、SQLビューを表示してコピー&ペースという手順を紹介しましたが、慣れた方なら、クエリは保存しなくても、SQL文のみをクリップボードにコピーすればいいと思います。

ユニオンクエリを作成するには、結合するフィールド数は、同じでなければなりません。

ただ、フィールド名は同じでなくても構いません。その場合、最初のテーブルのフィールド名が使用されます。

フィールド名が異なるテーブルでユニオンクエリを作成

結合するフィールド数が多すぎると作成できないことがあります。以下のメッセージウィンドウが表示されます。

定義されているフィールドが多すぎます。

[定義されているフィールドが多すぎます。]メッセージウィンドウ

ユニオンクエリの特徴

ユニオンクエリは、普通のクエリのように、レコードの修正や削除はできません。

ユニオンクエリのデータシートビュー

テーブルのレコードの値が修正されたら、それは反映されます。

以下は、テーブル[Aグループ]で「もりや」を「もりたに」に修正しています。

もちろん、テーブルのレコードが追加されたり、削除されても反映されます。

テーブルのレコードを修正した後のユニオンクエリ

ユニオンクエリを修正する場合は、SQLビューを開いて修正します。

[UNION]と[UNION ALL]の違い

テーブル[Aグループ]と[Bグループ]に同じレコードがあります。

2つのテーブルに同じレコードがある

[UNION ALL]で結ぶと、重複レコードがあっても、そのまま表示されます。

2つのテーブルを[UNION ALL]で結びます。重複レコードは、そのまま表示されます。

2つのテーブルを[UNION ALL]で結ぶ

重複レコードはそのまま表示

[UNION]で結ぶと、重複レコードは排除されます。

2つのテーブルを[UNION]で結ぶ

重複レコードが排除されたユニオンクエリ

参考[UNION]や[UNION ALL]で複数のテーブルやクエリを結合していくことができます。以下は3つのテーブルを[UNION]で結んでいます。

3つのテーブルを[UNION]で結合

さまざまなクエリでSQL文を参照

ユニオンクエリを作成する場合、デザインビューでの設定はできませんが、クエリでSQL文をコピーできれば簡単に作成できるというわけです。

すべてのフィールドを結合したい場合

同じフィールド数の複数のテーブルがあって、テーブルのすべてのフィールドを結合したい場合は、クエリで以下のようにフィールドリストの[*]をデザイングリッドに登録します。

フィールドリストの[*]をデザイングリッドに登録

この状態でSQLビューを確認すると、以下のように表示されます。

SQLビューでSQL文を参照

上記のSQL文をコピーして、ユニオンクエリに貼り付けします。

結合したいテーブルも同様に操作して、SQL文をコピーして貼り付けします。

短いSQL文で見やすいと思います。

ユニオンクエリのSQLビュー

ユニオンクエリを表示すると、以下のようにすべてのフィールドが結合されたものになります。

ユニオンクエリのデータシートビュー

作成済みのクエリを使ってSQL文を参照

すでに作成済みのクエリがあって、そのクエリをもとにSQL文を参照しても構いません。

[名前]フィールドのみを結合したいのであれば、クエリのデザイングリッドで[名前]フィールド以外のフィールドの[表示]のチェックボックスをオフにします。

選択クエリでフィールドの非表示設定

そして、SQLビューに切り替えると、以下のようになっています。

SQLビューでSQL文を参照

上記のSQL文をコピーして、ユニオンクエリに貼り付けします。

結合したいテーブルも同様に操作して、SQL文をコピーして貼り付けします。

ユニオンクエリのSQLビュー

ユニオンクエリを表示すると、以下のように名前フィールドのみが結合されたものになります。

ユニオンクエリのデータシートビュー

異なるフィールドを結合することもできます。ただ、フィールド数は同じでなければいけません。

抽出条件を追加してユニオンクエリを作成

例えば、テーブル[グループA]の[青森県]のレコードと、テーブル[グループB]の[愛知県]のレコードを結合したいということもできます。

以下のように各クエリで[抽出条件]を指定して、SQL文をコピーしてユニオンクエリを作成します。

クエリで抽出条件を指定

ユニオンクエリのSQLビューは、以下のようになります。

ユニオンクエリのSQLビュー

データシートビューで表示すると、以下のようになります。

ユニオンクエリのデータシートビュー

ユニオンクエリからテーブルを作成するには

ユニオンクエリを作成したら、そのクエリをそのままテーブルにしたいと思うこともあるかと思います。

[テーブル作成クエリ]を使って作成できます。

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

[作成]タブの[クエリ]グループにある「クエリデザイン」

[テーブルの表示]ダイアログボックスが表示されますので、[クエリ]タブから[グループ結合]を選択して[追加]ボタンをクリックします。

クエリを追加したら、[テーブルの表示]ダイアログボックスは[閉じる」ボタンで閉じます。

[テーブルの表示]ダイアログボックス

フィールドリストから、[*]をデザイングリッドへドラッグします。すべてのフィールドを選択しているということになります。

クエリのデザインビュー

[デザイン]タブの[クエリの種類]グループにある[テーブルの作成]ボタンをクリックします。

「テーブルの作成]の[テーブル名]のテキストボックスに、テーブル名を入力して[OK]ボタンをクリックします。

[テーブルの作成]ダイアログボックス

[デザイン]タブの[結果]グループにある[表示]ボタンをクリックして、作成されるテーブルを確認します。

[デザイン]タブの[結果]グループにある[表示]ボタン

ここでは、以下のようなデータシートビューが表示されます。

データシートビュー

問題がなければ、[実行]ボタンをクリックします。

メッセージウィンドウも表示されますので、[はい]をクリックします。

[テーブルの作成]クエリを実行

ナビゲーションウィンドウに新規テーブル[全名簿]が表示されていて、作成されたことが分かります。

ナビゲーションウィンドウの新規テーブル

テーブル作成クエリは、必要であれば保存しておきます。

キーボードから[F12]キーを押すと、[名前を付けて保存]ダイアログボックスが表示されます。

テキストボックスに分かりやすい名前を付けて、[OK]ボタンをクリックします。

[名前を付けて保存]ダイアログボックス

ナビゲーションウィンドウのアイコンは以下のように表示されます。

ナビゲーションウィンドウの[テーブルの作成]クエリ

アクションクエリは、ダブルクリックすると実行されますので気をつけてください。

テーブル作成クエリについては、以下の記事でも解説しています。

グループ化で重複レコードを削除したテーブルを作成

Access2013で、1つのテーブルで重複したレコードを削除してマスターテーブルを作成する方法です。 テーブルの確認 以下のようなテーブル ...

続きを見る

参考テーブルを結合するには、[追加クエリ]を使う方法もあります。

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

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

続きを見る

Profile

執筆者/はま

もっと理解したいあなたへ

おすすめ記事と広告

-Office 2019 Access 2019

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

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