Come richiedere all'utente di salvare le modifiche al record in un modulo in Access

Numero KB originale: 197103

Consiglio

Richiede competenze di base per macro, codifica e interoperabilità.

Riepilogo

Quando si passa al record successivo in un modulo o si chiude un modulo, Microsoft Access salva automaticamente le modifiche apportate al record corrente. Questo articolo illustra come usare una routine evento BeforeUpdate per richiedere di verificare l'operazione di salvataggio prima che Microsoft Access continui.

Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia di qualsiasi tipo, sia espressa che implicita, ivi incluse, senza limitazioni, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presuppone che l'utente conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire il debug delle procedure. Gli esperti Microsoft sono autorizzati a fornire spiegazioni in merito alla funzionalità di una particolare routine, ma in nessun caso a modificare questi esempi per fornire funzionalità aggiuntive o a creare routine atte a soddisfare specifiche esigenze.

Ulteriori informazioni

Attenzione

Se si segue la procedura descritta in questo esempio, si modifica il database di esempio Northwind.mdb. È possibile eseguire il backup del file Northwind.mdb e seguire questa procedura in una copia del database.

In questo esempio viene utilizzata la routine evento BeforeUpdate nel modulo Clienti per richiedere all'utente di confermare le modifiche prima che Microsoft Access salvi il record:

  1. Aprire il database di esempio Northwind.mdb e aprire la maschera Clienti in visualizzazione Struttura.

  2. Impostare la proprietà della BeforeUpdate maschera sulla routine evento seguente:

    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. Scegliere Compila Northwind dal menu Debug.

  4. Scegliere Salva Northwind dal menu File.

  5. Scegliere Chiudi e tornare a Microsoft Access dal menu File.

Ora, quando si apporta una modifica a un record e quindi si passa a un record diverso o si chiude il modulo, viene richiesto di confermare che si vuole salvare il record corrente. Se si fa clic su No, il record viene reimpostato e l'operazione continua normalmente.