Kolejność zdarzeń dla obiektów bazy danych

Jedna akcja, taka jak przejście z jednego elementu typu kontrolka w obiekcie do innej kontrolki, może wyzwolić kilka innych zdarzeń występujących w określonej kolejności. Ważna jest znajomość czasu i kolejności występowania zdarzeń, ponieważ może to wpłynąć na sposób i czas uruchamiania makr, a nawet procedur zdarzeń. Jeśli na przykład dwie procedury zdarzeń mają zostać uruchomione w określonej kolejności, skojarzone z nimi zdarzenia muszą wystąpić w takiej samej kolejności.

W tym artykule

Kolejność zdarzeń kontrolek w formularzach

Kolejność zdarzeń rekordów w formularzach

Kolejność zdarzeń formularzy i podformularzy

Kolejność zdarzeń naciśnięć klawiszy i kliknięć myszą

Kolejność zdarzeń raportów i sekcji raportów

Kolejność zdarzeń kontrolek w formularzach

Zdarzenia kontrolek w formularzach występują w przypadku przeniesienia fokusu do kontrolki oraz zmiany i zaktualizowania danych w kontrolce.

Uwaga: W programie Microsoft Office Access nazwy zdarzeń są wyświetlane nieco inaczej w Edytorze Visual Basic niż w arkuszu właściwości i Konstruktorze makr. Na przykład zdarzenie, które w arkuszu właściwości formularza i Konstruktorze makr ma nazwę Przy uzyskaniu fokusu, w Edytorze Visual Basic nosi nazwę GotFocus. W przykładach w tym artykule użyto nazw zdarzeń w formacie języka Visual Basic for Applications (VBA).

Przenoszenie fokusu do kontrolki

W przypadku przeniesienia fokusu do kontrolki w formularzu (na przykład przez otwarcie formularza zawierającego co najmniej jedną aktywną kontrolkę lub przez przeniesienie fokusu do innej kontrolki w tym samym formularzu) zdarzenia Enter i GotFocus występują w następującej kolejności:

Enter strzałka GotFocus

W przypadku otwarcia formularza zdarzenia Enter i GotFocus występują po zdarzeniach skojarzonych z otwarciem formularza (takich jak Open, Activate i Current) w następujące kolejności:

Open (formularz) strzałka Activate (formularz) strzałka Current (formularz) strzałka Enter (kontrolka) strzałka GotFocus (kontrolka)

W przypadku przeniesienia fokusu poza kontrolkę w formularzu (na przykład przez zamknięcie formularza zawierającego co najmniej jedną aktywną kontrolkę lub przejście do innej kontrolki w tym samym formularzu) zdarzenia Exit i LostFocus występują w następującej kolejności:

Exit strzałka LostFocus

W przypadku zamknięcia formularza zdarzenia Exit i LostFocus występują przed zdarzeniami skojarzonymi z zamknięciem formularza (takimi jak Unload, Deactivate i Close) w następującej kolejności:

Exit (kontrolka) strzałka LostFocus (kontrolka) strzałka Unload (formularz) strzałka Deactivate (formularz) strzałka Close (formularz)

Zmienianie i aktualizowanie danych w kontrolce

W przypadku wprowadzenia lub zmiany danych w kontrolce w formularzu, a następnie przeniesienia fokusu do innej kontrolki występują zdarzenia BeforeUpdate i AfterUpdate:

BeforeUpdate strzałka AfterUpdate

Zdarzenia Exit i LostFocus kontrolki, której wartość jest zmieniana, występują po zdarzeniach BeforeUpdate i AfterUpdate:

BeforeUpdate strzałka AfterUpdate strzałka Exit strzałka LostFocus

W przypadku zmiany tekstu w polu tekstowym lub w sekcji pola tekstowego w polu kombi występuje zdarzenie Change. To zdarzenie występuje po każdej zmianie zawartości kontrolki, ale przed przeniesieniem fokusu do innej kontrolki lub innego rekordu (dlatego występują przed zdarzeniami BeforeUpdate i AfterUpdate). Poniżej przedstawiono sekwencję zdarzeń występujących dla każdego naciśniętego klawisza w polu tekstowym lub w sekcji pola tekstowego w polu kombi:

