- ベストアンサー
ACCESS 更新 ADO Filter Do Until
- ACCESSのフォームに作成したコマンドボタンを実行するとTABLE1からTABLE2へID番号を元に値を更新するようなプログラムを作りましたが、うまく動きません。
- ID番号を元にTABLE1からTABLE2への値の更新を行うACCESSのプログラムが正常に動作しない問題があります。
- 作成したACCESSのプログラムでコマンドボタンを実行すると、TABLE1からTABLE2へID番号を元に値を更新する際に問題が発生しています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ANO2ですが、 "UPDATE TABLE1 LEFT JOIN TABLE2 ON TABLE1.ID = TABLE2.ID SET TABLE2.NAME = [TABLE1]![NAME], TABLE2.[PRICE] = [TABLE1]![NAME];" ↓ "UPDATE TABLE1 LEFT JOIN TABLE2 ON TABLE1.ID = TABLE2.ID SET TABLE2.NAME = [TABLE1]![NAME], TABLE2.[PRICE] = [TABLE1]![PRICE];" でした。
その他の回答 (2)
- ShowMeHow
- ベストアンサー率28% (1424/5027)
更新クエリを使えるのがアクセスの特徴ですが、そのSQL文をそのままVBAで実行させることもできます。 Dim CN As New ADODB.Connection Set CN = CurrentProject.Connection CN.EXECUTE "UPDATE TABLE1 LEFT JOIN TABLE2 ON TABLE1.ID = TABLE2.ID SET TABLE2.NAME = [TABLE1]![NAME], TABLE2.[PRICE] = [TABLE1]![NAME];" CN.CLOSE SET CN = NOTHING LEFT JOINなのか、INNER JOIN なのかは、与えられている情報からは判断できませんが、idに重複がなければどちらでもよいのかなと思います。
- m3_maki
- ベストアンサー率64% (296/460)
Recordset を使わなくても 更新クエリでご希望のことはできると思いますが。 > TABLE1からTABLE2へID番号を元に値を更新するようなプログラムを > 作りましたが、うまく動きません。 うまく動かなくてどうなるかを書くようにしましょうね。 Do Until rsB.EOF rsB!名前 = rsA!名前 rsB!価格 = rsA!価格 rsB.Update rsB.MoveNext '<--- 追加 Loop