Les mémos

Fermer Tables

Fermer Requêtes

Fermer Formulaires

Fermer Etats

Fermer Modules

Fermer Base

Fermer Automation

Fermer Administration

Fermer Registre

Fermer String

Fermer Email CDO

Fermer Outlook

Fermer Net

Fermer Dates - Heures

Fermer Fichiers

Fermer Références

Fermer Vrac

Je débute...

Fermer La normalisation

Fermer VBA

Attention
Aucun support
par émail !

Utilisez le forum pour les questions/réponses concernant MsAccess et les codes que vous trouverez sur ce site.
Visites

   visiteurs

   visiteurs en ligne

Formulaires - Confirmer l'enregistrement
Par défaut, Access enregistre les modifications ou ajouts via un formulaire sans action volontaire de l'utilisateur.

Il se peut que l'on souhaite que la sauvegarde avant l'enregistrement ou la modification d'un enregistrement ne se produise qu'après confirmations.

On placera alors le code suivant dans la Sub de l'événement "Avant mise à jour" du formulaire :

Code :
Private Sub Form_BeforeUpdate(Cancel As Integer)
' Confirmation de la sauvegarde
Dim strMsg As String, strTitre As String
strMsg = "Les donnés ont changé." & vbCrLf _
& "Voulez-vous les sauvegarder ?"
strTitre = "Sauvegarde"
If MsgBox(strMsg, vbQuestion + vbYesNo, strTitre) = vbNo Then
Cancel = True
Me.Undo
End If
End Sub

On peut encore améliorer le fonctionnement en ajoutant un choix supplémentaire. Ce choix supplémentaire est celui de ne pas sauvegarder, mais en plus, de ne pas annuler les saisies déjà effectuées. Ceci permet de se corriger plus simplement.

La réponse possible à la demande de confirmation est alors;
  • Oui => On sauvegarde
  • Non => On annule tout
  • Annuler => On annule la sauvegarde, mais on reste dans l'enregistrement pour pouvoir le corriger

Le code devient alors :

Code :
Private Sub Form_BeforeUpdate(Cancel As Integer)
' Confirmation de la sauvegarde
Dim strMsg As String, strTitre As String, strRep As String
strMsg = "Les donnés ont changé." & vbCrLf _
& "Voulez-vous les sauvegarder ?"
strTitre = "Sauvegarde"
strRep = MsgBox(strMsg, vbQuestion + vbYesNoCancel, strTitre)
If strRep = vbNo Then
Cancel = True
Me.Undo
ElseIf strRep = vbCancel Then
Cancel = True
End If
End Sub

Date de création : 24/04/2010 : 14:17
Dernière modification : 05/08/2011 : 16:49
Catégorie : Formulaires
Page lue 9465 fois


Imprimer l'article Imprimer l'article

Recherche



Lettre d'information
Pour avoir des nouvelles de ce site, inscrivez-vous à notre Newsletter.
Captcha
Recopier le code :
Au sujet de l'auteur
L'auteur qui fréquente (fréquentait) le forum microsoft.public.fr.access a eu le plaisir d'être nommé MVP Office-Access de janvier 2003 à décembre 2011.

Qui sont les MVP ?

Divers ;-)
Nous contacter

Haut