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