追加クエリを使用してテーブルにレコードを追加する
適用先
この記事では、追加クエリを作成し、実行する方法について説明します。 他のソースのデータを使用して、既存のテーブルに新しいレコードを追加する必要がある場合に追加クエリを使用します。
フィールドの値を更新するなど、既存のレコード セットのデータを変更する必要がある場合は、更新クエリを使用できます。 選択したデータから新しいテーブルを作成する必要がある場合、または 2 つのテーブルを結合して 1 つの新しいテーブルにする必要がある場合は、テーブル作成クエリを使用できます。 更新クエリやテーブル作成クエリの詳細、またはレコードをデータベースに追加する他の方法や既存のデータを変更する方法の全般的な情報については、「関連項目」セクションを参照してください。
この記事の内容
概要
追加クエリでは、1 つまたは複数のデータ ソースからレコードが選択され、その選択されたレコードが既存のテーブルにコピーされます。
たとえば、新しい潜在顧客のテーブルを含むデータベースを入手し、既存のデータベースにその種類のデータが保存されているテーブルがあるとします。 1 つの場所にデータを保存したいので、新しいデータベースから既存のデータベースにデータをコピーすることにしました。 このような場合、新しいデータを手動で入力せずに、追加クエリを使用してレコードをコピーすることができます。
追加クエリを使用する利点
クエリを使用してデータをコピーする場合に可能なこと:
- 1 つのパスに複数のレコードを追加 するデータを手動でコピーする場合は、通常、複数のコピー/貼り付け操作を実行する必要があります。 クエリを使用して、すべてのデータを一度に選択し、コピーします。
- コピーする前に選択内容を確認する データシート ビューで選択内容を表示し、必要に応じて選択内容を調整してからデータをコピーできます。 これは、クエリに条件または式が含まれており、それを適切に取得するためにいくつかの試行が必要な場合に特に便利です。 追加クエリは元に戻せません。 間違った場合は、データベースをバックアップから復元するか、手動または削除クエリを使用してエラーを修正する必要があります。
- 抽出条件を使用して選択範囲を絞り込む: たとえば、あなたと同じ都市に住んでいる顧客のレコードだけを追加したい場合などが考えられます。
- データ ソースの一部のフィールドが変換先テーブルに存在しない場合にレコードを追加する たとえば、既存の顧客テーブルに 11 個のフィールドがあり、コピー元の新しいテーブルには 11 個のフィールドのうち 9 つだけがあるとします。 追加クエリを使用して、一致する 9 つのフィールドのデータをコピーし、他の 2 つのフィールドを空白のままにすることができます。
追加クエリの基本的な手順
追加クエリを作成するプロセスは、次の基本的な手順に従います。
- 選択クエリを作成する まず、コピーするデータを選択します。 必要に応じて選択クエリを調整し、必要な回数実行して、コピーするデータを選択します。
- 選択クエリを追加クエリに変換する 選択の準備が完了したら、クエリの種類を [追加] に変更します。
- 追加クエリの各列の宛先フィールドを選択する 場合によっては、Access によって自動的に宛先フィールドが選択されます。 自動的に実行されない場合は、追加先フィールドを調整するか、選択することができます。
- レコードを追加するクエリをプレビューして実行する レコードを追加する前に、データシート ビューに切り替えて、追加されたレコードをプレビューすることができます。
重要
追加クエリは元に戻せません。 データベースや追加先テーブルをバックアップすることを検討してください。
追加クエリを作成して実行する
このセクションの内容
手順 1: コピーの必要なレコードを選択するクエリを作成する
コピーするレコードが含まれるデータベースを開きます。
[作成] タブの [クエリ] グループで [クエリ デザイン] をクリックします。
コピーするレコードが含まれるテーブルまたはクエリをダブルクリックし、[閉じる] をクリックします。
クエリ デザイナーにテーブルまたはクエリが 1 つ以上のウィンドウとして表示されます。 各ウィンドウには、テーブルまたはクエリ内のフィールドが一覧表示されます。 次の図は、クエリ デザイナーに表示された標準的なテーブルです。
クエリ デザイナーに表示される Assets テーブル
クエリのデザイン グリッド追加するフィールドごとにダブルクリックします。 選択したフィールドが、クエリ デザイン グリッドの [フィールド] 行に表示されます。
ソース テーブルのフィールドのデータ型が、追加先テーブルのフィールドのデータ型と互換性がある必要があります。 テキスト フィールドは、他のほとんどの種類のフィールドと互換性があります。 数値フィールドは、他の数値フィールドとのみ互換性があります。 たとえば、テキスト フィールドに数値を追加できますが、数値フィールドにはテキストを追加できません。
また、フィールドとして式 ( =Date() など) を使用して今日の日付を自動的に返すこともできます。また、デザイン グリッド内のテーブルまたはクエリ フィールドを含む式を使用して、選択したデータをカスタマイズすることもできます。 たとえば、変換先テーブルに 4 桁の年を格納するフィールドがあり、ソース テーブルに標準の日付/時刻フィールドがある場合は、 DatePart 関数とソース フィールドを使用して年のみを選択できます。
テーブルのすべてのフィールドをすばやく追加するには、テーブル フィールドの一覧の一番上にあるアスタリスク (*) をダブルクリックします。 次の図に、すべてのフィールドが追加されたデザイン グリッドを示します。
必要に応じて 1 つ以上の抽出条件をデザイン グリッドの [条件] 行に入力することもできます。 次の表に抽出条件の例を紹介し、それがクエリに与える効果を説明します。
[ クエリ デザイン ] タブの [ 結果 ] グループで、[ 実行
] をクリックします。コピーするレコードがクエリから返されたことを確認します。 クエリからフィールドを追加または削除する必要がある場合は、デザイン ビューに戻って前述の手順に従ってフィールドを追加するか、不要なフィールドを選び、 Delete キーを押してクエリから削除します。
手順 2: 選択クエリを追加クエリに変換する
[ホーム] タブの [表示] グループで [表示] をクリックし、[デザイン ビュー] をクリックします。
[ クエリ デザイン ] タブの [ クエリの種類 ] グループで、[ 追加] をクリックします。
[追加] ダイアログ ボックスが表示されます。
次に、カレント データベースのテーブルにレコードを追加するのか、他のデータベースのテーブルにレコードを追加するのかを指定します。
次のいずれかの操作を行います。- [追加] ダイアログ ボックスで [カレント データベース] をクリックし、[テーブル名] ボックスの一覧から追加先テーブルを選んで、[OK] をクリックします。
または - [追加] ダイアログ ボックスで [別のデータベース] をクリックします。
- [ファイル名] ボックスに追加先データベースの場所とファイル名を入力します。
- [テーブル名] コンボ ボックスに、追加先テーブルの名前を入力し、[OK] をクリックします。
- [追加] ダイアログ ボックスで [カレント データベース] をクリックし、[テーブル名] ボックスの一覧から追加先テーブルを選んで、[OK] をクリックします。
追加クエリを作成するための SQL 構文の詳細については、「INSERT INTO ステートメント」を参照してください。
手順 3: 追加先フィールドを選ぶ
追加先フィールドがどのように選択されるかは、手順 1 での選択クエリの作成方法によって決まります。
| 選択クエリの作成方法 | Access の動作 |
|---|---|
| 追加元のテーブルまたはクエリからすべてのフィールドを追加 | 追加先テーブルのすべてのフィールドがデザイン グリッドの [追加先] 行に追加されます。 |
| 個々のフィールドをクエリに追加するか式を使用して、追加元テーブルと追加先テーブルで一致するフィールド名を検索 | 一致する追加先フィールドがクエリの [追加先] 行に自動的に追加されます。 |
| 個々のフィールドを追加するか式を使用して、追加元テーブルと追加先テーブルで一致しないフィールド名を検索 | 一致するフィールドが追加され、一致しないフィールドは空白になります。 |
フィールドが空白になっている場合は、[追加先] 行のセルをクリックして、追加先フィールドを選べます。
次の図は、[追加先] 行のセルをクリックして追加先フィールドを選ぶ方法を示しています。
注
追加先フィールドを空白のままにすると、クエリではそのフィールドにデータが追加されません。
手順 4: 追加クエリをプレビューして実行する
データシート ビューに切り替えて、変更をプレビューします。
ヒント
ビューをすばやく切り替えるには、クエリの上部にあるタブを右クリックし、目的のビューをクリックします。
[デザイン] ビューに戻り、[ ファイル名を指定して実行
クリックしてレコードを追加します。注
大量のデータを返すクエリを実行していると、クエリを元に戻すことはできないことを伝えるエラー メッセージが表示される場合があります。 メモリ セグメントの制限を 3 MB に拡張し、クエリが問題なく実行されるように試してみてください。
無効モードでクエリがブロックされないようにする
追加クエリを実行しようとしたのに、何も実行されていないように思われる場合は、Access ステータス バーに次のメッセージが表示されていないか確認してください。
無効モードのため、アクションまたはイベントはブロックされました。
この状態を解消するには、メッセージ バーの [コンテンツの有効化] をクリックしてクエリを有効にします。
注
追加クエリを有効にする場合は、他のデータベースのコンテンツもすべて有効にします。
メッセージ バーが表示されない場合は、非表示にしている可能性があります。 メッセージ バーが無効にされていなければ、表示することができます。 メッセージ バーが無効な場合は、有効にすることができます。