denne Adgangsvejledning forklarer, hvordan du opretter en søgeformular med flere kriterier.
du kan også læse:
adgang DoCmd.Openform metode til at åbne Access formular
Access kombinationsboks værdi afhænger af en anden kombinationsboks
Return Access formular input til Access rapport eller Formular eller forespørgsel
Access Opret søgeformular med flere kriterier
nogle gange skal du oprette en søgeformular, hvor brugerne kan vælge specifikke kriterier. Den enkleste løsning er at filtrere data direkte for hvert felt, som f.eks.
Access giver en Formfunktion kaldet Filter efter formular, som er meget nem at bruge.
vælg en tabel / forespørgsel > Opret > Form > Anvend Filter / Sorter
nu kan du vælge flere kriterier, du kan endda vælge en værdi fra rullemenuen. Men disse værdier af rullemenuen er uafhængige af hinanden.
du kan også bruge eller kriterier ved at klikke på fanen eller.
når du vælger er færdig, klik på Toggle Filter
en bedre måde at filtrere på er, at brugerne kan vælge mellem afhængige rullemenuer.
for eksempel i den første rullemenu vælger brugerne afdeling A, og derefter i den anden rullemenu kan brugerne se en liste over person i afdeling A.
denne artikel viser dig, hvordan du gør sådan filtrering.
Opret en resultatformular
Antag, at vi har en forespørgsel som nedenfor. Vores mål er at give brugerne mulighed for at vælge afdeling for at vise medarbejderoplysninger eller vælge afdeling + medarbejder-ID.
vi skal lave en “resultatformular”, der viser søgeresultatet.
afdeling | medarbejder-ID | Ansættelsesdato | løn | godtgørelse |
---|---|---|---|---|
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 |
Klik på forespørgslen og fanen under Opret, Vælg flere formularer > dataark
Gem nu formularen som result_frm. Hvis du ved et uheld ændrer resultatdataene, skal du ændre den låste egenskab for hvert tekstfelt til Ja
i dette eksempel vil jeg returnere alle felter i Forespørgsel1 i Resultatform. Jeg vælger dataark, fordi hver post kan vises i en række med vandret rullepanel. Jeg foretrækker ikke at bruge kontinuerlig Form eller enkelt Form, fordi hver post vises i flere rækker.
Opret en søgeformular
Opret en tom formular, og tilføj derefter to kombinationsbokse (Combo_Dept, Combo_EmpID) og en knap (search_btn) som vist nedenfor.
1) klik på Combo_Dept, i egenskaben Rækkekilde, skriv
SELECT DISTINCT Department FROM Query1;
Rækkekilde er det, du kan vælge i kombinationsfeltet.
2) Klik på Combo_EmpID i egenskaben Rækkekilde, skriv
SELECT FROM Query1 WHERE =!!;
3) Vælg Combo_Dept, vælg efter Opdateringshændelse og opbyg nedenstående Procedure
Private Sub Combo_Dept_AfterUpdate() Me.Combo_EmpID = Null Me.Combo_EmpID.RequeryEnd Sub
når du vælger en afdeling, nulstilles Combo_EmpID til Null og kører derefter forespørgslen
4) Højreklik på search_btn og vælg derefter 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 har du oprettet en simpel søgeformular. Når du har valgt kriterier i søgeformularen, når du klikker på søgeknappen, vises Resultatformularen og viser resultatet.