Não parece que você está movendo para outro registro no conjunto de registros. Simplesmente incrementando
i
não se move para o próximo registro. Uma abordagem mais tradicional seria iterar sobre o conjunto de registros sem a necessidade de suas outras variáveis (i
e 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
EDITAR Depois de pesquisar um pouco, encontrei este tópico que parece ser semelhante ao seu problema. Na parte inferior do tópico é feita uma sugestão para modificar as configurações de ODBC para seu DSN do MySQL selecionando a guia "Avançado" e selecionando a opção "Retornar linhas correspondentes". A postagem também diz para descartar a tabela vinculada e vinculá-la novamente ao seu banco de dados do Access. Eu não usei o Access com MySQL no passado, então não tenho idéia se isso funcionará ou não, então prossiga com cuidado!
Você também pode tentar alterar seu conjunto de registros para usar o sinalizador dbOptimistic para a opção de bloqueio do conjunto de registros para ver se isso ajuda:
set rs = CurrentDB.OpenRecordSet("qryMyQuery", DB_OPEN_DYNASET, dbOptimistic)