プロが教えるわが家の防犯対策術!

選択クエリを実行して得たレコードを全てテーブルに移したいのですが、簡単な方法を教えて下さい。最初からクエリをテーブル作成クエリにする方法以外にありますか?出来ればテーブル(フィールドはもちろんクエリで得たレコードと同じ)はすでに作成済みでそのテーブルに上書きしたいのですが・・・
よろしくお願いいたします!

A 回答 (3件)

横レス失礼します。



> フォームを使ってパラメータをわたし、クエリを実行

フォーム上のテキストボックスなどに絞り込み条件を入力し、そこで一旦データを確認した上で
テーブルに追加したい、ということでよろしいでしょうか。

そうであれば、フォームのレコードソース用のクエリ(→選択クエリ)と、テーブル更新用のクエリ
(→削除クエリ+追加クエリ)とをそれぞれ作ってしまう、という手もあると思います。


例えば、
 ・コピー元となるテーブルをテーブル1(フィールド=ID、名前)
 ・コピー先となるテーブルをテーブル2(フィールド=名前)
 ・絞り込み条件と結果を表示するフォーム=フォーム1
 ・絞り込み条件を入力するテキストボックス=テキスト1
 ・フォーム1のレコードソースとなるクエリ=クエリ1
 ・テーブル2の全レコードを削除するクエリ=クエリ2
 ・フォームで絞り込んだレコードをテーブル2に追加するクエリ=クエリ3
とすると、それぞれのクエリは、以下の通りになります:

クエリ1(重複データをそのまま表示):
Select テーブル1.ID,テーブル1.名前 From テーブル1
Where テーブル1.名前 Like "*" & Forms!フォーム1!テキスト1 & "*"

クエリ2:
Delete テーブル2.* From テーブル2;

クエリ3(名前のみを追加、重複する名前は1つにまとめる):
Insert Into テーブル2 ( 名前 )
Select Distinct クエリ1.名前 From クエリ1;


以上です。
(新規クエリをデザインビューで開いたら、テーブルは何も追加せず、メニューで「表示(V)→
 SQLビュー(Q)」を選択して、上記SQL文を貼り付け、保存してください)


なお、テキスト1を編集したら、必ずフォーム1のレコードの表示を更新する形にしておかないと、
フォームの表示とクエリ3で実際にテーブル2に追加されるデータとが合わなくなったりする
ことも考えられますので、注意してください。
(テキスト1の更新後イベントでフォームの表示を更新しているなら、問題ありません)
    • good
    • 1
この回答へのお礼

御礼がとっても遅くなってしまいました…ありがとうございました!
ご丁寧な回答していただき参考になりました。SQLも勉強しないとと思っているのですが…ハドルが高い気がして前に進めません…本当にありがとうございました!

お礼日時:2008/03/19 02:09

Tab1:



ID__fld_1
1___A
2___A
3___A

Tab2:

ID__fld_1
1___A
2___B
3___C

UPDATE tab1 SET fld_1 = DBLookup('fld_1','tab2','ID=' & [ID])
WHERE fld_1<>DBLookup('fld_1','tab2','ID=' & [ID]);

主キーの存在が大前提ですが・・・。
「fld_1が違ったらfld_1を更新せよ!」という SQL文を書けば・・・。
ただし、この方式だと、フィールドの数だけ。
まあ、現実的じゃないです。

[イミディエイト]
? XXXXXX("DELETE * FROM Tab1;")
True
? XXXXXX("INSERT INTO Tab1 SELECT * FROM Tab2")
True

と、たかだか2回SQL文を実行すれば済む話です。
これで事足りると思いますが・・・。

ところで、クエリ自体をVBAで編集することが出来れば、より簡単に実現できるかと思います。
もしかしたら、この辺りが課題なのかも・・・。
    • good
    • 0
この回答へのお礼

お礼がとっても遅くなってしまいましたが、どうもありがとうございました!
>クエリ自体をVBAで編集することが出来れば、より簡単に実現でき
>るかと思います。もしかしたら、この辺りが課題なのかも・・・。
おっしゃる通りなのです。VBAで編集できたらと思うのですが、マニュアルを買って奮闘中ですが、なかなか思うように…周りに頼る人もいず、一人で四苦八苦です…回答していただいた内容が理解できるようになりたいと思います!

お礼日時:2008/03/19 02:19

(既存テーブルのデータの)削除クエリ + 追加クエリ という組み合わせ。

この回答への補足

すみません、もう少し説明をお願いしたいのですが・・・実はフォームを使ってパラメータをわたし、クエリを実行するために選択クエリしか指定が出来ません。さらに重複したデータを削除したいのでテーブルにレコードを落とし、そのテーブルに対してまたクエリをかけています。そのため最初のクエリはどうしても選択クエリである必要があるのですが・・・追加クエリ・削除クエリの組み合わせをどのように使えばよいのでしょうか?すみません知識不足で・・・再度よろしくお願いいたします。

補足日時:2008/02/07 16:15
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A