VBA/Access - Comment annuler une modification
Towers
Messages postés
37
Date d'inscription
Statut
Membre
Dernière intervention
-
Towers Messages postés 37 Date d'inscription Statut Membre Dernière intervention -
Towers Messages postés 37 Date d'inscription Statut Membre Dernière intervention -
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
- Logiciel gratuit modification pdf - Guide
- Annuler renvoi d'appel ooredoo ✓ - Forum Free mobile
- Incompatibilité de type vba ✓ - Forum Programmation
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 !