Het lijkt er niet op dat u naar een ander record in de recordset gaat. Gewoon i
. verhogen gaat niet naar het volgende record. Een meer traditionele benadering zou zijn om de recordset te herhalen zonder de noodzaak van uw andere variabelen (i
en 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
BEWERKEN Na wat zoeken kwam ik deze thread tegen wat lijkt op jouw probleem. Onderaan de thread wordt een suggestie gedaan om de ODBC-instellingen voor uw MySQL DSN te wijzigen door het tabblad "Geavanceerd" te selecteren en de optie "Overeenkomende rijen retourneren" te selecteren. Het bericht zegt ook dat je de gekoppelde tabel moet verwijderen en deze vervolgens opnieuw moet koppelen aan je Access-database. Ik heb Access in het verleden niet met MySQL gebruikt, dus ik heb geen idee of dit zal werken of niet, dus ga voorzichtig te werk!
U kunt ook proberen uw recordset te wijzigen om de dbOptimistic-vlag te gebruiken voor de recordsetvergrendelingsoptie om te zien of dat helpt:
set rs = CurrentDB.OpenRecordSet("qryMyQuery", DB_OPEN_DYNASET, dbOptimistic)