Comment inviter l’utilisateur à enregistrer les modifications apportées à l’enregistrement dans un formulaire dans Access

Numéro de la base de connaissances d’origine : 197103

Conseil

Vous devez disposer de connaissances de base en macro, codage et interopérabilité avant de commencer.

Résumé

Lorsque vous passez à l’enregistrement suivant d’un formulaire ou fermez un formulaire, Microsoft Access enregistre automatiquement toutes les modifications que vous avez apportées à l’enregistrement actif. Cet article explique comment utiliser une procédure événementielle BeforeUpdate pour vous inviter à vérifier l’opération d’enregistrement avant que Microsoft Access continue.

Microsoft fournit des exemples de programmation à titre d’illustration uniquement, sans garantie expresse ou implicite. Cela inclut, sans y être limité, les garanties implicites de commercialisation et d’adaptation à un but en particulier. Cet article considère que vous connaissez le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les techniciens du Support technique Microsoft peuvent vous expliquer les fonctionnalités d’une procédure particulière, mais ils ne peuvent pas modifier les exemples en vue de vous fournir des fonctionnalités supplémentaires ou de créer des procédures répondant à vos besoins spécifiques.

Informations supplémentaires

Attention

Si vous suivez les étapes décrites dans cet exemple, vous modifiez l’exemple de base de données Northwind.mdb. Vous pouvez sauvegarder le fichier Northwind.mdb et suivre ces étapes sur une copie de la base de données.

Cet exemple utilise la procédure événementielle BeforeUpdate dans le formulaire Clients pour inviter l’utilisateur à confirmer les modifications avant que Microsoft Access n’enregistre l’enregistrement :

  1. Ouvrez l’exemple de base de données Northwind.mdb, puis ouvrez le formulaire Clients en mode Création.

  2. Définissez la propriété du BeforeUpdate formulaire sur la procédure événementielle suivante :

    Private Sub Form_BeforeUpdate(Cancel As Integer)
    
     ' This procedure checks to see if the data on the form has
     ' changed. If the data has changed, the procedure prompts the
     ' user to continue with the save operation or to cancel it. Then
     ' the action that triggered the BeforeUpdate event is completed.
    
     Dim ctl As Control
    
     On Error GoTo Err_BeforeUpdate
    
     ' The Dirty property is True if the record has been changed.
     If Me.Dirty Then
       ' Prompt to confirm the save operation.
       If MsgBox("Do you want to save?", vbYesNo + vbQuestion, _
               "Save Record") = vbNo Then
          Me.Undo
       End If
     End If
    
    Exit_BeforeUpdate:
     Exit Sub
    
    Err_BeforeUpdate:
     MsgBox Err.Number & " " & Err.Description
     Resume Exit_BeforeUpdate
    End Sub
    
  3. Dans le menu Déboguer , cliquez sur Compiler Northwind.

  4. Dans le menu Fichier , cliquez sur Enregistrer Northwind.

  5. Dans le menu Fichier , cliquez sur Fermer et revenir à Microsoft Access.

À présent, lorsque vous apportez une modification à un enregistrement, puis que vous passez à un autre enregistrement ou fermez le formulaire, vous êtes invité à confirmer que vous souhaitez enregistrer l’enregistrement actif. Si vous cliquez sur Non, l’enregistrement est réinitialisé et l’opération se poursuit normalement.