Za pomocą akcji makra SearchForRecord w bazach danych programu Access dla komputerów stacjonarnych można wyszukać określony rekord w tabeli, zapytaniu, formularzu lub raporcie.
Ustawienie
Akcja makra SearchForRecord ma następujące argumenty.
Argument akcji |
Opis |
||||||||||
Typ obiektu |
Wprowadź lub wybierz typ wyszukiwanego obiektu bazy danych. Możesz wybrać pozycję Tabela, Zapytanie, Formularz lub Raport. |
||||||||||
Nazwa obiektu |
Wprowadź lub zaznacz określony obiekt zawierający rekord do wyszukania. Lista rozwijana zawiera wszystkie obiekty bazy danych typu wybranego dla argumentu Typ obiektu . |
||||||||||
Nagrywanie |
Określ punkt początkowy i kierunek wyszukiwania.
|
||||||||||
Warunek WHERE |
Wprowadź kryteria wyszukiwania, używając tej samej składni co klauzula WHERE języka SQL, tylko bez wyrazu "WHERE". Na przykład: Description = "Beverages" Aby utworzyć kryterium zawierające wartość z pola tekstowego w formularzu, należy utworzyć wyrażenie, które łączy pierwszą część kryterium z nazwą pola tekstowego zawierającego wartość do przeszukania. Na przykład poniższe kryterium przeszuka pole Opis dla wartości w polu tekstowym o nazwie txtDescription w formularzu o nazwie frmCategories. Zwróć uwagę na znak równości (=) na początku wyrażenia i użycie cudzysłowów pojedynczych (') po obu stronach odwołania do pola tekstowego: ="Description = '" & Forms![frmCategories]![txtDescription] & "'" |
Uwagi
-
W przypadkach, gdy więcej niż jeden rekord spełnia kryteria argumentu Warunek Where , następujące czynniki określają, który rekord został znaleziony:
-
Ustawienie argumentu Record (Rekord ) Zobacz tabelę w sekcji Ustawienia, aby uzyskać więcej informacji na temat argumentu Record (Rekord ).
-
Kolejność sortowania rekordów Jeśli na przykład dla argumentu Record (Rekord ) ustawiono wartość First (Pierwszy), zmiana kolejności sortowania rekordów może spowodować zmianę znalezionego rekordu.
-
-
Obiekt określony w arguencie Nazwa obiektu musi być otwarty przed uruchomieniem tej akcji. W przeciwnym razie wystąpi błąd.
-
Jeśli kryteria argumentu Warunek Where nie są spełnione, nie występuje błąd, a fokus pozostaje na bieżącym rekordzie.
-
Podczas wyszukiwania poprzedniego lub następnego rekordu wyszukiwanie nie jest "zawijane", gdy dotrze do końca danych. Jeśli nie ma żadnych dalszych rekordów spełniających kryteria, nie występuje błąd, a fokus pozostaje na bieżącym rekordzie. Aby potwierdzić, że znaleziono dopasowanie, możesz wprowadzić warunek następnej akcji i sprawić, że warunek będzie taki sam jak warunek w argumacie Warunek Where .
-
Aby uruchomić akcję SearchForRecord w module VBA, użyj metody SearchForRecord obiektu DoCmd .
-
Akcja makra SearchForRecord jest podobna do akcji makra ZnajdźRekord, ale funkcja SearchForRecord ma bardziej zaawansowane funkcje wyszukiwania. Akcja makra ZnajdźRekord jest używana przede wszystkim do znajdowania ciągów i duplikuje funkcjonalność okna dialogowego Znajdowanie . W akcji makra SearchForRecord są używane kryteria, które są bardziej podobne do kryteriów filtru lub zapytania SQL. Na poniższej liście przedstawiono niektóre czynności, które można wykonać za pomocą akcji makra SearchForRecord :
-
W arguście Warunek Where można użyć kryteriów złożonych, takich jak
-
Opis = "Napoje" i Identyfikator Kategorii = 11
-
Można odwoływać się do pól znajdujących się w źródle rekordów formularza lub raportu, ale nie są wyświetlane w formularzu ani raporcie. W powyższym przykładzie, aby kryteria działały, ani Description , ani CategoryID nie muszą być wyświetlane w formularzu ani raporcie.
-
Można używać operatorów logicznych, takich jak <, >, ORAZ, LUB i BETWEEN. Akcja ZnajdźRekord jest zgodna tylko z ciągami, które są równe, rozpoczynają się od wyszukiwanego ciągu lub zawierają go.
Przykład
Poniższe makro najpierw otwiera tabelę Kategorie przy użyciu akcji Otwórz_tabelę . Następnie makro używa akcji makra SearchForRecord w celu znalezienia pierwszego rekordu w tabeli, w którym pole Opis jest równe "Napoje".
Akcja |
Argumenty |
OpenTable |
Nazwa tabeli: Kategorie Widok: arkusz danych Tryb danych: Edytuj |
SearchForRecord |
Typ obiektu: Tabela Nazwa obiektu: Kategorie Nagraj: Pierwszy Warunek Where: Opis = "Napoje" |