即効テクニック

クエリ・SQL

追加クエリの利用

(Access 97/2000/2002)
受験者のうち合格した者だけを学生名簿に追加する場合、追加クエリを使用して一度にデータを追加することが出来ます。

●手順●
例えば、以下の2つのテーブルが存在すると仮定します
・受験名簿(受験番号、氏名、住所、合否 ・・・・・)
 合否はyes/no型、他は、すべてテキスト型
・学生名簿(学生番号、氏名、住所、出身学校 ・・・・・)
 学生番号はオートナンバー型、ほかはすべて、テキスト型

受験名簿で[合否]が、[yes]のデータを[受験名簿]より[学生名簿]に追加します。

(1) データーベースウィンドウの[オブジェクト]から[クエリ]をクリックし、データベースウィンドウ上部にある[新規作成]ボタンをクリックします。
すると、[新しいクエリ]ダイアボックスが表示されますので、[デザインビュー]をクリックし、[OK]をクリックします。
[テーブルの表示]のダイアログボックスが表示されますので、[テーブル]ボタンをクリックします。
テーブル名が表示されますので、データの元となるテーブル[受験名簿]を選択します。
      [追加]をクリックします。[閉じる]をクリックします。

(2) メニューの[クエリ]より[追加]を選択します。
[追加先テーブル名]を入力するダイアログボックスが表示されますので、[テーブル名(N)]は、[学生名簿]を選択します。
[OK]をクリックします。

(3) テーブル[受験者]の中から追加したいデーター項目を選択して、下側のデザイングリッドにドラッグします。この例では、[氏名]、[住所]をドラッグします。

(4) デザイングリッドで[フィールド]は、追加元の項目名。
[テーブル]は、追加元のテーブル名。
[レコードの追加]は、追加されるテーブルの項目名です。追加元のテーブルから、ドラッグしてきた場合、同じ項目名が追加先のテーブルにある場合は、自動的に同じ名前の項目が指定されます。違う項目に追加したい場合や、同じ項目名でない為に表示されない場合には自分で選択する必要があります。

(5) 追加の条件となる[合否]をデザイングリッドにドラッグします。
この項目は、追加の対象にはなりませんので、[レコードの追加]は、空欄です。
[抽出条件]に[yes]と入力します。

(6) ウィンドウを閉じます。
[保存]を選択してクエリの名前(例えば[合格者を学生名簿に追加])を入力して[OK]をクリックします。

(7) 先ほどの名前をつけたクエリ(この例では[合格者を学生名簿に追加]をダブルクリックして実行します。

● 動作確認 ●
作成したクエリを実行した後、追加先のテーブルを開いて条件にあったデータだけが追加されているか確認をします。

● 注意 ●
追加クエリは、実行した回数だけデータが追加されますので1回だけ実行します。
追加元と追加先のテーブルのデータ型が異なる場合や、追加先のテーブルの主キーの項目にすでにある値を追加しようとするとレコードを追加できないメッセージが表示されます。
この場合は、[いいえ(N)]をクリックします。
エラーがなくなるまでクエリを修正してください。
[はい(Y)]を選択すると、エラー以外のデータが追加されるため重複して追加される可能性があります。