概要
| この記事の結論 Accessの追加クエリは、選択したデータを既存テーブルへ新しいレコードとして登録します。 既存行の値を変える更新クエリや、新しい表を作るテーブル作成クエリと区別してください。 |
この記事でわかること
- 追加元と追加先の対応を確認する
- 選択クエリを追加クエリへ変更する
- 既存データと追加元の両方で重複を防ぐ
- 追加エラーは原因別に修正する
この記事の主な内容
- 追加クエリは既存テーブルへ新しい行を登録する
- 追加元と追加先の対応を確認する
- 選択クエリを追加クエリへ変更する
- 既存データと追加元の両方で重複を防ぐ
- 追加エラーは原因別に修正する
- 再取込と取消の手順を残す
- よくある質問
想定読了時間:約8分
1 追加クエリは既存テーブルへ新しい行を登録する
Accessの追加クエリは、選択したデータを既存テーブルへ新しいレコードとして登録します。
既存行の値を変える更新クエリや、新しい表を作るテーブル作成クエリと区別してください。
実行前に追加先をバックアップし、選択クエリで対象を確認します。
追加元の列と追加先の列を明示すると、列順の変更による誤登録を防ぎやすくなります。

2 追加元と追加先の対応を確認する
W_取込からT_受注へ、外部受注番号、受注日、金額を追加する例です。
文字数、数値の範囲、必須項目、主キーと一意制約を確認します。
値が入っていても、追加先の型に変換できるとは限りません。
T_受注の受注IDをオートナンバーで新規採番する場合、通常は追加列から受注IDを除きます。
外部のIDを引き継ぐ場合は、採番ルールと衝突を別に検討します。
設定例と確認点
| 追加元 | 追加先 | 確認点 |
|---|---|---|
| 外部受注番号 | 外部受注番号 | 重複なしの業務キー |
| 受注日 | 受注日 | 日付/時刻 |
| 金額 | 金額 | 型と範囲 |
| 指定しない | 受注ID | 追加先で採番 |

3 選択クエリを追加クエリへ変更する
デザインビューでW_取込から必要な列だけを選び、条件と結果件数を確認します。
クエリの種類を追加へ変更し、追加先テーブルと各フィールドの対応を指定します。

操作手順
1. バックアップと追加前件数を記録します。
2. 選択クエリで追加候補のIDと値を確認します。
3. 追加クエリに変更しT_受注を指定します。
4. 追加先行のフィールド対応を確認します。
5. 予定件数と一致することを確認して実行します。
6. 追加後の件数と保存値を照合します。
サンプルコードと式
INSERT INTO [T_受注] ([外部受注番号], [受注日], [金額])
SELECT [外部受注番号], [受注日], [金額]
FROM [W_取込];

4 既存データと追加元の両方で重複を防ぐ
追加先に存在しない外部受注番号だけを選ぶ方法があります。
ただし追加元のW_取込自体に同じ番号が複数あれば、それも整理が必要です。
Not Existsだけですべての重複問題が解決するわけではありません。
サンプルコードと式
INSERT INTO [T_受注] ([外部受注番号], [受注日], [金額])
SELECT S.[外部受注番号], S.[受注日], S.[金額]
FROM [W_取込] AS S
WHERE NOT EXISTS
(SELECT * FROM [T_受注] AS D
WHERE D.[外部受注番号]=S.[外部受注番号]);

5 追加エラーは原因別に修正する
キー違反は主キー・一意索引、型変換エラーは型や桁、入力規則違反は必須項目や範囲を確認します。
警告が出たら何件追加され、何件失敗したかを確認し、未確認のまま全件を再実行しないでください。
同時取込があり得る場合は、追加前の存在確認だけでは競合を完全に防げません。
業務キーの一意制約など、追加先側の保護も必要です。

既存Accessへの影響を判断できない場合
本記事の手順をコピーしたファイルで試しても解決しない場合や、既存データ・他の画面への影響を判断できない場合は、お気軽にご相談ください。対象ファイル、操作手順、期待する結果を整理すると、調査や改修の範囲を相談しやすくなります。
6 再取込と取消の手順を残す
取込バッチID、元ファイル名、実施日時、追加件数を記録すると、再実行や誤取込の確認に役立ちます。
取込後に別の担当者が修正した行は、単純にバッチ単位で消してよいとは限りません。
本番へ反映する前に、全件成功・一部失敗・再実行・空ファイルのケースを試しましょう。
入力データの検査と登録を分けると、原因を利用者へ伝えやすくなります。

7 よくある質問
上書きしません。既存行の値を変える場合は更新クエリです。
条件や一意制約がなければ二重登録され得ます。取込履歴も管理します。
追加先でオートナンバー採番するなら、通常は追加列から除外します。
まとめ
本番へ反映する前に、全件成功・一部失敗・再実行・空ファイルのケースを試しましょう。
入力データの検査と登録を分けると、原因を利用者へ伝えやすくなります。
本記事の手順をコピーしたファイルで試しても解決しない場合や、既存データ・他の画面への影響を判断できない場合は、お気軽にご相談ください。対象ファイル、操作手順、期待する結果を整理すると、調査や改修の範囲を相談しやすくなります。
Microsoft公式資料を参照しています。サンプルは説明用の架空データです。
Windows版Accessの実機検証は未実施のため、適用前に対象環境のコピーで結果を確認してください。
Microsoft:追加クエリ
https://support.microsoft.com/en-us/access/add-records-to-a-table-by-using-an-append-query
Microsoft:INSERT INTO
https://learn.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/insert-into-statement-microsoft-access-sql