Za pomocą akcji makra GoToControl w bazach danych programu Access dla komputerów stacjonarnych i aplikacjach sieci Web programu Access można przenieść fokus do określonych pole lub kontrolka w bieżącej rekord otwartego formularz, formularza arkusz danych, arkusza danych tabeli lub arkusza danych zapytania. Tej akcji można użyć, gdy chcesz, aby określone pole lub kontrolka miały fokus. To pole lub kontrolka mogą być następnie używane do porównywania lub akcji ZnajdźRekord . Tej akcji można także używać do nawigowania w formularzu zgodnie z określonymi warunkami. Jeśli na przykład użytkownik wprowadzi wartość Nie w kontrolce Żonaty w formularzu ubezpieczenia zdrowotnego, fokus może automatycznie pominąć kontrolkę Imię i nazwisko współmałżonka i przejść do następnej kontrolki.
Ustawienie
Akcja GoToControl ma następujący argument.
Argument akcji |
Opis |
Nazwa kontrolki |
Wpisz nazwę pola lub kontrolki, w której chcesz umieścić fokus. Jest to argument wymagany. Uwaga: Wprowadź w argumacie Nazwa kontrolki tylko nazwę pola lub kontrolki, a nie w pełni kwalifikowany identyfikator, taki jak [Formularze]! [Produkty]! [Identyfikator produktu], jeśli korzystasz z bazy danych programu Access dla komputerów stacjonarnych. |
Uwagi
Nie można użyć akcji makra GoToControl w celu przeniesienia fokusu do kontrolki w ukrytym formularzu.
Porada: Za pomocą akcji makra GoToControl możesz przejść do podformularz, który jest typem kontrolki. Następnie możesz użyć akcji GoToRecord, aby przejść do określonego rekordu w podformularzu. Możesz również przejść do kontrolki na podformularz, używając akcji GoToControl w celu przejścia najpierw do podformularza, a następnie do kontrolki w podformularzu.
Aby uruchomić akcję GoToControl w module Visual Basic for Applications (VBA), użyj metody GoToControl obiektu DoCmd. Możesz również użyć metody SetFocus , aby przenieść fokus do kontrolki w formularzu lub dowolnym z jej podformularzy albo do pola w otwartej tabeli, zapytaniu lub arkuszu danych formularza.
Przykłady
Ustawianie wartości kontrolki przy użyciu makra
Poniższe makro powoduje otwarcie formularza Dodaj produkty z poziomu przycisku w formularzu Dostawcy. Pokazuje ono użycie akcji Echo, Close, OpenForm, SetValue i GoToControl . Akcja SetValue (UstawWartość ) ustawia w formularzu Produkty kontrolę Identyfikator dostawcy na bieżącego dostawcę w formularzu Dostawcy. Akcja GoToControl przenosi fokus do pola Identyfikator kategorii, w którym można rozpocząć wprowadzanie danych dla nowego produktu. To makro powinno zostać dołączone do przycisku Dodaj produkty w formularzu Dostawcy.
Akcja |
Argumenty: ustawienie |
Komentarz |
Echo |
Echo włączone: Nie |
Zatrzymaj aktualizowanie ekranu, gdy makro jest uruchomione. |
Zamknij |
Typ obiektu: Formularz Nazwa obiektu: Lista produktów Zapisz: Nie |
Zamknij formularz Lista produktów. |
OtwórzFormularz |
Nazwa formularza: Produkty Widok: Formularz Tryb danych: Dodaj Tryb okna: Normalny |
Otwórz formularz Produkty. |
Setvalue |
Element: [Formularze]! [Produkty]! [ID_dostawcy] Wyrażenie: ID_dostawcy |
Ustaw kontrolki Identyfikator dostawcy dla bieżącego dostawcy w formularzu Dostawcy. |
PrzejdźDoKontrolki |
Nazwa kontrolki: Identyfikator kategorii |
Przejdź do kontrolki Identyfikator kategorii. |
Sprawdzanie poprawności danych przy użyciu makra
Poniższe makro sprawdza poprawność kodów pocztowych wprowadzonych w formularzu Dostawcy. Pokazuje ono użycie akcji StopMacro, MessageBox, CancelEvent i GoToControl . Wyrażenie warunkowe sprawdza kraj/region oraz kod pocztowy, które wprowadzono w rekordzie w formularzu. Jeśli kod pocztowy nie jest w formacie odpowiednim dla kraju/regionu, makro powoduje wyświetlenie okna komunikatu i anuluje zapisanie rekordu. Następnie makro powróci do kontrolki Kod pocztowy, gdzie można poprawić błąd. To makro powinno być dołączone do właściwości PrzedAktualizacją formularza Dostawcy.
Warunek |
Akcja |
Argumenty: ustawienie |
Komentarz |
Jeśli IsNull([KrajRegion]) |
ZatrzymajMakro |
Jeśli pole KrajRegion ma wartość Null, nie można sprawdzić poprawności kodu pocztowego. |
|
Jeśli [KrajRegion] In ("Francja";"Włochy";"Hiszpania") And Len([Kod pocztowy]) <> 5 |
Messagebox |
Komunikat: Kod pocztowy musi zawierać 5 znaków. SygnalizujDźwiękiem: Tak Typ: Informacje Tytuł: Błąd kodu pocztowego |
Wyświetl komunikat, jeśli kod pocztowy nie jest 5-znakowy. |
AnulujZdarzenie |
Anuluj zdarzenie. |
||
PrzejdźDoKontrolki |
Nazwa kontrolki: Kod Pocztowy |
||
If [CountryRegion] In ("Australia","Singapore") And Len([Kod pocztowy]) <> 4 |
Messagebox |
Komunikat: Kod pocztowy musi zawierać 4 znaki. SygnalizujDźwiękiem: Tak Typ: Informacje Tytuł: Błąd kodu pocztowego |
Wyświetl komunikat, jeśli kod pocztowy nie jest 4-znakowy. |
AnulujZdarzenie |
Anuluj zdarzenie. |
||
PrzejdźDoKontrolki |
Nazwa kontrolki: Kod Pocztowy |
||
If ([KrajRegion] = "Kanada") And ([Kod pocztowy] Not Like"[A-Z][0-9][A-Z] [0-9][A-Z][0-9]") |
Messagebox |
Komunikat: Kod pocztowy jest nieprawidłowy. Przykładowy kod dla Kanady: H1J 1C3 SygnalizujDźwiękiem: Tak Typ: Informacje Tytuł: Błąd kodu pocztowego |
Wyświetl komunikat, jeśli kod pocztowy nie jest kodem właściwym dla Kanady. (Przykładowy kod dla Kanady: H1J 1C3) |
AnulujZdarzenie |
Anuluj zdarzenie. |