VBA/Access - Comment annuler une modification

Fermé
Towers Messages postés 37 Date d'inscription samedi 2 février 2008 Statut Membre Dernière intervention 10 mai 2012 - 23 juil. 2008 à 16:54
Towers Messages postés 37 Date d'inscription samedi 2 février 2008 Statut Membre Dernière intervention 10 mai 2012 - 24 juil. 2008 à 14:11
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 :

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:

2 réponses

Towers Messages postés 37 Date d'inscription samedi 2 février 2008 Statut Membre Dernière intervention 10 mai 2012 3
24 juil. 2008 à 08:58
UP...

si vous avez une piste, svp aidez-moi !
0
Towers Messages postés 37 Date d'inscription samedi 2 février 2008 Statut Membre Dernière intervention 10 mai 2012 3
24 juil. 2008 à 14:11
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 !
0