Accessの追加クエリとは?作成手順と使い方をわかりやすく解説

Accessで「別のテーブルのデータをまとめて追加したい」「毎月の新規データを本番テーブルに取り込みたい」と思ったことはありませんか?
そんなときに使うのが追加クエリです。
この記事では、追加クエリの基本的な仕組みから作成手順、実行時の注意点まで順を追って解説します。


スポンサーリンク

追加クエリとは

追加クエリとは、あるテーブル(または別のクエリ)からレコードを取り出し、既存のテーブルに一括で追加するためのクエリです。

Microsoftの公式サポートでは次のように説明されています(追加クエリを使用してテーブルにレコードを追加するより)。

追加クエリでは、1つまたは複数のデータソースからレコードが選択され、その選択されたレコードが既存のテーブルにコピーされます。

SQLで言えば INSERT INTO ... SELECT ... に相当する機能で、複数レコードを条件付きで一括追加できます。


追加クエリを使う場面

追加クエリは次のような場面で活躍します。

  • データの集約: 支店ごとに入力した売上データを、本部の一元管理テーブルに取り込む
  • 履歴の蓄積: 月次・年次データを履歴テーブルに積み重ねていく
  • ワークテーブルの本番移行: 入力・確認用の一時テーブルから、本番テーブルへデータを移す
  • マスタの一括登録: Excelからインポートしたデータをマスタテーブルに追加する
  • オートナンバーの欠番修正: レコード削除で生じた欠番を整理する際にも使われる

追加クエリとその他のアクションクエリの違い

Accessには「アクションクエリ」と呼ばれる、データを変更・操作するクエリが4種類あります。

クエリの種類主な用途
追加クエリ別のテーブルから既存テーブルにレコードを追加する
更新クエリ既存レコードのフィールド値を変更する
削除クエリ条件に合うレコードを削除する
テーブル作成クエリクエリの結果から新しいテーブルを作成する

「既存テーブルにレコードを追加(新規行として)したい」場合は追加クエリ、「既存レコードの値を書き換えたい」場合は更新クエリを使います。


追加クエリの作成手順(デザインビュー)

Access 2016 / 2019 / 2021 / Microsoft 365で共通の手順を解説します。

ステップ1:選択クエリを作成する

  1. リボンの 「作成」タブ「クエリデザイン」 をクリックします。
  2. 「テーブルの追加」 ダイアログから、追加するデータが入っているテーブル(追加元)を選択し、「追加」 をクリックします。
  3. 追加したいフィールドをデザイングリッドの 「フィールド」行 にドラッグ&ドロップします(または対象フィールドをダブルクリック)。
  4. 必要に応じて 「抽出条件」行 に条件を指定します(例:>=2024/01/01 で特定期間のデータのみを対象にする)。

ポイント: この時点ではまだ「選択クエリ」の状態です。まずデータシートビューに切り替えて、追加されるレコードが正しいかプレビュー確認しておきましょう。

ステップ2:追加クエリに切り替える

  1. リボンの 「デザイン」タブ「クエリの種類」 グループ → 「追加」 をクリックします。
  2. 「追加」ダイアログ が表示されます。「テーブル名」欄で追加先のテーブルを選択します。
  3. 同一データベース内であれば 「カレントデータベース」 を選択して 「OK」 をクリックします。

クエリデザイン画面に 「レコードの追加」行 が追加されます。この行が「追加元フィールド → 追加先フィールド」の対応を設定する行です。

ステップ3:フィールドの対応を確認・設定する

  • フィールド名が同じ場合: Accessが自動でフィールドを対応付けてくれます。
  • フィールド名が異なる場合: 「レコードの追加」行の各セルをクリックし、ドロップダウンリストから追加先のフィールドを手動で選択します。

注意: 追加先フィールドを空白のままにすると、そのフィールドにはデータが追加されません。意図しないNull値を作らないよう確認してください。

ステップ4:クエリを保存して実行する

  1. リボンの 「デザイン」タブ「実行」 ボタン(赤い「!」アイコン)をクリックします。
  • ※「表示」ボタンと間違えやすいので注意してください。
  1. 「〇件のレコードを追加します」という確認ダイアログが表示されます。
  2. 内容を確認して 「はい」 をクリックすると、追加先テーブルにレコードが書き込まれます。

追加クエリの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点を特に注意して運用しましょう。


参考情報源:

コメント

タイトルとURLをコピーしました