VBA/Access - Comment annuler une modification
Towers
Messages postés
38
Statut
Membre
-
Towers Messages postés 38 Statut Membre -
Towers Messages postés 38 Statut Membre -
Bonjour,
Encore une fois je galère en VBA.
Cette fois-ci j'essaye de faire une vérification lorsque l'utilisateur clique sur une liste.
En gros je fait des vérifications sur les autres données, je demande confirmation à l'utilisateur sur l'action qu'il va faire. Si tout est bon et qu'il répond oui alors je lance la procédure "enregistrement".
Sinon (données mauvaises ou annulation de la part de l'utilisateur), je veux que la listbox reprenne sa valeur initialle.
En résumé le code :
Ici j'utilise lst_Metier_Enter mais ce n'est pas une bonne idée puisque je n'ai pas le temps de cliquer sur la nouvelle valeur de la liste que le message de confirmation apparait.
J'ai essayé les propriétés After_update et BeforeUpdate puisqu'elles me semblaient adaptées mais je ne dois pas m'en servir correctement.
Merci
Towers
Encore une fois je galère en VBA.
Cette fois-ci j'essaye de faire une vérification lorsque l'utilisateur clique sur une liste.
En gros je fait des vérifications sur les autres données, je demande confirmation à l'utilisateur sur l'action qu'il va faire. Si tout est bon et qu'il répond oui alors je lance la procédure "enregistrement".
Sinon (données mauvaises ou annulation de la part de l'utilisateur), je veux que la listbox reprenne sa valeur initialle.
En résumé le code :
Private Sub lstMetier_Enter()
On Error GoTo Err_lstMetier_Enter
Dim ok As Boolean
Dim msg As String
ok = VerifierFormulaire(msg)
If ok Then
If MsgBox("etes-vous sur de continuer ?", vbYesNo) = vbYes Then
EnregistrerValeurs
Else
'JE VEUX QUE LA LISTE REPRENNE SA VALEUR D'ORIGINE
End If
Else
MsgBox "<lstMetier_Enter> : annulation"
'JE VEUX QUE LA LISTE REPRENNE SA VALEUR D'ORIGINE
End If
Exit_lstMetier_Enter:
Exit Sub
Err_lstMetier_Enter:
MsgBox Err.Description
Resume Exit_lstMetier_Enter
End Sub
Ici j'utilise lst_Metier_Enter mais ce n'est pas une bonne idée puisque je n'ai pas le temps de cliquer sur la nouvelle valeur de la liste que le message de confirmation apparait.
J'ai essayé les propriétés After_update et BeforeUpdate puisqu'elles me semblaient adaptées mais je ne dois pas m'en servir correctement.
Merci
Towers
A voir également:
- VBA/Access - Comment annuler une modification
- Suivi de modification word - Guide
- Comment annuler une offre sur vinted - Guide
- Modification dns - Guide
- Exemple base de données access à télécharger gratuit - Forum Access
- Logiciel gratuit modification pdf - Guide
2 réponses
Bon ben si il n'y a pas de réponse je vais vous dire comment j'ai évité ce problème :
j'ai une étiquette (lblMetier) où je stocke la valeur dont j'ai besoin.
Quand je modifie lstMetier (propriété OnChange, méthode lstMetier_OnChange), si il y abesoin d'annuler l'action (décision de l'utilisateur ou données incorrectes), je charge la valeur de lblMetier dans lstMetier.
Sinon j'exécute mon code et ensuite je charge la valeur de lstMetier dans lblMetier.
Mais je persiste à dire qu'il y asurement une autre solution, paske c'est inutile d'avoir 2 controles Acces alors qu'un seul suffirait certainement.
En tous cas ça marche mais si vous avez mieux à proposer, dites-moi ça !
j'ai une étiquette (lblMetier) où je stocke la valeur dont j'ai besoin.
Quand je modifie lstMetier (propriété OnChange, méthode lstMetier_OnChange), si il y abesoin d'annuler l'action (décision de l'utilisateur ou données incorrectes), je charge la valeur de lblMetier dans lstMetier.
Sinon j'exécute mon code et ensuite je charge la valeur de lstMetier dans lblMetier.
Mais je persiste à dire qu'il y asurement une autre solution, paske c'est inutile d'avoir 2 controles Acces alors qu'un seul suffirait certainement.
En tous cas ça marche mais si vous avez mieux à proposer, dites-moi ça !