Les mémos
Je débute...
Visites

 988008 visiteurs

 1 visiteur en ligne

Recherche
 
Fermer

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 :

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 :

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

Catégorie : Les mémos - Formulaires
Page lue 9938 fois