KeyDown strzałka KeyPress strzałka Dirty strzałka Change strzałka KeyUp

Zdarzenie NotInList występuje po wprowadzeniu wartości w polu kombi, którego nie ma na liście pól kombi, i próbie przeniesienia fokusu do innej kontrolki lub innego rekordu. Zdarzenie NotInList występuje po zdarzeniach klawiatury i zdarzeniach Change pola kombi, ale przed zdarzeniami innej kontrolki lub innego formularza. Jeśli dla właściwości LimitToList pola kombi ustawiono wartość Tak, zdarzenie Error formularza występuje bezpośrednio po zdarzeniu NotInList:

KeyDown strzałka KeyPress strzałka Dirty strzałka Change strzałka KeyUp strzałka NotInList strzałka Error

Początek strony

Kolejność zdarzeń rekordów w formularzach

Zdarzenia rekordów w formularzach występują w przypadku przeniesienia fokusu do innego rekordu, zaktualizowania danych w rekordzie, usunięcia istniejącego rekordu lub utworzenia nowego rekordu.

Przenoszenie fokusu do rekordów i aktualizowanie danych w rekordach

W przypadku przeniesienia fokusu do istniejącego rekordu formularza, wprowadzenia lub zmiany danych w rekordzie, a następnie przeniesienia fokusu do innego rekordu w formularzu występuje następującą sekwencja zdarzeń:

Current (formularz) strzałka BeforeUpdate (formularz) strzałka AfterUpdate (formularz) strzałka Current (formularz)

W przypadku opuszczenia rekordu, którego dane zostały zmienione, przed wprowadzeniem następnego rekordu występują zdarzenia Exit i LostFocus dla kontrolki z fokusem. Te zdarzenia występują po zdarzeniach BeforeUpdate i AfterUpdate formularza w następującej kolejności:

BeforeUpdate (formularz) strzałka AfterUpdate (formularz) strzałka Exit (kontrolka) strzałka LostFocus (kontrolka) strzałka RecordExit (formularz) strzałka Current (formularz)

Przenoszenie fokusu między kontrolkami w formularzu powoduje występowanie zdarzeń dla poszczególnych kontrolek. Na przykład poniższa sekwencja zdarzeń występuje w przypadku wykonania następujących działań:

  • Otwarcie formularza i zmiana danych w kontrolce:

    Current (formularz) strzałka Enter (kontrolka) strzałka GotFocus (kontrolka) strzałka BeforeUpdate (kontrolka) strzałka AfterUpdate (kontrolka)

  • Przeniesienie fokusu do innej kontrolki:

    Exit (kontrolka_1) strzałka LostFocus (kontrolka_1) strzałka Enter (kontrolka_2) strzałka GotFocus (kontrolka_2)

  • Przeniesienie fokusu do innego rekordu:

    BeforeUpdate (formularz) strzałka AfterUpdate (formularz) strzałka Exit (kontrolka_2) strzałka LostFocus (kontrolka_2) strzałka RecordExit (formularz) strzałka Current (formularz)

Usuwanie rekordów

W przypadku usunięcia rekordu występują następujące zdarzenia formularza, a w programie Microsoft Office Access jest wyświetlane okno dialogowe z monitem o potwierdzenie usunięcia:

Delete strzałka BeforeDelConfirm strzałka AfterDelConfirm

Jeśli anulujesz zdarzenie Delete, zdarzenia BeforeDelConfirm oraz AfterDelConfirm nie wystąpią i okno dialogowe nie zostanie wyświetlone.

Tworzenie nowego rekordu

W przypadku przeniesienia fokusu do nowego (pustego) rekordu w formularzu, a następnie utworzenia nowego rekordu przez wpisanie danych w kontrolce występuje następująca sekwencja zdarzeń:

