追加クエリを使用してテーブルにレコードを追加する

この記事では、追加クエリを作成し、実行する方法について説明します。他のソースのデータを使用して、既存のテーブルに新しいレコードを追加する必要がある場合に追加クエリを使用します。

フィールドの値を更新するなど、既存のレコード セットのデータを変更する必要がある場合は、更新クエリを使用できます。選択したデータから新しいテーブルを作成する必要がある場合、または 2 つのテーブルを結合して 1 つの新しいテーブルにする必要がある場合は、テーブル作成クエリを使用できます。更新クエリやテーブル作成クエリの詳細、またはレコードをデータベースに追加する他の方法や既存のデータを変更する方法の全般的な情報については、「関連項目」セクションを参照してください。

注: 追加クエリは Access Web アプリでは使用できませんが、Access でデータベースを開くことで、Web データベースでも追加クエリを使用できます。

この記事の内容

概要

追加クエリを作成して実行する

無効モードでクエリがブロックされないようにする

概要

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

たとえば、新しい潜在顧客のテーブルを含むデータベースを入手し、既存のデータベースにその種類のデータが保存されているテーブルがあるとします。1 つの場所にデータを保存したいので、新しいデータベースから既存のデータベースにデータをコピーすることにしました。このような場合、新しいデータを手動で入力せずに、追加クエリを使用してレコードをコピーすることができます。

追加クエリを使用する利点

クエリを使用してデータをコピーする場合に可能なこと:

  • 1 つのパスで複数のレコードを追加する   : データを手動でコピーする場合は、通常、コピー/貼り付けの操作を複数回実行する必要があります。クエリを使用することにより、すべてのデータを一度に選んでコピーできます。

  • コピーする前に、選択範囲を確認する   :  データシート ビューに選択範囲を表示し、データをコピーする前に、必要に応じて選択範囲を調整できます。この機能は、クエリに抽出条件または式が含まれており、正しい答えを得るまでに何回かクエリを試す必要がある場合に特に便利です。追加クエリは、元に戻すことができません。間違いがあった場合は、バックアップからデータベースを復元するか、手動または削除クエリを使用してエラーを修正する必要があります。

  • 抽出条件を使用して選択範囲を絞り込む   : たとえば、あなたと同じ都市に住んでいる顧客のレコードだけを追加したい場合などが考えられます。

  • データ ソース内のフィールドの一部が追加先テーブルに存在しない場合にレコードを追加する   : たとえば、既存の顧客テーブルに 11 個のフィールドがあり、コピー元となる新しいテーブルにはそれらのフィールドのうち 9 個しかない場合などです。追加クエリを使用して、一致する 9 個のフィールドからデータをコピーし、他の 2 つのフィールドを空白のままにすることができます。

追加クエリの基本的な手順

追加クエリを作成するプロセスは、次の基本的な手順に従います。

  • 選択クエリを作成する    まず コピーするデータを選択します。必要に応じて選択クエリを調整し、必要な回数実行して、コピーするデータを選択します。

  • 選択クエリを追加クエリに変換する    選択の準備が完了したら、クエリの種類を [追加] に変更します。

  • 追加クエリで各列の追加先フィールドを選択する    場合によっては、追加先フィールドが自動的に選択されます。自動的に実行されない場合は、追加先フィールドを調整するか、選択することができます。

  • レコードを追加するクエリをプレビューして実行する    レコードを追加する前に、データシート ビューに切り替えて、追加されたレコードをプレビューすることができます。

重要: 追加クエリは元に戻せません。データベースや追加先テーブルをバックアップすることを検討してください。

追加クエリを作成して実行する

このセクションの内容

手順 1: コピーの必要なレコードを選択するクエリを作成する

手順 2: 選択クエリを追加クエリに変換する

手順 3: 追加先フィールドを選ぶ

手順 4: 追加クエリをプレビューして実行する

