|
小僧 さん・・・
やっぱりできませんでした。
SELECT テーブルA.ID, テーブルA.品名
FROM テーブルA
LEFT JOIN テーブルB
ON (テーブルA.品名 = テーブルB.品名) AND (テーブルA.ID = テーブルB.ID)
WHERE テーブルB.ID Is Not Null;
教えていただいたSQLはこれです。
実際にはテーブルBの価格を更新したいので
SELECT テーブルA.ID, テーブルA.品名, テーブルB.価格
FROM テーブルA
LEFT JOIN テーブルB
ON (テーブルA.品名 = テーブルB.品名) AND (テーブルA.ID = テーブルB.ID)
WHERE テーブルB.ID Is Not Null;
のようにSELECTの一番後ろに更新したいフィールドを追加しました。
そしてそのフィールドに【100】という数字を入れてみようと思ったので
Dim stSQL as string
Set rs = db.OpenRecordset(stSQL, dbOpenDynaset)
rs.MoveFirst
Do Until rs.EOF
rs.Edit
rs.価格 = 100
rs.Update
Loop
と記述してみたのですが・・・
rs.Edit のところで
《実行時エラー3027
データベースまたはオブジェクトは読み取り専用なので、更新できません。》
と表示されます。
そういえば、選択クエリは2つ以上のテーブルからフィールドを選択した場合
更新とかはできなかったような気がします。
教えていただいたコードの後はどのように書けばよかったのでしょうか?
それともSQLの追加の方法が間違っていたのでしょうか。
質問ばかりで申し訳ないのですがぜひとも教えてください!
|
|