deze Toegangshandleiding legt uit hoe u een zoekformulier met meerdere criteria maakt.
mogelijk wilt u ook lezen:
Access DoCmd.OpenForm Method to open Access Form
Access Combo Box waarde hangt af van een andere Combo Box
retourneer Access Form input to Access Report or Form or Query
Access zoekformulier aanmaken met meerdere criteria
soms moet u een zoekformulier maken waarin gebruikers specifieke criteria kunnen selecteren. De eenvoudigste oplossing is om gegevens voor elk veld direct te filteren, zoals het gebruik van AutoFilter in Excel, maar dit is helemaal niet elegant.
Access biedt een Vormfunctie genaamd Filter by Form die zeer eenvoudig te gebruiken is.
selecteer een tabel / Query > maak > formulier > filter/sorteren toepassen
nu kunt u meerdere criteria selecteren, U kunt zelfs een waarde selecteren uit de vervolgkeuzelijst. Maar die waarden van dropdown boxes zijn onafhankelijk van elkaar.
u kunt ook Or criteria gebruiken door op het tabblad Or te klikken.
wanneer u de selectie gedaan is, klikt u op Toggle Filter
een betere manier om te filteren is voor gebruikers om te kiezen uit afhankelijke dropdown dozen.
bijvoorbeeld, in het eerste keuzevakje kiezen gebruikers afdeling A, en vervolgens in het tweede keuzevakje kunnen gebruikers een lijst met personen van afdeling A.
bekijken Dit artikel laat u zien hoe u een dergelijke filtering uitvoert.
Maak een resultaatformulier
neem aan dat we een zoekopdracht hebben zoals hieronder. Ons doel is om gebruikers in staat te stellen afdeling te selecteren om werknemersinformatie te tonen, of selecteer afdeling + werknemer-ID.
we gaan een “resultaatformulier” maken dat het zoekresultaat toont.
Afdeling | Werknemer-ID | Werkgelegenheid Datum | Salaris | – Uitkering |
---|---|---|---|---|
Account | 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 |
Klik op de Query en de onder tabblad Maken, selecteer Meer Formulieren > DataSheet
Nu sla het Formulier op als result_frm. In het geval dat u per ongeluk de resultaatgegevens zou wijzigen, moet u de vergrendelde eigenschap van elk tekstvak wijzigen in ja
In dit voorbeeld wil ik alle velden van Query1 in Resultaatvorm retourneren. Ik kies DataSheet omdat elke record kan worden weergegeven in een rij met horizontale schuifbalk. Ik heb niet de voorkeur aan continue vorm of enkele vorm te gebruiken, omdat elke record wordt weergegeven in meerdere rijen.
Maak een zoekformulier
Maak een leeg formulier aan en voeg twee keuzelijsten (Combo_Dept, Combo_EmpID) en één knop (search_btn) toe, zoals hieronder getoond.
1) klik op Combo_Dept, in de rij bron eigenschap, type
SELECT DISTINCT Department FROM Query1;
Rij bron is wat u kunt selecteren in de ComboBox.
2) Klik op Combo_EmpID, in de rij bron eigenschap, type
SELECT FROM Query1 WHERE =!!;
3) Selecteer Combo_Dept, selecteer na Update Event en bouw de onderstaande Procedure
Private Sub Combo_Dept_AfterUpdate() Me.Combo_EmpID = Null Me.Combo_EmpID.RequeryEnd Sub
Als u een afdeling selecteert, wordt Combo_EmpID gereset naar Null en voer de query opnieuw uit
4) Klik met de rechtermuisknop op search_btn en kies 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
Nu u een eenvoudig zoekformulier hebt aangemaakt. Nadat u criteria hebt geselecteerd in het zoekformulier, zodra u op de knop Zoeken klikt, verschijnt het Resultaatformulier en wordt het resultaat weergegeven.