Current (formularz) strzałka Enter (kontrolka) strzałka GotFocus (kontrolka) strzałka BeforeInsert (formularz) strzałka AfterInsert (formularz)

Zdarzenia BeforeUpdate i AfterUpdate kontrolek formularza oraz nowego rekordu występują po zdarzeniu BeforeInsert i przed zdarzeniem AfterInsert.

Początek strony

Kolejność zdarzeń formularzy i podformularzy

Zdarzenia formularzy występują w przypadku otwarcia i zamknięcia formularza, przejścia między formularzami lub pracy z danymi w formularzu lub podformularzu.

Otwieranie i zamykanie formularza

W przypadku otwarcia formularza występuje następująca sekwencja zdarzeń formularza:

Open strzałka Load strzałka Resize strzałka Activate strzałka Current

Jeśli w formularzu nie ma aktywnych kontrolek, zdarzenie GotFocus formularza występuje po zdarzeniu Activate, ale przed zdarzeniem Current.

W przypadku zamknięcia formularza występuje następująca sekwencja zdarzeń formularza:

Unload strzałka Deactivate strzałka Close

Jeśli w formularzu nie ma aktywnych kontrolek, zdarzenie LostFocus formularza występuje po zdarzeniu Unload, ale przed zdarzeniem Deactivate.

Przechodzenie między formularzami

W przypadku przełączenia między dwoma otwartymi formularzami występuje zdarzenie Deactivate dla pierwszego formularza i zdarzenie Activate dla drugiego formularza:

Deactivate (formularz_1) strzałka Activate (formularz_2)

Zdarzenie Deactivate formularza występuje również w przypadku przełączenia z formularza do innej karty obiektu w programie Access. Jednak zdarzenie Deactivate nie występuje w przypadku przełączenia do okna dialogowego, do formularza z właściwością PopUp z ustawioną wartością Tak lub do okna w innym programie.

Uwaga:  Zdarzenie Open nie występuje w przypadku przeniesienia fokusu do formularza, który jest już otwarty, nawet jeśli przeniesiono fokus do tego formularza przez wykonanie akcji OtwórzFormularz.

Praca z danymi w formularzu

Zdarzenia formularzy i kontrolek występują w przypadku przechodzenia między rekordami w formularzu i zmiany danych. Na przykład w przypadku otwarcia formularza występuje następująca sekwencja zdarzeń:

Open (formularz) strzałka Load (formularz) strzałka Resize (formularz) strzałka Activate (formularz) strzałka Current (formularz) strzałka Enter (kontrolka) strzałka GotFocus (kontrolka)

Podobnie w przypadku zamknięcia formularza występuje następująca sekwencja zdarzeń:

Exit (kontrolka) strzałka LostFocus (kontrolka) strzałka Unload (formularz) strzałka Deactivate (formularz) strzałka Close (formularz)

Jeśli wprowadzono zmiany danych w kontrolce, zdarzenia BeforeUpdate i AfterUpdate występują dla formularza oraz kontrolki przed zdarzeniem Exit kontrolki.

Praca z podformularzami

W przypadku otwarcia formularza zawierającego podformularz ten podformularz i jego rekordy są ładowane przed formularzem głównym. Dlatego zdarzenia podformularza i jego kontrolek (takie jak Open, Current, Enter i GotFocus) występują przed zdarzeniami formularza. Jednak zdarzenie Activate nie występuje dla podformularzy. Dlatego otwarcie formularza głównego powoduje wyzwolenie zdarzenia Activate tylko dla formularza głównego.

Podobnie w przypadku zamknięcia formularza zawierającego podformularz ten podformularz i jego rekordy są zwalniane po formularzu. Zdarzenie Deactivate nie występuje dla podformularzy. Dlatego zamknięcie formularza głównego powoduje wyzwolenie zdarzenia Deactivate tylko dla formularza głównego. Zdarzenia kontrolek, formularza i podformularza występują w następującej kolejności:

  1. Zdarzenia kontrolek podformularza (takie jak Exit i LostFocus)

  2. Zdarzenia kontrolek formularza (w tym kontrolki podformularza)

  3. Zdarzenia formularza (takie jak Deactivate i Close)

  4. Zdarzenia podformularza

