sql >> Base de Datos >  >> RDS >> Mysql

DAO.Recordset.Update da como resultado un bloqueo de registro

No parece que se esté moviendo a otro registro en el conjunto de registros. Simplemente incrementando i no pasa al siguiente registro. Un enfoque más tradicional sería iterar sobre el conjunto de registros sin la necesidad de sus otras variables (i y 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 Después de buscar un poco encontré este hilo que parece ser similar a su problema. En la parte inferior del hilo, se hace una sugerencia para modificar la configuración de ODBC para su DSN de MySQL seleccionando la pestaña "Avanzado" y seleccionando la opción "Devolver filas coincidentes". La publicación también dice que elimine la tabla vinculada y luego vuelva a vincularla a su base de datos de Access. No he usado Access con MySQL en el pasado, por lo que no tengo idea de si esto funcionará o no, ¡así que proceda con precaución! /P>

También puede intentar cambiar su conjunto de registros para usar el indicador dbOptimistic para la opción de bloqueo del conjunto de registros para ver si eso ayuda en algo:

set rs = CurrentDB.OpenRecordSet("qryMyQuery", DB_OPEN_DYNASET, dbOptimistic)