denna tillgång handledning förklarar hur man skapar ett sökformulär med flera kriterier.

du kanske också vill läsa:

Access DoCmd.OpenForm-metod för att öppna Access-formulär

Access Combo Box-värdet beror på en annan kombinationsruta

Return Access-Formulärinmatning för att komma åt rapport eller formulär eller Fråga

Access skapa sökformulär med flera kriterier

ibland måste du skapa ett sökformulär där användare kan välja specifika kriterier. Den enklaste lösningen är att direkt filtrera data för varje fält som att använda AutoFilter i Excel, men det är inte elegant alls.

Access tillhandahåller en Formfunktion som kallas Filter by Form som är mycket lätt att använda.

välj en tabell / fråga > skapa > Form > Använd Filter / Sortera

access_search_form_11

nu kan du välja flera kriterier, du kan även välja ett värde från rullgardinsmenyn. Men dessa värden på rullgardinsrutor är oberoende av varandra.

du kan också använda eller kriterier genom att klicka på fliken eller.

access_search_form_12

när du väljer är klar, klicka på Toggle Filter

access_search_form_13

ett bättre sätt att göra filtrering är för användare att välja mellan beroende rullgardinsrutor.

till exempel i den första rullgardinsmenyn väljer användare avdelning A, och sedan i den andra rullgardinsmenyn kan användare visa en lista över person i avdelning A.

den här artikeln visar hur du gör sådan filtrering.

skapa ett resultatformulär

Antag att vi har en fråga enligt nedan. Vårt mål är att tillåta användare att välja avdelning för att visa medarbetarinformation, eller välj avdelning + anställd ID.

vi kommer att göra en ”resultatform” som visar sökresultatet.

Fråga1
avdelning anställd ID anställningsdatum lön ersättning
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
lön 5 1/1/2004 50000 500
HR 6 1/1/2005 60000 600

klicka på frågan och under fliken Skapa, Välj fler formulär > datablad

access_search_form

spara nu formuläret som result_frm. Om du av misstag skulle ändra resultatdata bör du ändra den låsta egenskapen för varje textruta till Ja

access_search_form_04

i det här exemplet vill jag returnera alla fält av Query1 i Resultatform. Jag väljer datablad eftersom varje post kan visas i en rad med horisontell rullningslist. Jag föredrar inte att använda kontinuerlig Form eller enstaka Form eftersom varje post visas i flera rader.

skapa ett sökformulär

skapa ett tomt formulär och lägg sedan till två kombinationsrutor (Combo_Dept, Combo_EmpID) och en knapp (search_btn) som visas nedan.

access_search_form_05

1) Klicka på Combo_Dept, i egenskapen Radkälla, skriv

SELECT DISTINCT Department FROM Query1;

Radkälla är vad du kan välja i kombinationsrutan.

2) Klicka på Combo_EmpID, i raden Källegenskap, skriv

SELECT FROM Query1 WHERE =!!;

3) Välj Combo_Dept, välj efter Uppdateringshändelse och bygg nedanstående procedur

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

när du väljer en avdelning återställs Combo_EmpID till Null och kör sedan frågan

4) Högerklicka på search_btn och välj sedan Bygghändelse

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

nu har du skapat ett enkelt sökformulär. När du har valt kriterier i sökformuläret, när du klickar på sökknappen, kommer Resultatformuläret att dyka upp och visar resultatet.

Lämna ett svar

Din e-postadress kommer inte publiceras.