ten samouczek dostępu wyjaśnia, jak utworzyć formularz wyszukiwania z wieloma kryteriami.

Możesz również przeczytać:

dostęp do DoCmd.Metoda OpenForm, aby otworzyć formularz dostępu

wartość pola wyboru Access zależy od innego pola wyboru

Return access form input to Access Report or Form or Query

Access create search Form with multiple criteria

czasami trzeba utworzyć formularz wyszukiwania, w którym użytkownicy mogą wybrać określone kryteria. Najprostszym rozwiązaniem jest bezpośrednie filtrowanie danych dla każdego pola, jak przy użyciu autofiltra w Excelu, ale to nie jest eleganckie.

dostęp zapewnia funkcję formularza o nazwie Filtruj po formularzu, która jest bardzo łatwa w użyciu.

Wybierz tabelę / zapytanie > Utwórz > formularz > Zastosuj filtr / Sortuj

access_search_form_11

teraz możesz wybrać wiele kryteriów, możesz nawet wybrać wartość z rozwijanej listy. Jednak te wartości rozwijanych pól są niezależne od siebie.

możesz również użyć kryteriów Or, klikając kartę Or.

access_search_form_12

po zakończeniu wyboru kliknij przycisk Przełącz Filtr

access_search_form_13

lepszym sposobem na filtrowanie jest wybranie przez użytkowników niezależnych rozwijanych pól.

na przykład w pierwszym rozwijanym polu użytkownicy wybierają dział A, a następnie w drugim rozwijanym polu użytkownicy mogą wyświetlić listę osób z działu A.

ten artykuł pokaże Ci, jak wykonać takie filtrowanie.

Utwórz formularz wyniku

Załóżmy, że mamy zapytanie jak poniżej. Naszym celem jest umożliwienie użytkownikom wyboru działu, aby pokazać informacje o pracownikach, lub wybierz dział + identyfikator pracownika.

mamy zamiar zrobić „formularz wyników”, który pokazuje wynik wyszukiwania.

Zapytanie1
Dział identyfikator pracownika Data zatrudnienia wynagrodzenie dodatek
konto 1 1/1/2000 10000 100
Admin 2 1/1/2001 20000 200
Admin 3 1/1/2002 30000 300
Admin 4 1/1/2003 40000 400
Payroll 5 1/1/2004 50000 500
HR 6 1/1/2005 60000 600

Kliknij Zapytanie i w zakładce Utwórz, wybierz Więcej formularzy > Arkusz danych

access_search_form

teraz zapisz formularz jako result_frm. W przypadku przypadkowej zmiany danych wynikowych, należy zmienić zablokowaną właściwość każdego pola tekstowego na tak

access_search_form_04

w tym przykładzie chcę zwrócić wszystkie pola zapytania 1 w postaci wyniku. Wybieram Arkusz danych, ponieważ każdy rekord może być wyświetlany w jednym wierszu z poziomym paskiem przewijania. Nie wolę używać formy ciągłej lub pojedynczej, ponieważ każdy rekord jest wyświetlany w kilku wierszach.

Utwórz formularz wyszukiwania

Utwórz pusty formularz, a następnie dodaj dwa pola kombi (Combo_Dept, Combo_EmpID) i jeden przycisk (search_btn), jak pokazano poniżej.

access_search_form_05

1) Kliknij Combo_Dept, we właściwości Row Source wpisz

SELECT DISTINCT Department FROM Query1;

źródło wiersza jest tym, co możesz wybrać w Comboboxie.

2) Kliknij na Combo_EmpID, w wierszu źródło właściwości, wpisz

SELECT FROM Query1 WHERE =!!;

3) Wybierz Combo_Dept, wybierz po zdarzeniu aktualizacji i zbuduj poniższą procedurę

Private Sub Combo_Dept_AfterUpdate() Me.Combo_EmpID = Null Me.Combo_EmpID.RequeryEnd Sub

podczas wybierania działu, Combo_EmpID jest resetowany do Null, a następnie ponownie uruchom zapytanie

4) Kliknij prawym przyciskiem myszy na search_btn, a następnie wybierz Build Event

Private Sub search_btn_Click() If IsNull(Me.Combo_EmpID) Then searchCriteria = "='" & Me.Combo_Dept & "'" searchSQL = "Select * FROM Query1 where " & searchCriteria Else searchCriteria = "='" & Me.Combo_Dept & "' AND =" & Me.Combo_EmpID searchSQL = "Select * FROM Query1 where " & searchCriteria End If DoCmd.OpenForm "result_frm", 3, searchSQLEnd Sub

teraz udało Ci się utworzyć prosty formularz wyszukiwania. Po wybraniu kryteriów w formularzu wyszukiwania, po kliknięciu przycisku szukaj, pojawi się formularz wyniku i wyświetli wynik.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.