手順 1: コピーの必要なレコードを選択するクエリを作成する

  1. コピーするレコードが含まれるデータベースを開きます。

  2. [作成] タブの [クエリ] グループで [クエリ デザイン] をクリックします。Access 2007 の場合、[作成]、[その他]、[クエリ デザイン] の順にクリックしてください。

    Access リボンの [クエリ] グループには 2 つのオプションがあります。クエリ ウィザードとクエリ デザイン

    クエリ デザイナーが開き、[テーブルの表示] ダイアログ ボックスが表示されます。

    テーブル名が表示された Access の [テーブルの表示] ダイアログ
  3. コピーするレコードが含まれるテーブルまたはクエリをダブルクリックし、[閉じる] をクリックします。

    クエリ デザイナーにテーブルまたはクエリが 1 つ以上のウィンドウとして表示されます。各ウィンドウには、テーブルまたはクエリ内のフィールドが一覧表示されます。次の図は、クエリ デザイナーに表示された標準的なテーブルです。

    クエリ デザイナー内のテーブル

    1. クエリ デザイナーに表示されたテーブル

    2. クエリ デザイン グリッド

  4. 追加するフィールドごとにダブルクリックします。選択したフィールドが、クエリ デザイン グリッドの [フィールド] 行に表示されます。

    ソース テーブルのフィールドのデータ型が、追加先テーブルのフィールドのデータ型と互換性がある必要があります。テキスト フィールドは、他のほとんどの種類のフィールドと互換性があります。数値フィールドは、他の数値フィールドとのみ互換性があります。たとえば、テキスト フィールドに数値を追加できますが、数値フィールドにはテキストを追加できません。

    また、フィールドとして式を使用することもできます。たとえば、=Date() を使用して、今日の日付を自動的に返すことができます。また、デザイン グリッドでテーブルまたはクエリ フィールドに式を使用して、選択したデータをカスタマイズすることができます。たとえば、追加先テーブルに 4 桁の年が保存されているフィールドがあり、 ソース テーブルに通常の日時フィールドがある場合、 ソース フィールドに DatePart 関数を使用して、年のみを選択することができます。

    テーブルのすべてのフィールドをすばやく追加するには、テーブル フィールドの一覧の一番上にあるアスタリスク (*) をダブルクリックします。次の図に、すべてのフィールドが追加されたデザイン グリッドを示します。

    すべてのテーブル フィールドが追加されたクエリ。

  5. 必要に応じて 1 つ以上の抽出条件をデザイン グリッドの [条件] 行に入力することもできます。次の表に抽出条件の例を紹介し、それがクエリに与える効果を説明します。

条件

効果

> 234

234 より大きいすべての数値を返します。234 より小さいすべて数値を検索するには、<234 を使用します。

>= "Callahan"

アルファベット順に "Callahan" から最後までのレコードをすべて返します。

Between #2/2/2017# And #12/1/2017#

