Često se dešava da vam prilikom formiranja izveštaja u Access-u trebaju samo selektivni podaci. Jedno od rešenja je da upitom ograničite broj podataka za prikaz, u recimo nekom izveštaju (Report), ali na ovaj način ne omogućavate korisnicima da oni sami izaberu šta im treba od podataka. Jedno od rešenja je korišćenje multi-select listbox-a, i na taj način omogućavanje višestrukog izbora podataka. Na primer, postavićemo na formu jedan listbox i osobinu „Multi Select“ ćemo postaviti na Simple. Pored ove liste ćemo postaviti dugme koje će pozivati izvršenje upita, a zatim je moguće i generisanje izveštaja. Kriterijumi upita će da se popunjavati uz pomoć izabranih stavki iz listbox-a. Ubacite sledeći VBA kod u događaj „Click“ dugmeta:
Private Sub btn_Upit_Click()
Dim stavka As Variant
Dim strSta As String
Dim strZarez As String
Dim strSQL As String
Dim upit As QueryDefstrSta = „“: strZarez = „,“
For Each stavka In Me!Lista.ItemsSelected
strSta = strSta & Me!Lista.ItemData(index)
strSta = strSta & strZarez
Next stavkaMe!txtCriteria = CStr(Left$(strSta, Len(strSta) – Len(strZarez)))
Set upit = CurrentDb.QueryDefs(„qryVisestrukiUpit“)strSQL = „SELECT * “
strSQL = strSQL & „FROM Radnik WHERE MBR“
strSQL = strSQL & “ IN (“ & Me!txtCriteria & „)“upit.SQL = strSQL
upit.Close
DoCmd.OpenQuery „qryMultiSelTest“
End Sub
Šta se ovde dešava? Pa prvo formiramo kriterijum od stavki iz liste i smeštamo ga u varijablu „strSta“. Potom, čisto radi informacije korisniku, u tekst polju „txtCriteria“ prikazujemo šta je sve izabrano. Onda definišemo SQL upit i prosleđujemo ga na izvršenje.
Pratite Krstaricu na www.krstarica.com