Có vẻ như bạn đang chuyển sang một bản ghi khác trong tập bản ghi. Chỉ cần tăng i
không chuyển sang bản ghi tiếp theo. Một cách tiếp cận truyền thống hơn sẽ là lặp lại tập bản ghi mà không cần các biến khác của bạn (i
và 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
CHỈNH SỬA Sau một hồi tìm kiếm, tôi đã tìm thấy chuỗi này có vẻ tương tự với vấn đề của bạn. Ở cuối luồng, một gợi ý được đưa ra để sửa đổi cài đặt ODBC cho MySQL DSN của bạn bằng cách chọn tab "Nâng cao" và chọn tùy chọn để "Trả lại Hàng phù hợp". Bài đăng cũng nói rằng hãy thả bảng được liên kết và sau đó liên kết lại nó với cơ sở dữ liệu Access của bạn. Tôi chưa sử dụng Access với MySQL trước đây, vì vậy tôi không biết liệu điều này có hoạt động hay không, vì vậy hãy tiến hành một cách thận trọng!
Bạn cũng có thể thử thay đổi tập bản ghi của mình để sử dụng cờ dbOptimistic cho tùy chọn khóa tập bản ghi để xem điều đó có giúp ích gì không:
set rs = CurrentDB.OpenRecordSet("qryMyQuery", DB_OPEN_DYNASET, dbOptimistic)