Uwaga:  Zdarzenia podformularza występują po zamknięciu formularza głównego, dlatego nie wystąpią pewne zdarzenia, takie jak anulowanie zamykania formularza głównego w zdarzeniu w podformularzu. Może być konieczne przeniesienie tego typu testów sprawdzania poprawności do zdarzenia w formularzu głównym.

Początek strony

Kolejność zdarzeń naciśnięć klawiszy i kliknięć myszą

Zdarzenia klawiatury występują dla formularzy i kontrolek w przypadku naciskania klawiszy lub wysyłania naciśnięć klawiszy, gdy formularz lub kontrolka ma fokus. Zdarzenia myszy występują w formularzach, sekcjach formularzy i kontrolkach w formularzach w przypadku klikania przycisków myszy, gdy wskaźnik myszy znajduje się w formularzu, sekcji lub kontrolce. Zdarzenia myszy występują także po umieszczeniu wskaźnika myszy na formularzu, sekcji lub kontrolce.

Zdarzenia klawiatury

W przypadku naciśnięcia i zwolnienia klawisza, gdy fokus jest w kontrolce w formularzu, (lub wysłania naciśnięcia klawisza przy użyciu elementu typu instrukcja lub akcji WyślijKlawisze) występuje następująca sekwencja zdarzeń:

KeyDown strzałka KeyPress strzałka KeyUp

W przypadku naciśnięcia i zwolnienia klawisza lub wysłania naciśnięcia klawisza w elemencie typu zestaw znaków ANSI występują zdarzenia KeyDown, KeyPress i KeyUp. W przypadku naciśnięcia i przytrzymania klawisza ANSI zdarzenia KeyDown i KeyPress występują przemiennie (KeyDown, KeyPress, KeyDown, KeyPress itd.) do czasu zwolnienia klawisza — wtedy występuje zdarzenie KeyUp.

W przypadku naciśnięcia i zwolnienia klawisza innego niż ANSI występują zdarzenia KeyDown i KeyUp. W przypadku naciśnięcia i przytrzymania klawisza innego niż ANSI wielokrotnie występuje zdarzenie KeyDown do czasu zwolnienia klawisza — wtedy występuje zdarzenie KeyUp.

Jeśli naciśnięcie klawisza powoduje wyzwolenie innego zdarzenia kontrolki, to zdarzenie występuje po zdarzeniu KeyPress, ale przed zdarzeniem KeyUp. Jeśli na przykład naciśnięcie klawisza powoduje zmianę tekstu w polu tekstowym, co powoduje wyzwolenie zdarzenia Change, występuje następująca sekwencja zdarzeń:

KeyDown strzałka KeyPress strzałka Change strzałka KeyUp

Jeśli naciśnięcie klawisza powoduje przeniesienie fokusu do innej kontrolki, występuje zdarzenie KeyDown dla pierwszej kontrolki, natomiast dla drugiej kontrolki występują zdarzenia KeyPress i KeyUp. Jeśli na przykład zmienisz dane w kontrolce, a następnie naciśniesz klawisz TAB w celu przejścia do następnej kontrolki, wystąpią następujące sekwencje zdarzeń:

  • Pierwsza kontrolka:

    KeyDown strzałka BeforeUpdate strzałka AfterUpdate strzałka Exit strzałka LostFocus

  • Druga kontrolka:

    Enter strzałka GotFocus strzałka KeyPress strzałka KeyUp

Zdarzenia myszy

W przypadku kliknięcia i zwolnienia przycisku myszy, gdy wskaźnik myszy znajduje się na kontrolce w formularzu, występuje następująca sekwencja zdarzeń kontrolki:

MouseDown strzałka MouseUp strzałka Click

