Mysql
 sql >> Base de données >  >> RDS >> Mysql

DAO.Recordset.Update entraîne le verrouillage de l'enregistrement

Il ne semble pas que vous vous déplaciez vers un autre enregistrement du jeu d'enregistrements. Incrémenter simplement i ne passe pas à l'enregistrement suivant. Une approche plus traditionnelle consisterait à parcourir le jeu d'enregistrements sans avoir besoin de vos autres variables (i et 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

MODIFIER Après quelques recherches, je suis tombé sur ce fil qui semble être similaire à votre problème. Au bas du fil, une suggestion est faite pour modifier les paramètres ODBC de votre DSN MySQL en sélectionnant l'onglet "Avancé" et en sélectionnant l'option "Retourner les lignes correspondantes". Le message indique également de supprimer la table liée, puis de la relier à votre base de données Access. Je n'ai pas utilisé Access avec MySQL dans le passé, donc je ne sais pas si cela fonctionnera ou non, alors procédez avec prudence !

Vous pouvez également essayer de modifier votre jeu d'enregistrements pour utiliser l'indicateur dbOptimistic pour l'option de verrouillage du jeu d'enregistrements pour voir si cela aide du tout :

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