アプリ版:「スタンプのみでお礼する」機能のリリースについて

ひとつのテーブルの情報を、もうひとつのテーブルに反映させられなくて困っています。
おそらくupdateの副問合せの書き方が悪いと思うのですが、どこが悪いのか分かりません。
access2002 VBAで、同じフィールド構成を持つ2つのテーブルがあります。

TABLE_A
--------------------------
|P_Key | Field1 | Fieled2|
+------+--------+--------+
|111111|AAAA|BBBB|
|222222|CCCC|DDDD|
|333333|EEEE|FFFF|
|444444|GGGG|HHHH|
--------------------------

TABLE_B
--------------------------
|P_Key | Field1 | Fieled2|
+------+--------+--------+
|222222|ZZZZ|YYYY|
|333333|XXXX|WWWW|
--------------------------

このうち、ひとつのテーブル(TABLE_A)のField1 と Field2 の値を
もうひとつのテーブル(TABLE_B)のField1 と Field2 の値に変更したいのです。
条件は、P_Keyが同一のレコード同士です。

実行結果は以下のようにしたいのです。

TABLE_A (TABLE_Bは更新しないため変更無し)
--------------------------
|P_Key | Field1 | Fieled2|
+------+--------+--------+
|111111|AAAA|BBBB|
|222222|ZZZZ|YYYY|
|333333|XXXX|WWWW|
|444444|GGGG|HHHH|
--------------------------

VBAでupdateのSQLを書いているのですが、うまくいきません。
以下のSQLではDMLが正しくないのエラーになってしまいます。
(すみません。正式なエラーメッセージは失念しました)

update TABLE_A set( TABLE_A.Field1,TABLE_A.Field2 ) =
( select TABLE_B.Field1,TABLE_B.Field2 from TABLE_B
where TABLE_A.P_Key = TABLE_B.P_Key );

テーブル名に別名をつけたりしても同様にDMLが正しくないと怒られます。


質問は、以下の2つです。
1.上記更新は、ひとつのupdateのSQLで可能でしょうか?
  それともTABLE_B を Selectでまわして、TABLE_Aのレコードを一行ずつ
  更新していく必要があるのでしょうか?
2.1.が可能の場合、私の書いたSQLについてご助言をいただけませんでしょうか?

もしご存知の方おられましたら、ご教示をお願いできませんでしょうか?
以上です

A 回答 (1件)

>1.上記更新は、ひとつのupdateのSQLで可能でしょうか?


可能です

>2.1.が可能の場合、私の書いたSQLについてご助言をいただけませんでしょうか?
この程度のものならクエリデザインビューで作成できますから
デザインビューで作成して,SQLビューで表示するのが簡単ですね

下はそのようにして作ったものです
UPDATE TABLE_A INNER JOIN TABLE_B ON TABLE_A.P_Key = TABLE_B.P_Key
SET TABLE_A.Field1 = [TABLE_B].[Field1], TABLE_A.Fieled2 = [TABLE_B].[Field2];

それにVBAを持ち出すまでもないような気もしますが・・・

この回答への補足

遅くなりました。確認できました。
ご丁寧な回答ありがとうございました。
感謝します。

補足日時:2007/06/30 01:38
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
本日さっそく試させていただきます(access環境は自宅にはありませんので)。
ご指摘通りaccessなのでデザインビューを用いればいいのですが
すみません。まだ使い方をよく理解できていませんで。
自分の努力不足を棚に上げて質問しまして、失礼しました。
プログラムで組んでいるため今回はVBAで処理しています。
また回答させていただきます。
ありがとうございました。

お礼日時:2007/06/29 07:19

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

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

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


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