Access追加クエリの作り方をお探しですね。
広告
Accessで別のテーブルにデータをまとめて入れたいとき、どうしてますか?
1件ずつコピーして貼り付けていると、時間がかかるだけじゃなくて、入力ミスや貼り付け漏れも起こりやすくなっちゃいますよね。
そんなときに便利なのが「追加クエリ」です。
追加クエリを使えば、元のテーブルや選択クエリで抽出したデータを、既存の別テーブルへ一気に入れることができます。
この記事では、Access追加クエリの作り方と、実行前にチェックしておきたい注意点、うまく追加できないときの見直しポイントまで、初心者の方にも分かりやすく解説していきます。
1. Access追加クエリって何?別テーブルへ一気に入れられる便利な機能
Accessの追加クエリとは、あるテーブルやクエリのレコード(データの行)を、すでに存在している別のテーブルへ追加するためのクエリです。
普通の選択クエリは条件に合うデータを表示するだけですが、追加クエリは実際にテーブルへレコードを書き込む「アクションクエリ」という種類に分類されます。
たとえば、こんな場面で使います。
– 一時的に取り込んだ売上データを、本番の売上テーブルへ追加する
– Excelからインポートした顧客候補データを、顧客マスタへ登録する
手作業で何行もコピーするよりずっと効率的ですし、条件を指定すれば必要なデータだけを追加できるのが大きなメリットです。
追加クエリを理解するうえで大事なのは、「新しいテーブルを作る機能ではない」という点です。
選択したデータから新しくテーブルを作りたい場合は「テーブル作成クエリ」、既存レコードの値を書き換えたい場合は「更新クエリ」を使います。
一方、追加クエリは追加先テーブルの構造をそのまま使って、そこへ新しい行を増やす処理なんです。
なので、追加先テーブルにはあらかじめ必要な項目(フィールド)が用意されている必要があります。
また、追加先に主キーや重複不可の設定がある場合、同じ値を持つレコードは追加時にエラーになることがあります。
追加クエリは便利ですが、実行後に「元に戻す」ボタンで簡単に取り消せる処理ではありません。
間違えて大量のデータを追加しちゃうと、手作業で削除したり、削除クエリを作ったり、バックアップから復元したりする必要が出てきます。
だから、追加クエリを作るときは、いきなり実行するんじゃなくて、まず選択クエリとして追加対象データを確認することがとっても大切です。
Accessでは、選択クエリを作成してから追加クエリへ変換する流れが基本なので、この順番を守るだけでもミスをかなり減らせますよ。
2. Access追加クエリの作り方!選択クエリから追加クエリへ変換する手順
Access追加クエリの作り方は、最初から追加クエリを作るというより、「追加したいデータを表示する選択クエリを作って、それを追加クエリに変換する」と考えると分かりやすくなります。
まずAccessでデータベースを開いて、リボンの「作成」タブから「クエリ デザイン」を選びます。
表示された画面で追加元となるテーブル、または事前に作ったクエリを追加して、追加したい項目をデザイングリッドへ配置します。
この時点では、まだデータを表示するだけの選択クエリです。
必要に応じて抽出条件を設定して、追加対象が正しく絞り込まれているか確認しましょう。
基本的な操作手順は次の流れです。
画面名はAccessのバージョンによって少し違う場合がありますが、考え方は同じです。
1. 「作成」タブから「クエリ デザイン」を開く
2. 追加元のテーブルまたはクエリを選ぶ
3. 追加したい項目をデザイングリッドへ配置する
4. 必要に応じて抽出条件を設定し、データシートビューで確認する
5. デザインビューに戻って、「クエリの種類」から「追加」を選ぶ
6. 追加先テーブルを指定して、「追加先」行で対応する項目を確認する
7. 保存してから実行し、追加先テーブルで結果を確認する
追加クエリに変換すると、「追加」ダイアログが表示されます。
ここで、今開いているデータベース内のテーブルへ追加する場合は「カレント データベース」を選んで、追加先テーブル名を指定します。
別のAccessファイルにあるテーブルへ追加したい場合は「別のデータベース」を選んで、ファイル名とテーブル名を指定します。
追加先を決めると、デザイングリッドに「追加先」または「レコードの追加」といった行が表示されて、追加元の項目の値を追加先のどの項目へ入れるか設定できるようになります。
項目名が追加元と追加先で同じ場合、Accessが自動で対応付けてくれることがあります。
ただし、名前が少しでも違う場合や、式を使って値を作っている場合は、自動設定されず空欄のままになることがあります。
空欄の項目は追加されないので、実行前に必ず「追加先」行を確認してください。
たとえば追加元が「顧客名」、追加先が「氏名」という名前になっている場合、手動で「氏名」を選ぶ必要があります。
ここを確認しないまま実行すると、追加したつもりのデータが一部欠けちゃう原因になります。
3. 実行前にチェックしたい項目の対応・データ型・抽出条件のポイント
追加クエリで失敗しやすい原因のひとつが、追加元の項目と追加先の項目のデータ型が合っていないことです。
Accessのテーブルでは、項目ごとに「短いテキスト」「数値型」「日付/時刻型」「通貨型」などのデータ型が設定されています。
たとえば、数値型の項目へ文字列を追加しようとするとエラーになりますし、日付として認識できない文字を日付/時刻型の項目へ入れようとしても問題が起きます。
郵便番号や商品コードのように見た目は数字でも計算しない値は、数値型じゃなくてテキスト型で管理されていることも多いので、追加先テーブルの設計を事前に確認しておくことが大事です。
また、追加先テーブルに必須入力の項目がある場合、そこへ値が入らないと追加できません。
追加元に該当する項目がない場合は、固定値や式を使って値を補う方法があります。
たとえば、登録日の項目に今日の日付を入れたい場合は、デザイングリッドの項目欄に「登録日: Date()」のような式を使うことで、実行日の日付を追加できます。
年度だけを取り出したい場合はDatePart関数を使うなど、Accessの式を組み合わせれば、追加元テーブルに存在しない値を作って追加先へ入れることもできるんです。
抽出条件の設定も、追加クエリを安全に使うための大事なポイントです。
追加元テーブルの全レコードをそのまま追加することもできますが、実際の仕事では「まだ取り込んでないデータだけ」「特定の日付以降の売上だけ」「特定の支店のデータだけ」といった条件を付けることが多くあります。
条件を指定する場合は、追加クエリに変換する前の選択クエリの段階で、データシートビューを開いて対象レコードを確認しましょう。
表示された件数や内容が想定と違う場合は、実行せずに条件を見直してください。
よく使う抽出条件には、日付範囲や空白判定、部分一致検索などがあります。
– 日付範囲:「Between #2026/1/1# And #2026/1/31#」と指定すれば、2026年1月中のデータを対象にできます
– 空白判定:「Is Null」は値が未入力のレコードを抽出、「Is Not Null」は値が入っているレコードを抽出
– 部分一致:文字列を含むデータを探す場合は「Like “*東京*”」のように指定
ただし、Accessのワイルドカードはデータベース設定によって使い方が変わる場合があるので、条件を入れたら必ずプレビューで確認する習慣を付けると安心です。
4. 追加クエリ実行時の注意点と、うまく追加できないときの対処法
追加クエリを実行する前には、できるだけデータベースのバックアップを取っておきましょう。
追加クエリは大量のレコードを一度に追加できる反面、間違った条件や項目の対応のまま実行すると、そのミスも一気に反映されちゃいます。
特に本番データへ追加する場合は、こんな対策が有効です。
– コピーしたデータベースでテスト実行する
– 追加先テーブルをバックアップ用に複製しておく
– 追加前後のレコード件数を控えておく
実行時には「○件のレコードを追加します」といった確認メッセージが表示されるので、その件数が想定と大きく違う場合はキャンセルして原因を調べましょう。
追加クエリが実行できない場合、まず確認したいのがAccessのセキュリティ設定です。
信頼されていない場所にあるデータベースを開くと、画面上部やステータスバーに「無効モードのため、アクションまたはイベントはブロックされました」といった内容が表示されて、アクションクエリが実行されないことがあります。
この場合は、信頼できるファイルであることを確認したうえで「コンテンツの有効化」を行います。
ただし、よく分からない入手元のデータベースでアクションクエリを有効化するのは危険です。
業務用ファイルでも、作成者や内容を確認してから操作するようにしてください。
追加できない原因としては、主キーの重複や入力規則違反もよくあります。
たとえば追加先テーブルの主キーに同じIDがすでに存在している場合、そのレコードは追加できません。
また、項目に「0以上」「空白不可」「指定したリスト内の値のみ」などの入力規則が設定されていると、条件を満たさないデータはエラーになります。
エラーが発生した場合は、追加元データを選択クエリで表示して、問題のある項目を確認します。
必要に応じて、重複を除外する条件を追加したり、Null値を固定値に置き換えたりしてから再実行しましょう。
追加クエリを継続的に使う場合は、クエリ名を分かりやすく保存しておくと管理しやすくなります。
たとえば「Q_売上追加_一時取込から本番へ」のように、追加元と追加先が分かる名前にしておくと、後から見たときに処理内容を判断しやすくなります。
さらに、定期的に同じ処理を行うなら、フォームのボタンから追加クエリを実行する、マクロやVBAのDoCmd.OpenQueryで呼び出すといった自動化にもつなげられます。
複雑な条件分岐が必要な場合はVBAやADOを検討することもありますが、単純な一括追加であれば、画面操作で作成できる追加クエリが扱いやすくて、メンテナンスもしやすい方法です。
まとめ
Access追加クエリは、別のテーブルにデータを一括で入れるための実用的な機能です。
作成の基本は、追加対象を選択クエリで確認して、追加クエリに変換して、追加先の項目を正しく対応付けてから実行することです。
データ型、必須項目、主キー、抽出条件、セキュリティ設定をチェックしておけば、多くのトラブルは防げます。
大量データを扱う仕事ほど、手作業じゃなくて追加クエリを活用することで、作業時間を短縮しながらミスの少ないデータ登録ができるようになりますよ。
広告
