tento přístupový tutoriál vysvětluje, jak vytvořit vyhledávací formulář s více kritérii.

můžete si také přečíst:

přístup k DoCmd.Metoda OpenForm pro otevření přístupového formuláře

přístupová hodnota pole závisí na jiném políčku

návratový přístupový formulář vstup pro přístup ke zprávě nebo formuláři nebo dotazu

přístup vytvořte vyhledávací formulář s více kritérii

někdy je třeba vytvořit vyhledávací formulář, kde si uživatelé mohou vybrat konkrétní kritéria. Nejjednodušším řešením je přímé filtrování dat pro každé pole, jako je použití Autofilteru v aplikaci Excel, ale to není vůbec elegantní.

Access poskytuje funkci formuláře nazvanou Filtr podle formuláře, která se velmi snadno používá.

vyberte tabulku / dotaz > vytvořit > formulář > použít filtr / řazení

access_search_form_11

nyní můžete vybrat více kritérií, můžete dokonce vybrat hodnotu z rozevíracího pole. Tyto hodnoty rozevíracích polí jsou však na sobě nezávislé.

můžete také použít nebo kritéria kliknutím na kartu Or.

access_search_form_12

po dokončení výběru klikněte na Přepnout filtr

access_search_form_13

lepší způsob, jak provést filtrování, je, aby si uživatelé mohli vybrat ze závislých rozevíracích polí.

například v prvním rozevíracím seznamu uživatelé zvolí oddělení A a poté ve druhém rozevíracím seznamu mohou uživatelé zobrazit seznam osob oddělení a.

tento článek vám ukáže, jak takové filtrování provést.

Vytvořte výsledný formulář

Předpokládejme, že máme dotaz, jak je uvedeno níže. Naším cílem je umožnit uživatelům vybrat oddělení pro zobrazení informací o zaměstnancích nebo vybrat oddělení + ID zaměstnance.

vytvoříme „formulář výsledku“, který zobrazí výsledek vyhledávání.

Dotaz1
oddělení ID zaměstnance datum zaměstnání plat příspěvek
účet 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
mzdy 5 1/1/2004 50000 500
HR 6 1/1/2005 60000 600

klikněte na dotaz a pod záložkou vytvořit, Vyberte další formuláře > DataSheet

access_search_form

Nyní uložte formulář jako result_frm. V případě, že byste omylem změnili výsledná data, měli byste změnit uzamčenou vlastnost každého textového pole na Ano

access_search_form_04

v tomto příkladu chci vrátit všechna pole Query1 ve formě výsledku. Volím evidenci, protože každý záznam může být zobrazen v jednom řádku s vodorovným posuvníkem. Nechci používat spojitý formulář nebo jeden formulář, protože každý záznam je zobrazen v několika řádcích.

Vytvořte vyhledávací formulář

vytvořte prázdný formulář a poté přidejte dvě pole se seznamem (Combo_Dept, Combo_EmpID) a jedno tlačítko (search_btn), jak je uvedeno níže.

access_search_form_05

1) Klikněte na Combo_Dept, do vlastnosti zdroj řádku zadejte

SELECT DISTINCT Department FROM Query1;

zdroj řádku je to, co můžete vybrat v comboboxu.

2) Klikněte na Combo_EmpID, v řádku zdroj vlastnost, Typ

SELECT FROM Query1 WHERE =!!;

3) Vyberte Combo_Dept, vyberte po události aktualizace a vytvořte níže uvedený postup

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

když vyberete oddělení, Combo_EmpID se resetuje na Null a poté znovu spustí dotaz

4) Klikněte pravým tlačítkem myši na search_btn a poté zvolte 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

Nyní jste úspěšně vytvořili jednoduchý vyhledávací formulář. Poté, co jste vybrali kritéria ve vyhledávacím formuláři, jakmile kliknete na tlačítko Hledat, zobrazí se formulář výsledku a zobrazí výsledek.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.