Access – Filtriranje izveštaja

U sledećem primeru videćemo kako možete da u vlastitim Access aplikacijama ugradite mogućnost filtriranja izveštaja, pre štampanja ili prikaza na ekranu. Ovom opcijom će korisnici vaših programa moći da sami odrede šta treba da se pojavi u izveštaju, a šta ne. U stvari, aplikacija će „pitati“ korisnika za vrednost koju ćete koristiti kao filter ograničavanja slogova u izveštaju, i to pre njegovog otvaranja. Unos vrednosti filtera omogućićemo preko InputBox-a, a samu vrednost ćemo ubaciti u uslov Where. Na slici možete videti kako će izgledati forma za poziv izveštaja i InputBox. Na formi imamo samo jedno dugme kojim pokrećemo generisanje filtriranog izveštaja. Programski kod koji stoji iza ovog dugmića je sledeći:


Private Sub Command_Click()
Dim strRJ As String
Dim strFilter As String
strRJ = Inputbox („Unesite broj radne jedinice“, „Radna jedinica“)
If strRJ = “ “ Then
‘ u slucaju klika korisnika na Cancel
GoTo Izlaz_iz_programa
End If
strFilter = „[Radna_jedinica] = “ “ “ & strRJ & “ “ “ “
DoCmd.OpenReport „Spisak radnih jedinica“, asViewPreview, , strFilter

Izlaz_iz_programa:
Exit Sub
End Sub


Kao što se može videti, funkcija InputBox vraća vrednost koju korisnik unosi i zatim se ta vrednost smešta u promenljivu strRJ. Nakon ovoga, promenljiva se koristi za postavljanje uslova Where, kod metode OpenReport. Primetićete i jednu If…Then naredbu, ona služi za proveru da li je korisnik možda kliknuo na dugme Cancel (vraća string „nulte“ dužine). Promenljivoj strFilter se dodeljuje naziv polja za filtriranje i sama vrednost promenljive strRJ, čime se gradi uslov Where. Da bi uslov Where prikazao vrednost strRJ pod navodnicima, moraćete da uključite i navodnike u filter. Nakon toga uslov Where može izgledati ovako:


Where [Radna_jedinica] = „Proizvodnja“

Ovim filterom korisnik je selektovao sve slogove gde je vrednost polja „Radna_jedinica“ – „Proizvodnja.“

Pratite Krstaricu na www.krstarica.com