
No.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の更新後イベントでフォームの表示を更新しているなら、問題ありません)
御礼がとっても遅くなってしまいました…ありがとうございました!
ご丁寧な回答していただき参考になりました。SQLも勉強しないとと思っているのですが…ハドルが高い気がして前に進めません…本当にありがとうございました!
No.2
- 回答日時:
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で編集することが出来れば、より簡単に実現できるかと思います。
もしかしたら、この辺りが課題なのかも・・・。
お礼がとっても遅くなってしまいましたが、どうもありがとうございました!
>クエリ自体をVBAで編集することが出来れば、より簡単に実現でき
>るかと思います。もしかしたら、この辺りが課題なのかも・・・。
おっしゃる通りなのです。VBAで編集できたらと思うのですが、マニュアルを買って奮闘中ですが、なかなか思うように…周りに頼る人もいず、一人で四苦八苦です…回答していただいた内容が理解できるようになりたいと思います!
No.1
- 回答日時:
(既存テーブルのデータの)削除クエリ + 追加クエリ という組み合わせ。
この回答への補足
すみません、もう少し説明をお願いしたいのですが・・・実はフォームを使ってパラメータをわたし、クエリを実行するために選択クエリしか指定が出来ません。さらに重複したデータを削除したいのでテーブルにレコードを落とし、そのテーブルに対してまたクエリをかけています。そのため最初のクエリはどうしても選択クエリである必要があるのですが・・・追加クエリ・削除クエリの組み合わせをどのように使えばよいのでしょうか?すみません知識不足で・・・再度よろしくお願いいたします。
補足日時:2008/02/07 16:15お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ACCESS2000 クエリをテーブル化するマクロ(VBA)おしえてください
Word(ワード)
-
クエリのデータをテーブルに入れたい
Access(アクセス)
-
Accessでレコードを別テーブルへコピーするには
Access(アクセス)
-
-
4
アクセス 項目毎にデータを横に並べる方法
Access(アクセス)
-
5
2つのテーブルに共通するレコードを削除したい
Access(アクセス)
-
6
Access サブフォームでの選択行の取得
その他(データベース)
-
7
access vbaにてテンポラリーテーブルが作りたいです。
Access(アクセス)
-
8
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
9
Accessクエリ 複数フィールドを対象に空白の場合は全件表示したい
Access(アクセス)
-
10
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
11
Access VBAでクエリーのレコード件数を取得したいのですが
その他(データベース)
-
12
Accessのテーブルデータを一気にVBAで追加したい・・
その他(データベース)
-
13
yes/no型のチェックができない(アクセス2003)
Access(アクセス)
-
14
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
15
Access インポート
Access(アクセス)
-
16
ACCESS クエリで1から順番に番号を表示したい
Access(アクセス)
-
17
アクセスのfilter、複数条件の記述方法を教えてください。
Access(アクセス)
-
18
ACCESS クエリの抽出条件に他のテーブルの値を参照する方法
Access(アクセス)
-
19
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
-
20
選択したチェックボックスのみチェックを入れたいのですが
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS クエリで重複データを最...
-
ACCESSでクエリを作成したら「...
-
ACCESS のクエリー実行に異常に...
-
「データベースまたはオブジェ...
-
ACCESSでデータ削除すると「読...
-
access SQLの抽出結果をFilter...
-
追加先の発見方法(SQL以外)
-
Access2000でVBAからパラメータ...
-
access:連続データ入力
-
access・カウント結果がゼロで...
-
クエリで「データ型が一致しま...
-
ACCESSにてフィールド間の最小...
-
テーブルに主キーを作らないデ...
-
Accessのクエリで、Left関数を...
-
accessの自動更新処理をできな...
-
入力途中の入力した値をすべて...
-
Access 別フォームへの再クエ...
-
Accessのフォーム上にレコード...
-
ACCESSのフォームからデータの...
-
Access フォーム上でコンボボッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESS クエリで重複データを最...
-
「データベースまたはオブジェ...
-
ACCESSでクエリを作成したら「...
-
ACCESSにてフィールド間の最小...
-
access・カウント結果がゼロで...
-
ACCESS クエリで、グループ化...
-
SqlServer2012 ビューとクエリ
-
access:連続データ入力
-
追加先の発見方法(SQL以外)
-
AccessのクエリをSqlサーバーの...
-
AccessでのDISTINCTROW 、DISTI...
-
SQLで優先順位が高いレコードを...
-
ACCESSで2つのテーブル比較で...
-
accessで選択クエリで得た全レ...
-
クエリで「データ型が一致しま...
-
Access200のFilterとFindの違い
-
マイクロソフトAccessでsqlのas...
-
ACCESSでデータ削除すると「読...
-
ACCESSでデータの追加は?
-
ACCESS クエリー 抽出条件が...
おすすめ情報