Ck_wk 覚書

ガジェットやTipsの覚書で読みやすさなど二の次です。

ACCESS VBAでレコードセットにSQLを入れる時のメモ1

久々にACCESS VBASQL書いている。

この環境下では初でした。

 

SELECT T1.P_CD, I1.O_P_CD, I1.S_ID
    FROM T1

       INNER JOIN I1

     ON (T1.P_CD = I1.O_P_CD);

 

みたいな簡単なSQLがクエリなら通るのにVBA上だと通らない。

 

        iRS.Open "SELECT T1.P_CD, I1.O_P_CD, I1.S_ID FROM T1 INNER JOIN I1 ON (T1.P_CD = I1.O_P_CD);", db, adOpenStatic, adLockOptimistic

↑これが通らない

 

 

 

なぜ。

と悩むこと40分。質問してみたら案外簡単だった。

テーブル二つ開いているのに排他制御がadLockOptimisticだと、更新を2か所の内どっちにかければいいか判りませんよね?

という事でした。

だから正解は

        iRS.Open "SELECT T1.P_CD, I1.O_P_CD, I1.S_ID FROM T1 INNER JOIN I1 ON (T1.P_CD = I1.O_P_CD);", db, adOpenStatic, adLockReadOnly

 

とRead Onlyにしてあげないといけない。とのこと。