レコードセット内の別のレコードに移動しているようには見えません。 i
をインクリメントするだけです 次のレコードに移動しません。より伝統的なアプローチは、他の変数(i
)を必要とせずにレコードセットを反復処理することです。 およびrsCnt
。
Dim rs as DAO.Recordset
Set rs = CurrentDb.OpenRecordset("qryMyQuery", DB_OPEN_DYNASET)
rs.moveFirst
Do Until rs.EOF
rs.Edit
rs!FieldNameHere = "test"
rs.Update
rs.MoveNext
Loop
編集 少し検索した後、このスレッド に出くわしました。 これはあなたの問題に似ているようです。スレッドの下部で、[詳細設定]タブを選択し、[一致する行を返す]オプションを選択して、MySQLDSNのODBC設定を変更するように提案されています。投稿には、リンクされたテーブルを削除してからAccessデータベースに再リンクすることも記載されています。これまでMySQLでAccessを使用したことがないため、これが機能するかどうかはわかりません。注意して続行してください。
レコードセットを変更して、レコードセットのロックオプションにdbOptimisticフラグを使用して、それがまったく役立つかどうかを確認することもできます。
set rs = CurrentDB.OpenRecordSet("qryMyQuery", DB_OPEN_DYNASET, dbOptimistic)