Nie wygląda na to, że przechodzisz do innego rekordu w zestawie rekordów. Po prostu inkrementuj i
nie przechodzi do następnego rekordu. Bardziej tradycyjnym podejściem byłoby iterowanie po zestawie rekordów bez potrzeby używania innych zmiennych (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
EDYTUJ Po krótkich poszukiwaniach natknąłem się na ten wątek który wydaje się być podobny do twojego problemu. W dolnej części wątku pojawia się sugestia, aby zmodyfikować ustawienia ODBC dla twojego DSN MySQL, wybierając zakładkę „Zaawansowane” i wybierając opcję „Zwróć pasujące wiersze”. W poście napisano również, aby usunąć połączoną tabelę, a następnie ponownie połączyć ją z bazą danych programu Access. W przeszłości nie korzystałem z programu Access z MySQL, więc nie mam pojęcia, czy to zadziała, czy nie, więc postępuj ostrożnie!
Możesz również spróbować zmienić zestaw rekordów, aby użyć flagi dbOptimistic dla opcji blokowania zestawu rekordów, aby sprawdzić, czy to w ogóle pomaga:
set rs = CurrentDB.OpenRecordSet("qryMyQuery", DB_OPEN_DYNASET, dbOptimistic)