Accessで「別のテーブルのデータをまとめて追加したい」「毎月の新規データを本番テーブルに取り込みたい」と思ったことはありませんか?
そんなときに使うのが追加クエリです。
この記事では、追加クエリの基本的な仕組みから作成手順、実行時の注意点まで順を追って解説します。
追加クエリとは
追加クエリとは、あるテーブル(または別のクエリ)からレコードを取り出し、既存のテーブルに一括で追加するためのクエリです。
Microsoftの公式サポートでは次のように説明されています(追加クエリを使用してテーブルにレコードを追加するより)。
追加クエリでは、1つまたは複数のデータソースからレコードが選択され、その選択されたレコードが既存のテーブルにコピーされます。
SQLで言えば INSERT INTO ... SELECT ... に相当する機能で、複数レコードを条件付きで一括追加できます。
追加クエリを使う場面
追加クエリは次のような場面で活躍します。
- データの集約: 支店ごとに入力した売上データを、本部の一元管理テーブルに取り込む
- 履歴の蓄積: 月次・年次データを履歴テーブルに積み重ねていく
- ワークテーブルの本番移行: 入力・確認用の一時テーブルから、本番テーブルへデータを移す
- マスタの一括登録: Excelからインポートしたデータをマスタテーブルに追加する
- オートナンバーの欠番修正: レコード削除で生じた欠番を整理する際にも使われる
追加クエリとその他のアクションクエリの違い
Accessには「アクションクエリ」と呼ばれる、データを変更・操作するクエリが4種類あります。
| クエリの種類 | 主な用途 |
|---|---|
| 追加クエリ | 別のテーブルから既存テーブルにレコードを追加する |
| 更新クエリ | 既存レコードのフィールド値を変更する |
| 削除クエリ | 条件に合うレコードを削除する |
| テーブル作成クエリ | クエリの結果から新しいテーブルを作成する |
「既存テーブルにレコードを追加(新規行として)したい」場合は追加クエリ、「既存レコードの値を書き換えたい」場合は更新クエリを使います。
追加クエリの作成手順(デザインビュー)
Access 2016 / 2019 / 2021 / Microsoft 365で共通の手順を解説します。
ステップ1:選択クエリを作成する
- リボンの 「作成」タブ → 「クエリデザイン」 をクリックします。
- 「テーブルの追加」 ダイアログから、追加するデータが入っているテーブル(追加元)を選択し、「追加」 をクリックします。
- 追加したいフィールドをデザイングリッドの 「フィールド」行 にドラッグ&ドロップします(または対象フィールドをダブルクリック)。
- 必要に応じて 「抽出条件」行 に条件を指定します(例:
>=2024/01/01で特定期間のデータのみを対象にする)。
ポイント: この時点ではまだ「選択クエリ」の状態です。まずデータシートビューに切り替えて、追加されるレコードが正しいかプレビュー確認しておきましょう。
ステップ2:追加クエリに切り替える
- リボンの 「デザイン」タブ → 「クエリの種類」 グループ → 「追加」 をクリックします。
- 「追加」ダイアログ が表示されます。「テーブル名」欄で追加先のテーブルを選択します。
- 同一データベース内であれば 「カレントデータベース」 を選択して 「OK」 をクリックします。
クエリデザイン画面に 「レコードの追加」行 が追加されます。この行が「追加元フィールド → 追加先フィールド」の対応を設定する行です。
ステップ3:フィールドの対応を確認・設定する
- フィールド名が同じ場合: Accessが自動でフィールドを対応付けてくれます。
- フィールド名が異なる場合: 「レコードの追加」行の各セルをクリックし、ドロップダウンリストから追加先のフィールドを手動で選択します。
注意: 追加先フィールドを空白のままにすると、そのフィールドにはデータが追加されません。意図しないNull値を作らないよう確認してください。
ステップ4:クエリを保存して実行する
- リボンの 「デザイン」タブ → 「実行」 ボタン(赤い「!」アイコン)をクリックします。
- ※「表示」ボタンと間違えやすいので注意してください。
- 「〇件のレコードを追加します」という確認ダイアログが表示されます。
- 内容を確認して 「はい」 をクリックすると、追加先テーブルにレコードが書き込まれます。
追加クエリのSQL文について
追加クエリをSQLビューで確認すると、次のような INSERT INTO ... SELECT 構文になっています。
INSERT INTO 追加先テーブル名 ( フィールド1, フィールド2, フィールド3 )
SELECT 追加元テーブル名.フィールド1, 追加元テーブル名.フィールド2, 追加元テーブル名.フィールド3
FROM 追加元テーブル名
WHERE 抽出条件;
この INSERT INTO SELECT 構文はPostgreSQL・MySQL・SQL Serverでも広く使われている標準的なSQL構文のため、他のデータベースを学ぶ際にも役立つ知識です。
追加クエリ実行時の注意点
追加は元に戻せない
追加クエリはアクションクエリの一種であり、実行後は「元に戻す」(Ctrl+Z)ができません。
実行前に必ず選択クエリのままプレビューし、追加対象のレコードを目視で確認してから実行しましょう。
データ型を必ず一致させる
追加元と追加先のフィールドのデータ型(数値型・テキスト型・日付/時刻型など)が異なると、型変換エラーが発生します。
詳しくは別記事「Accessの追加クエリで「型変換エラー」が出る原因と対処法」で解説しています。
重複追加に注意する
追加クエリを複数回実行すると、同じレコードが重複して追加されてしまいます。
追加先テーブルに主キーや一意インデックスが設定されていない場合は、重複チェックの仕組みを別途用意する必要があります。
セキュリティ警告について
信頼できる場所に保存されていないデータベースを開くと、アクションクエリは既定でブロックされます。
ステータスバーに「無効モードのため、アクションまたはイベントはブロックされました」と表示された場合は、メッセージバーの 「コンテンツの有効化」 をクリックしてから実行してください(Microsoft公式サポートより)。
よくあるエラーと対処法
追加クエリ実行時に「追加クエリですべてのレコードを追加できません」と表示される場合、エラーの種類は以下の4つです。
| エラーの種類 | 主な原因 | 「はい」を押した結果 |
|---|---|---|
| 型変換エラー | データ型の不一致 | 該当フィールドがNullになって追加 |
| キー違反 | 主キーの値が重複している | レコードが追加されない |
| ロック違反 | 別ユーザーがテーブルを開いている | レコードが追加されない |
| 入力規則違反 | 必須フィールドや入力規則に違反 | レコードが追加されない |
型変換エラー以外(キー違反・入力規則違反)は、「はい」を押しても追加されません。必ず「いいえ」で中断し、データやテーブル設計を見直してください。
まとめ
Accessの追加クエリは、別テーブルのデータを既存テーブルに一括追加するための機能です。
作成の流れは「選択クエリで追加対象のレコードを絞り込む → クエリの種類を追加に変更 → 追加先テーブルとフィールドを指定 → 実行」という4ステップです。
実行前には必ずプレビューで確認し、データ型の一致・重複追加・セキュリティ設定の3点を特に注意して運用しましょう。
参考情報源:
- Microsoft サポート「追加クエリを使用してテーブルにレコードを追加する」(Access for Microsoft 365 / Access 2024 / 2021 / 2019 / 2016 対応)
- Microsoft サポート「追加クエリを実行するときによくあるエラー」

コメント