Jeśli fokus jest ustawiony w kontrolce i klikniesz inną kontrolkę w celu przeniesienia do niej fokusu, wystąpią następujące sekwencje zdarzeń:

  • Pierwsza kontrolka:

    Exit strzałka LostFocus

  • Druga kontrolka:

    Enter strzałka GotFocus strzałka MouseDown strzałka MouseUp strzałka Click

Jeśli przejdziesz do innego rekordu, a następnie klikniesz kontrolkę, wystąpi też zdarzenie Current formularza przed zdarzeniem Enter kontrolki.

Dwukrotne kliknięcie kontrolki powoduje wystąpienie zdarzeń Click i DblClick. Na przykład dwukrotne kliknięcie kontrolki innej niż przycisk polecenia powoduje wystąpienie następującej sekwencji zdarzeń kontrolki:

MouseD own strzałka MouseUp strzałka Click strzałka DblClick strzałka MouseUp

W przypadku dwukrotnego kliknięcia przycisku polecenia występuje powyższa sekwencja zdarzeń, po której występuje drugie zdarzenie Click.

Zdarzenie MouseMove formularza, sekcji lub kontrolki występuje w przypadku umieszczenia wskaźnika myszy na formularzu, sekcji lub kontrolce. To zdarzenie nie zależy od innych zdarzeń myszy.

Początek strony

Kolejność zdarzeń raportów i sekcji raportów

Zdarzenia raportów i sekcji raportów występują w przypadku otwarcia raportu w celu wydrukowania go lub wyświetlenia jego podglądu albo zamknięcia raportu.

Zdarzenia raportów

W przypadku otwarcia raportu w celu wydrukowania go lub wyświetlenia jego podglądu, a następnie późniejszego zamknięcia raportu lub przejścia do innej karty obiektów w programie Access występuje następująca sekwencja zdarzeń raportu:

Open strzałka Activate strzałka Close strzałka Deactivate

W przypadku przełączenia między dwoma otwartymi raportami występuje zdarzenie Deactivate dla pierwszego raportu i zdarzenie Activate dla drugiego raportu:

Deactivate (raport_1) strzałka Activate (raport_2)

Zdarzenie Deactivate raportu występuje również w przypadku przełączenia z raportu do innej karty obiektu w programie Access. Jednak zdarzenie Deactivate nie występuje w przypadku przełączenia do okna dialogowego, do formularza z właściwością PopUp z ustawioną wartością Tak lub do okna w innym programie.

W przypadku otwarcia raportu opartego na zapytaniu program Access wyzwala zdarzenie Open raportu przed uruchomieniem zapytania. W wyniku tego można ustawić kryteria raportu przy użyciu makra lub procedury zdarzenia odpowiadającej na zdarzenie Open. Na przykład makro lub procedura zdarzenia umożliwia otwarcie niestandardowego okna dialogowego, w którym można wprowadzić kryteria raportu.

Zdarzenia sekcji raportów

W przypadku drukowania raportu lub wyświetlania jego podglądu występują zdarzenia Format i Print sekcji raportu po zdarzeniach Open i Activate raportu oraz przed zdarzeniami Close i Deactivate raportu:

Open (raport) strzałka Activate (raport) strzałka Format (sekcja raportu) strzałka Print (sekcja raportu) strzałka Close (raport) strzałka Deactivate (raport)

Ponadto mogą wystąpić następujące zdarzenia podczas formatowania lub po jego zakończeniu, ale przed zdarzeniem Print:

  • Zdarzenie Retreat występuje w przypadku powrotu programu Access do poprzedniej sekcji podczas formatowania raportu.

  • Zdarzenie NoData występuje w przypadku braku rekordów wyświetlanych w raporcie.

  • Zdarzenie Page występuje po zakończeniu formatowania, ale przed rozpoczęciem drukowania. Za pomocą tego zdarzenia można dostosować wygląd drukowanego raportu.

Początek strony

Rozwijaj umiejętności związane z pakietem Office
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów pakietu Office

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×