Jak monitować użytkownika o zapisanie zmian w rekordzie w formularzu programu Access

Uwaga

Nazwa usługi Office 365 ProPlus została zmieniona na Aplikacje usługi Microsoft 365 dla przedsiębiorstw. Aby uzyskać więcej informacji na temat tej zmiany, przeczytaj ten wpis w blogu.

Oryginalny numer KB:   197103

Porada

Wymaga podstawowych umiejętności makro, kodowania i interoperacyjności.

Podsumowanie

Po przejściu do następnego rekordu w formularzu lub zamknięciu formularza program Microsoft Access automatycznie zapisuje wszelkie zmiany wprowadzone w bieżącym rekordzie. W tym artykule pokazano, jak użyć beforeUpdate procedury zdarzenia, aby monit o zweryfikowanie operacji zapisywania przed programem Microsoft Access będzie kontynuowana.

Firma Microsoft podaje przykłady programowania tylko dla celów ilustracyjnych, nie udzielając żadnej rękojmi, wyrażonej wprost ani dorozumianej, w tym także, ale nie tylko, dorozumianej rękojmi co do przydatności handlowej lub do określonych celów. W tym artykule zakłada się, że czytelnik zna demonstrowany język programowania oraz narzędzia używane do tworzenia i debugowania procedur. Wykwalifikowani pracownicy pomocy technicznej firmy Microsoft mogą pomóc w wyjaśnieniu, jak działa określona procedura, ale nie będą modyfikować tych przykładów ani dodawać żadnych funkcji i konstruować nowych procedur w celu dostosowania ich do określonych potrzeb użytkownika.

Więcej informacji

Przestroga

Jeśli zastosujesz się do kroków w tym przykładzie, zmodyfikujesz przykładową bazę danych Northwind.mdb. Możesz wykonać kopię zapasową pliku Northwind.mdb i wykonać następujące kroki na kopii bazy danych.

W tym przykładzie użyto procedury zdarzenia BeforeUpdate w formularzu Klienci, aby monitować użytkownika o potwierdzenie zmian, zanim program Microsoft Access zapisze rekord:

  1. Otwórz przykładową bazę danych Northwind.mdb i otwórz formularz Klienci w widoku Projekt.

  2. Ustaw właściwość formularza BeforeUpdate na następującą procedurę zdarzenia:

    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. W menu Debugowanie kliknij polecenie Skompiluj northwind.

  4. W menu Plik kliknij polecenie Zapisz northwind.

  5. W menu Plik kliknij polecenie Zamknij i wróć do programu Microsoft Access.

Teraz po wprowadzeniu zmiany w rekordzie, a następnie przeniesieniu do innego rekordu lub zamknięciu formularza zostanie wyświetlony monit o potwierdzenie, że chcesz zapisać bieżący rekord. Jeśli klikniesz przycisk Nie, rekord zostanie zresetowany, a operacja będzie kontynuowana normalnie.