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
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.
po zakończeniu wyboru kliknij przycisk Przełącz Filtr
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.
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
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
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.
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.