2017 年 2 月 2 日から 2017 年 12 月 1 日までの日付を返します (ANSI-89)。ご利用のデータベースで ANSI-92 のワイルドカード文字が使用されている場合、ナンバー記号の代わりに単一引用符 (') を使用します。例: Between '2/2/2017' And '12/1/2017'

Not "千葉県"

フィールドの内容が "千葉県" と完全に一致しないすべてのレコードを検索します。この抽出条件は、"千葉県" およびそれ以外の文字 ("千葉県 (関東)" や "関東 (千葉県)" など) が含まれるレコードも返します。

Not "タ*"

先頭が "タ" 以外のすべてのレコードを検索します。データベースで ANSI-92 ワイルドカード文字セットが使用されている場合、アスタリスク (*) の代わりにパーセント記号 (%) を使用します。

Not "*ト"

末尾の文字が "ト" でないすべてのレコードを検索します。ご利用のデータベースで ANSI-92 のワイルドカード文字セットが使用されている場合、アスタリスクの代わりにパーセント記号を使用します。

In(東京都,大阪府)

リストから "東京都" または "大阪府" を含むすべてのレコードを検索します。

Like "[ア-サ]*"

テキスト フィールドで、"ア" から "サ" までの文字で始まるレコードをすべて検索します。ご利用のデータベースで ANSI-92 のワイルドカード文字セットが使用されている場合、アスタリスクの代わりにパーセント記号を使用します。

Like "*株式*"

"株式" という文字シーケンスが含まれたすべてのレコードを検索します。ご利用のデータベースで ANSI-92 のワイルドカード文字セットが使用されている場合、アスタリスクの代わりにパーセント記号を使用します。

Like "株式会社?"

"株式会社" で始まるすべてのレコードのうち、最後に任意の 1 文字 (疑問符で表される) を含むレコードが検索されます。ご利用のデータベースで ANSI-92 のワイルドカード文字セットが使用されている場合、疑問符の代わりにアンダースコア (_) を使用します。

#2/2/2017#

2017 年 2 月 2 日のレコードをすべて検索します。ご利用のデータベースで ANSI-92 のワイルドカード文字セットが使用されている場合、ナンバー記号 (#) の代わりに単一引用符で日付を囲みます。例: '2/2/2017'

< Date() - 30

日付が 30 日を超えるレコードをすべて返します。

Date()

本日の日付を含むレコードをすべて検索します。

Between Date() And DateAdd("M", 3, Date())

本日から 3 か月後の日付までのレコードをすべて返します。

Is Null

Null 値 (空白または未定義の値) を含むすべてのレコードを返します。

Is Not Null

値を含むすべてのレコードを返します。

""

長さがゼロの文字列を含むレコードをすべて返します。必須フィールドに値を追加する必要があるけれども、まだその値が不明な場合に長さがゼロの文字列を使用します。たとえば、FAX 番号を要求するフィールドがあり、一部の顧客が FAX を持っていない場合などが考えられます。その場合は、番号の代わりに間にスペースを含まない二重引用符のペア ("") を入力します。

  1. [デザイン] タブの [結果] グループで、[実行] ボタンの画像 をクリックします。

  2. コピーするレコードがクエリで返されていることを確認します。クエリからフィールドを追加または削除する必要がある場合は、デザイン ビューに戻って前述の手順に従ってフィールドを追加するか、不要なフィールドを選び、 Delete キーを押してクエリから削除します。

手順 2: 選択クエリを追加クエリに変換する

  1. [ホーム] タブの [表示] グループで [表示] をクリックし、[デザイン ビュー] をクリックします。

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

    [追加] ダイアログ ボックスが表示されます。

    [追加クエリ] ダイアログ ボックスのスクリーンショット

  3. 次に、カレント データベースのテーブルにレコードを追加するのか、他のデータベースのテーブルにレコードを追加するのかを指定します。

    次のいずれかの操作を行います。

    • [追加] ダイアログ ボックスで [カレント データベース] をクリックし、[テーブル名] ボックスの一覧から追加先テーブルを選んで、[OK] をクリックします。

      または

    • [追加] ダイアログ ボックスで [別のデータベース] をクリックします。

    • [ファイル名] ボックスに追加先データベースの場所とファイル名を入力します。

    • [テーブル名] コンボ ボックスに、追加先テーブルの名前を入力し、[OK] をクリックします。

手順 3: 追加先フィールドを選ぶ

追加先フィールドがどのように選択されるかは、手順 1 での選択クエリの作成方法によって決まります。

選択クエリの作成方法

Access の動作

追加元のテーブルまたはクエリからすべてのフィールドを追加

追加先テーブルのすべてのフィールドがデザイン グリッドの [追加先] 行に追加されます。

個々のフィールドをクエリに追加するか式を使用して、追加元テーブルと追加先テーブルで一致するフィールド名を検索

一致する追加先フィールドがクエリの [追加先] 行に自動的に追加されます。

個々のフィールドを追加するか式を使用して、追加元テーブルと追加先テーブルで一致しないフィールド名を検索

一致するフィールドが追加され、一致しないフィールドは空白になります。

フィールドが空白になっている場合は、[追加先] 行のセルをクリックして、追加先フィールドを選べます。

次の図は、[追加先] 行のセルをクリックして追加先フィールドを選ぶ方法を示しています。

[追加先] 行のドロップダウン リスト

注: 追加先フィールドを空白のままにすると、クエリではそのフィールドにデータが追加されません。

手順 4: 追加クエリをプレビューして実行する

  1. データシート ビューに切り替えて、変更をプレビューします。

    ヒント: ビューをすばやく切り替えるには、クエリの上部にあるタブを右クリックし、目的のビューをクリックします。

  2. デザイン ビューに戻り、[実行] ボタンの画像 をクリックしてレコードを追加します。

    注:  大量のデータを返すクエリを実行していると、クエリを元に戻すことはできないことを伝えるエラー メッセージが表示される場合があります。メモリ セグメントの制限を 3 MB に拡張し、クエリが問題なく実行されるように試してみてください。

ページの先頭へ

無効モードでクエリがブロックされないようにする

追加クエリを実行しようとしたのに、何も実行されていないように思われる場合は、Access ステータス バーに次のメッセージが表示されていないか確認してください。

無効モードのため、アクションまたはイベントはブロックされました。

この状態を解消するには、メッセージ バーの [コンテンツの有効化] をクリックしてクエリを有効にします。

注: 追加クエリを有効にする場合は、他のデータベースのコンテンツもすべて有効にします。

ただし、Access 2007 を使用している場合は、次の手順に従ってコンテンツを有効にする必要があります。

  1. メッセージ バーの [オプション] をクリックします。

  2. [Microsoft Office セキュリティ オプション] ダイアログ ボックスで、[このコンテンツを有効にする] をクリックし、[OK] をクリックします。

メッセージ バーが表示されない場合は、非表示にしている可能性があります。メッセージ バーが無効にされていなければ、表示することができます。メッセージ バーが無効な場合は、有効にすることができます。Access 2007 でメッセージ バーを有効にするには、[Access のオプション] ダイアログ ボックスで [セキュリティ センターの設定] 領域に移動し、[すべてのアプリケーションで、コンテンツがブロックされたときにメッセージ バーを表示する]、[OK] の順にクリックします。変更された設定を適用するには、データベースを閉じてから開き直す必要があります。

ページの先頭へ

関連項目

更新クエリを作成して実行する

データベースにレコードを追加する

テーブル作成クエリを作成する

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×