Bonjour ...
Voici comment j'ai fait :
1) Création d'un bouton pour quitter le formulaire (bouton fermer de base)
2) Création d'une fonction qui demande à l'utilisateur : Voulez-vous enregistrez ? Les 3 réponses possibles sont : OUI / NON / ANNULER
str_ReponseEnregistrement = MsgBox("Voulez-vous enregistrer ?", vbYesNoCancel)
Pour le cas de NON donc 7 voici ce que j'ai mis comme code ...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| If str_ReponseEnregistrement = 7 Then
If ((str_NomForm = "FRM_controle_des_poids_entree_matiere_AJOUT") Or _
(str_NomForm = "FRM_controle_des_poids_sortie_matiere_AJOUT") Or _
(str_NomForm = "FRM_controle_des_poids_transfert_matiere_AJOUT")) Then
str_RetourFonction = "7"
fn_demandeEnregistrement = str_RetourFonction
Else
str_RetourFonction = "7"
Forms(str_NomForm).Undo
fn_demandeEnregistrement = str_RetourFonction
End If
End If |
3) Ensuite je revoie la réponse de ma fonction dans ma procédure sub btn_CLICK()
4) Ensuite dans ma fonction principal sub, je teste les réponse que j'ai eu ... dans le cas de NON, voici le code que j'ai mit :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| 'REPONSE = NON
If (str_ReponseFonctionEnregistrement = "7") Then
'Si on ne doit pas enregistrer, il faut supprimer le mouvement c'est à dire qu'il faut le
'supprimer dans la table TB_MOUVEMENTS, puis TB_DETAILS, puis TB_DESTINATIONS.
'Fermeture du formulaire
DoCmd.Close
'Appel de la fonction qui permet la suppression du mouvement dans sa totalité
fn_SuppressionEnCascade var_Provenance, var_PkMouvement, str_NomFormulaire, str_NomSousFormulaire
'Suppression de la description si une nouvelle description a été ajoutée
fn_suppression_description
End If |
et pour finir, dans la fonction fn_SuppressionEnCascade je supprime à l'aide de recordset dans ma table l'enregistrement qui est dans mon formulaire principal à l'aide d'envoie de paramètre pour ne pas supprimer le mauvais ...
J'espère que j'ai pu t'aider ... et si ce n'est pas très très clair, n'hésite pas à me demander des précisions ...
Bonne journée ...
Partager