Windows 7 & Office 2010 Access 2010

追加クエリの作成方法(追加先テーブルのフィールドへ特定の値を表示)

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

1つのテーブルに別のテーブルのレコードを追加する方法です。

3個テーブルがあって、各テーブルのフィールド名は同じです。

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

テーブルの確認

以下はテーブルのデザインビューです。3個のテーブルとも同じで以下のようになっています。

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

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

Accessテーブルの[主キー]の設定

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

続きを見る

クエリデザインの表示

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

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

クエリデザイン

テーブル[T_B2010]のすべてのフィールドをデザイングリッドに表示します。

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

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

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

追加クエリの作成

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

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

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

追加先テーブルを指定します。ここでは、[T_A2010]を選択します。

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

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

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

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

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

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

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

続きを見る

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

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

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

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

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

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

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

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

エラーメッセージが表示されたら、追加先と追加元のテーブルをデザインビューで開いて、フィールドプロパティで異なる箇所がないか確認してみてください。

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

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

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

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

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

続きを見る

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

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

続きを見る

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

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

Accessで2つのテーブルの不一致レコードを抽出した後、その差分レコードをテーブルへ追加する方法です。 参考ここでは[ドキュメントウィンド ...

続きを見る

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

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

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

続きを見る

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

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

続きを見る

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

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

続きを見る

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

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

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

続きを見る

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

追加クエリを使ったオートナンバー型フィールドの番号の振り直し

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

続きを見る

検索

ほかの記事も検索してみませんか?

Access / Excel / PowerPoint / Word

Profile

執筆者/はま

-Windows 7 & Office 2010 Access 2010

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

Copyright© 初心者のためのOffice講座 , 2024 AllRights Reserved Powered by AFFINGER4.