J’ai un souci en utilisant le driver ODBC de MySQL (MySQL ODBC 5.1)
Mon outil de développement est Access 2007, en frontal.
Les tables MySQL sont toutes des tables liées.
Mon souci :
Lorsque je veux mettre à jour des valeurs dans une table MySQL, j’ai une erreur systématique lors de l’événement UPDATE lorsque l’utilisateur a validé la mise à jour mais qu’en fait il n’a RIEN modifié.
Il semble qu’Access interprète mal ce non événement (Code erreur 3197 renvoyé par le driver ODBC).
Ce qui est irritant, c’est que l’information complétant ce code est fausse. Elle informe l’utilisateur que la mise à jour est impossible du fait que l’enregistrement est retenu par un autre utilisateur, ce qui n’est pas vrai, puisque pour le moment je suis le seul utilisateur à tester.
Si par contre je modifie mon code en utilisant l’instruction DoCmd.RunSQL je n’ai aucun problème.
Voici le code événementiel du côté Access qui pose problème:
Private Sub TestMySql_Màj_Click()
Dim MyRs As Recordset
Set MyRs = CurrentDb.OpenRecordset("Select * From BidonMySql WHERE [CodeProduit] = '00999'" )
MyRs.Edit
MyRs![LibelléProduit] = Me!MonLibProduit
MyRs.Update
MyRs.Close
End Sub
Voici le code événementiel du côté Access qui marche à tous les coups:
Private Sub TestMySql_MàjReqDirecte_Click()
DoCmd.RunSQL "UPDATE BidonMySql SET [LibelléProduit] = '" & Me!MonLibProduit & '" WHERE BidonMySql.[Code produit] = '00999'"
End Sub