tämä Käyttöoikeustutoriaali kertoo, miten hakulomake luodaan useilla kriteereillä.
kannattaa myös lukea:
Access DoCmd.OpenForm Method to open Access Form
Access yhdistelmäruudun arvo riippuu toisesta yhdistelmäruudusta
Return Access Form input to Access Report or Form or question
Access create search Form with multiple criteria
joskus sinun täytyy luoda hakulomake, jossa käyttäjät voivat valita tietyt kriteerit. Yksinkertaisin ratkaisu on suodattaa jokaisen kentän tiedot suoraan, kuten Autofilterin käyttäminen Excelissä, mutta tämä ei ole lainkaan eleganttia.
Access tarjoaa Muotofunktion nimeltä Filter by Form, joka on erittäin helppokäyttöinen.
Valitse Taulukko/Query > luo > lomake > Käytä suodatinta / Lajittelu
nyt voit valita useita kriteereitä, voit jopa valita arvon avattavasta laatikosta. Pudotusrasioiden arvot ovat kuitenkin toisistaan riippumattomia.
voit käyttää tai kriteereitä myös klikkaamalla or-välilehteä.
kun valinta on tehty, napsauta Toggle Filter
parempi tapa tehdä suodatus on, että käyttäjät voivat valita riippuvaisista pudotusvalikoista.
esimerkiksi ensimmäisessä pudotusvalikossa käyttäjät valitsevat osaston A, ja sitten toisessa pudotusvalikossa käyttäjät voivat tarkastella listan osaston A henkilöistä.
tässä artikkelissa näytetään, miten tällainen suodatus tehdään.
luo tulosmuoto
Oletetaan, että meillä on kysely kuten alla. Tavoitteenamme on antaa käyttäjien valita osasto näyttää työntekijän tiedot, tai valitse osasto + työntekijän tunnus.
teemme” tuloslomakkeen”, joka näyttää hakutuloksen.
osasto | henkilötunnus | työaika | palkka | avustus |
---|---|---|---|---|
tili | 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 |
palkanlaskenta | 5 | 1/1/2004 | 50000 | 500 |
HR | 6 | 1/1/2005 | 60000 | 600 |
Napsauta kyselyä ja Luo-välilehteä, valitse Lisää lomakkeita > datalehti
Tallenna lomake nyt result_frm. Jos muuttaisit vahingossa tulostietoja, sinun tulisi muuttaa jokaisen tekstiruudun lukittu ominaisuus muotoon Kyllä
tässä esimerkissä haluan palauttaa kaikki kentät Query1 Tulosmuodossa. Valitsen datalehden, koska jokainen tietue voidaan näyttää yhdellä rivillä vaakasuuntaisella vierityspalkilla. En halua käyttää jatkuvaa lomaketta tai yksittäistä lomaketta, koska jokainen levy näkyy useassa rivissä.
luo hakulomake
Luo tyhjä lomake ja lisää sitten kaksi Yhdistelmäruutua (Combo_Dept, Combo_EmpID) ja yksi painike (search_btn) alla esitetyllä tavalla.
1) Napsauta Combo_Dept, rivin Lähdeominaisuudessa kirjoita
SELECT DISTINCT Department FROM Query1;
rivin lähde on mitä voit valita Comboboxissa.
2) Klikkaa Combo_EmpID, rivillä Lähdeomaisuus, tyyppi
SELECT FROM Query1 WHERE =!!;
3) Valitse Combo_Dept, valitse Päivitystapahtuman jälkeen ja rakenna alla oleva menettely
Private Sub Combo_Dept_AfterUpdate() Me.Combo_EmpID = Null Me.Combo_EmpID.RequeryEnd Sub
kun valitset osaston, Combo_EmpID nollataan ja lähetetään kysely uudelleen
4) napsauta hiiren kakkospainikkeella search_btn-painiketta ja valitse Rakenna tapahtuma
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
nyt olet onnistuneesti luonut yksinkertaisen hakulomakkeen. Kun olet valinnut kriteerit hakulomakkeessa, kun napsautat haku-painiketta, Tuloslomake avautuu ja näyttää tuloksen.