Access 2010

追加クエリの作成方法(抽出条件・特定の値の追加・エラー対処)

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

Accessであるテーブルのレコードを別のテーブルへ追加する[追加クエリ]の作成方法を、画像付きで分かりやすく解説します。

3つのテーブルがあり、いずれも同じフィールド構成です。

ここでは例として、テーブル[T_B2010]のすべてのレコードをテーブル[T_A2010]に追加します。

テーブルの確認

3つのテーブルはいずれも同じデザインで、次のようになっています。

[ID]フィールドは[オートナンバー型]で、主キーとして設定しています。

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

Accessテーブルの[主キー]の設定方法とメリット

Accessのテーブルでは、[主キー](シュキー)を設定することができます。[主キー]とは、各レコードを固有のものとして識別するフィールドの ...

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

[タブ付きドキュメント]と[重ねて表示]の違いと切り替え方法

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

追加クエリとは何か

追加クエリとは、あるテーブルのレコードを別のテーブルへ追加するためのアクションクエリです。

既存データをまとめたいときや、年度ごとのテーブルを統合したいときなどに便利です。

追加クエリを実行すると、抽出したレコードが追加先テーブルに新規レコードとして書き込まれます。

元のテーブルのデータは変更されません。

この記事では、[T_B2010 のすべてのレコードを T_A2010 に追加する]という例を使って、追加クエリの作成手順を分かりやすく解説します。

クエリデザインの表示

[作成]タブから[クエリデザイン]をクリックします。

[テーブルの表示]から[T_B2010]を選択して、[追加]ボタンをクリックします。

クエリデザイン

テーブル[T_B2010]を追加したら、すべてのフィールドをデザイングリッドへ追加します。

テーブルのタイトル部分([T_B2010]など)をダブルクリックすると、すべてのフィールドが選択されるので、そのままデザイングリッドの左列へドラッグすると、全フィールドを一度にデザイングリッドへ追加できます。

フィールドを1つずつドラッグして追加することもできます。どちらでもかまいません。

デザイングリッドにフィールドを追加

参考バージョンによって異なると思いますが、[作成]タブの[クエリデザイン]をクリックすると、Microsoft 365のAccessとAccess 2021以降では[テーブルの追加]作業ウィンドウとして表示されます。

クエリデザインの「テーブルの追加」は作業ウィンドウに表示される

追加クエリの作成手順

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

[追加]ダイアログボックスのテーブル名の▼ボタンをクリックします。

[デザイン]タブの[追加]ボタン

追加先テーブルを▼ボタンをクリックして、選択します。ここでは、[T_A2010]を選択します。

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

[追加]ダイアログボックス

クエリのデザイングリッドに、[レコードの追加]行が挿入されます。

追加クエリの[レコードの追加]行

オートナンバー型のフィールドがある場合の注意点

同じフィールドの場合は、自動的にフィールドが追加されますが、ここでは、追加先テーブルの[ID]が[オートナンバー型](主キー)なので削除します。

注意[オートナンバー型]の場合は、必ず削除してください。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でアクションクエリを実行すると、既定では確認メッセージが表示されます。 このメッセージを非表示にする方法です。 以下の画像は、追加 ...

追加クエリ実行時のエラー対処

追加クエリを実行すると、時々、以下の[追加クエリですべてのレコードを追加できません。]というメッセージが表示されることがあります。(画像はAccess 2019)

追加クエリですべてのレコードを追加できません。

型変換エラーのため、0個のフィールドをNullに設定しました。0件のレコードでキー違反、0件のレコードでロック違反、1件のレコードで入力規則違反が発生したため、レコードを追加できませんでした。

[追加クエリですべてのレコードを追加できません。]のメッセージ

上記メッセージの[ヘルプ]ボタンをクリックすると、Microsoftの以下のページが表示されると思います。

追加クエリを実行するときによくあるエラー - Access(Microsoft)

私が経験した時のエラーは、追加元のテーブルでは[空文字列の許可]が[はい]になっていたのに、追加先テーブルでは[空文字列の許可]が[いいえ]になっていたのが原因でした。(画像はAccess 2019で、あくまでサンプルです。実際のものではありません。)

エラーが出た場合は、追加元と追加先のフィールドプロパティ(空文字列の許可・値要求など)に相違がないか確認してください。

データ型]も要チェックです。

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

参考プロパティの[空文字列の許可]と[値要求]の設定は重要です。以下の記事でも記しています。

空白データ(Null値)があっても合計値を求めたい時はNz関数

Accessのクエリで演算フィールドに式を入力しても値を求められないことがあります。 Excelなら空白セルがあっても計算してくれるので、「 ...

フィルターの空白を含む複数選択で抽出数が異なる

Access2007からの新機能だと思うですが、テーブルやデータシートビューでフィルターが使用できます。 Excelのフィルターと同じように ...

関連2つのテーブルの差分を追加する追加クエリについては、以下の記事で解説しています。

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

Accessで2つのテーブルを比較して差分レコードを抽出し、その結果を追加クエリを使ってテーブルBへ取り込む手順を解説します。 不一致クエリ ...

以下は、アクションクエリについての関連記事です。

レコード削除時の確認メッセージを非表示にする

Accessでレコードを削除しようとすると、毎回、確認メッセージが表示されます。 ○件のレコードを削除します。 [はい]をクリックすると、削 ...

追加クエリを使った変更履歴テーブルの作成

追加クエリを使用して、テーブルに変更履歴を残す方法です。 履歴テーブルを作成して、単票フォームの更新日のテキストボックスに更新日を取得するマ ...

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

Accessで、1つのテーブルで重複したレコードを削除してマスターテーブルを作成する方法です。 クエリでグループ化を設定して重複レコードがな ...

以下の記事ではアクションクエリについてまとめています。

削除クエリの作成(すべてのレコード/条件を指定したレコード)

Accessでテーブルのすべてのレコードを削除するには、すべてのレコードを選択して削除する方法もありますが、削除クエリを作成して簡単に削除す ...

オートナンバーの振り直しでも追加クエリを使って解説しています。

追加クエリでオートナンバー型フィールドの番号を振り直す

オートナンバー型のあるテーブルでレコードを削除すると、欠番が出てしまいます。 Accessとしては欠番があっても問題ありませんが、見た目を1 ...

オートナンバー型でも[1001]などの任意の番号から開始したい場合も追加クエリを使用します。

オートナンバー型を任意の番号(1001など)から開始する方法

テーブルにオートナンバー型のフィールドがある場合、通常は1から自動的に番号が振られます。 しかし、以前のデータの続きとして使用する場合や、会 ...

  • この記事を書いた人
  • 最新記事

hama

Microsoft MVP(公式プロフィール)/Office講師/デジタル推進委員
パソコン教室での実体験をもとに、誰でもわかるOfficeの使い方を発信しています。
プロフィールの詳細

-Access 2010 

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