Jak monitować użytkownika o zapisanie zmian w rekordzie w formularzu w programie Access
Oryginalny numer KB: 197103
Porada
Wymaga podstawowych umiejętności w zakresie makr, kodowania i współdziałania.
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ć procedury zdarzeń BeforeUpdate, aby wyświetlić monit o zweryfikowanie operacji zapisywania przed kontynuowaniem programu Microsoft Access.
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
Uwaga
Jeśli wykonaj kroki opisane w tym przykładzie, zmodyfikujesz przykładową bazę danych Northwind.mdb. Możesz utworzyć kopię zapasową pliku Northwind.mdb i wykonać te 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:
Otwórz przykładową bazę danych Northwind.mdb i otwórz formularz Klienci w widoku Projekt.
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
W menu Debugowanie kliknij pozycję Kompiluj northwind.
W menu Plik kliknij pozycję Zapisz northwind.
W menu Plik kliknij przycisk Zamknij i wróć do programu Microsoft Access.
Teraz, gdy wprowadzisz zmianę rekordu, a następnie przejdziesz do innego rekordu lub zamkniesz formularz, 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.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla