1つのテーブルに別のテーブルのレコードを追加する方法です。
3個テーブルがあって、各テーブルのフィールド名は同じです。
ここでは例として、テーブル[T_B2010]のすべてのレコードをテーブル[T_A2010]に追加します。
以下はテーブルのデザインビューです。3個のテーブルとも同じで以下のようになっています。
[ID]フィールドは[オートナンバー型]で[主キー]の設定もしています。
-
Accessテーブルの[主キー]の設定
Accessのテーブルでは、[主キー](シュキー)を設定することができます。[主キー]とは、各レコードを固有のものとして識別するフィールドの ...
この記事の目次
クエリデザインの表示
[作成]タブから[クエリデザイン]をクリックします。
[テーブルの表示]から[T_B2010]を選択して、[追加]ボタンをクリックします。
テーブル[T_B2010]のすべてのフィールドをデザイングリッドに表示します。
参考バージョンによって異なると思いますが、[作成]タブの[クエリデザイン]をクリックすると、Microsoft 365のAccessとAccess 2021では[テーブルの追加]作業ウィンドウとして表示されます。
クエリデザインの「テーブルの追加」は作業ウィンドウに表示される
追加クエリの作成
[デザイン]タブの[クエリの種類]グループにある[追加]をクリックします。
[追加]ダイアログボックスのテーブル名の▼ボタンをクリックします。
追加先テーブルを▼ボタンをクリックして、選択します。ここでは、[T_A2010]を選択します。
[OK]ボタンをクリックします。
クエリのデザイングリッドに、[レコードの追加]行が挿入されます。
オートナンバー型のフィールドがある場合
同じフィールドの場合は、自動的にフィールドが追加されますが、ここでは、追加先テーブルの[ID]が[オートナンバー型](主キー)なので削除します。
注意[オートナンバー型]の場合は、必ず削除してください。IDがなくても、[オートナンバー型]なので、次のレコードの番号が自動的に振られます。
[ID]フィールドを削除後、以下のようになります。
参考デザイングリッドに最初から[オートナンバー型]のフィールドを除いて追加しておくといいですね。
レコードの追加行にフィールドが表示されない場合
レコードの追加行に追加先テーブルのフィールド名が表示されない場合は、手動で設定します。
追加先テーブルと追加元のテーブルのフィールド名が異なる場合は、自動では表示されません。
レコードの追加行の各フィールドで▼ボタンをクリックして追加先のフィールドを選択します。
抽出条件を指定して追加したい場合
デザイングリッドの[抽出条件]に条件を追加すると、その条件に合うレコードのみを追加できます。
抽出条件を指定した場合は、[デザイン]タブの[結果]グループにある[表示](データシートビュー)ボタンをクリックして、抽出したレコードに間違いがないか確認してから、実行したほうがいいです。
データシートビューで、抽出結果が間違いがないことを確認します。
追加先テーブルのフィールドに特定の値を表示したい場合
追加先テーブルのフィールドに特定の値を表示することもできます。
例えば、追加先テーブルに[店舗名]というフィールドがあるとします。
追加クエリをデザインビューで開いて、以下のように[レコードの追加]には追加先テーブルの[店舗名]フィールドを指定して、フィールドには、["AAA店"]と入力します。必ずダブルクォ―テーションで囲みます。
フィールドは、[式1:”AAA店"]と自動的に変更されます。
追加元のテーブルに[店舗名]フィールドがないので、自動的に[式1]というフィールド名が割り当てられます。
[デザイン]タブの[結果]グループにある[表示](データシートビュー)ボタンをクリックして、確認します。
クエリのデータシートビューが以下のようになっていれば、OKです。
日付の場合
追加先テーブルに[確認日]フィールド([日付/時刻型])があって、そこへ特定の日付を表示するようにしたい場合は、日付は[#2010/08/01#]のように#で囲みます。
画像は、Access2019です。
クエリのデータシートビューで表示すると、以下のようになります。
これで追加クエリを実行すると、追加先テーブルのすべてのレコードの[確認日]フィールドに[2010/08/01]が表示されます。
クエリの実行と保存
デザインビューのまま[結果]グループにある[実行]ボタンをクリックします。
下のようなメッセージウィンドウが表示されますので、[はい]ボタンをクリックします。
参考追加クエリを実行するときにエラーメッセージが表示されるようであれば、以下の記事を参考にしてみてください。
追加クエリを実行するときによくあるエラー - Access(Microsoft)
クエリに名前を付けて保存します。
ナビゲーションウィンドウには、以下のように表示されます。
参考コマンドボタンをクリックして、追加クエリを実行するための設定については、以下の記事で解説しています。
-
作成したクエリをコマンドボタンに登録して実行する
Accessでクエリを作成した後、コマンドボタンをクリックしてクエリを実行するための方法です。 コマンドボタンウィザードを使用する方法と、マ ...
テーブルを結合するには、[ユニオンクエリ]を使う方法もあります。以下の記事では、SQL言語を知らなくても簡単に作成できる方法を解説しています。
-
ユニオンクエリ(複数のテーブルを結合)をコピーと貼付で簡単作成
Accessには、複数のテーブルやクエリのレコードを結び付けて、1つのクエリにする[ユニオンクエリ]という機能があります。 ユニオンクエリは ...
追加クエリの追加先テーブルを変更
追加クエリを作成した後で、追加先テーブルを変更する場合は、クエリプロパティから変更することができます。
例えば、追加先テーブル[T_A2010]をテーブル[T_C2010]へ変更する場合の方法です。
作成済みの[追加クエリ]をデザインビューで開きます。
参考[追加]ダイアログボックスを表示して、追加先テーブルを変更しても同じです。クエリプロパティの情報も連携して変更されます。
クエリプロパティの表示
キーボードから[F4]キーを押すなどして、プロパティシートを表示します。
そして、クエリの何もない箇所でダブルクリックします。
そうすると、クエリプロパティが表示されます。プロパティシートの[選択の種類]が[クエリプロパティ]になっていることを確認します。
クエリプロパティの[追加新規テーブル]で変更
クエリプロパティの[追加新規テーブル]は以下のようになっています。
▼ボタンをクリックします。
そして、テーブル[T_C2010]を選択します。
追加クエリを保存します。
保存した追加クエリを実行すると、以下のメッセージウィンドウが表示されます。
追加クエリを実行すると、テーブルのデータが変更されます。
[はい]をクリックします。
今度は以下のメッセージが表示されますので、[はい]をクリックします。
テーブル[T_C2010]を開くと、テーブル[T_B2010]の40件のレコードが追加されています。
参考アクションクエリ実行時の確認メッセージは、非表示にすることができます。
-
アクションクエリ実行時の確認メッセージを非表示にする
Accesでアクションクエリを実行すると、既定では確認メッセージが表示されます。 このメッセージを非表示にする方法です。 以下の画像は、追加 ...
追加クエリ実行時のエラー
追加クエリを実行すると、時々、以下の[追加クエリですべてのレコードを追加できません。]というメッセージが表示されることがあります。(画像はAccess2019)
追加クエリですべてのレコードを追加できません。
型変換エラーのため、0個のフィールドをNullに設定しました。0件のレコードでキー違反、0件のレコードでロック違反、1件のレコードで入力規則違反が発生したため、レコードを追加できませんでした。
上記メッセージの[ヘルプ]ボタンをクリックすると、Microsoftの以下のページが表示されると思います。
追加クエリを実行するときによくあるエラー - Access(Microsoft)
私が経験した時のエラーは、追加元のテーブルでは[空文字列の許可]が[はい]になっていたのに、追加先テーブルでは[空文字列の許可]が[いいえ]になっていたのが原因でした。(画像はAccess2019で、あくまでサンプルです。実際のものではありません。)
エラーメッセージが表示されたら、追加先と追加元のテーブルをデザインビューで開いて、フィールドプロパティで異なる箇所がないか確認してみてください。
[データ型]も要チェックです。
参考プロパティの[空文字列の許可]と[値要求]の設定は重要です。以下の記事でも記しています。
-
空白データ(Null値)があっても合計値を求めたい時はNz関数
Accessのクエリで演算フィールドに式を入力しても値を求められないことがあります。 Excelなら空白セルがあっても計算してくれるので、「 ...
-
フィルターの空白を含む複数選択で抽出数が異なる
Access2007からの新機能だと思うですが、テーブルやデータシートビューでフィルターが使用できます。 Excelのフィルターと同じように ...
関連2つのテーブルの差分を追加する追加クエリについては、以下の記事で解説しています。
-
レコードの差分をテーブルに追加(追加クエリの作成)
Accessで2つのテーブルの不一致レコードを抽出した後、その差分レコードをテーブルへ追加する方法です。 参考ここでは[ドキュメントウィンド ...
以下は、アクションクエリについての関連記事です。
-
レコード削除時の確認メッセージを非表示にする
Accessでレコードを削除しようとすると、毎回、確認メッセージが表示されます。 ○件のレコードを削除します。 [はい]をクリックすると、削 ...
-
追加クエリを使った変更履歴テーブルの作成
追加クエリを使用して、テーブルに変更履歴を残す方法です。 履歴テーブルを作成して、単票フォームの更新日のテキストボックスに更新日を取得するマ ...
-
グループ化で重複レコードを削除したテーブルを作成
Accessで、1つのテーブルで重複したレコードを削除してマスターテーブルを作成する方法です。 クエリでグループ化を設定して重複レコードがな ...
以下の記事ではアクションクエリについてまとめています。
-
削除クエリの作成(すべてのレコード/条件を指定したレコード)
Accessでテーブルのすべてのレコードを削除するには、すべてのレコードを選択して削除する方法もありますが、削除クエリを作成して簡単に削除す ...
オートナンバーの振り直しでも追加クエリを使って解説しています。
-
追加クエリを使ったオートナンバー型フィールドの番号の振り直し
オートナンバー型のあるテーブルでレコードを削除すると、欠番が出てしまいます。 Accessにとっては問題はなくても、見た目としては1から綺麗 ...