' ------------------------------------- ' makro otvara izveštaj označen u listi ' pridružuje se svojstvu OnClick komandnog tastera na obrascu Private Sub cmdOtvIzvestaj_Click() On Error GoTo cmdOtvIzvestaj_ClickErr If Not IsNull(Me![lstIzvestaj]) Then ' otvori izveštaj; ' ako je chkPregled uključen, izveštaj ide na ekran DoCmd.OpenReport Me![lstIzvestaj], _ IIf(Me![chkPregled], acPreview, acNormal) End If On Error GoTo 0 Exit Sub cmdOtvIzvestaj_ClickErr: ' obrada greške Select Case Err Case 2501 ' korisnik je odustao ili se desio događaj NoData MsgBox "Izveštaj prekinut ili nema odgovarajućih podataka.", _ vbInformation, "Informacija:" Resume Next Case Else MsgBox "Greška broj " & Err & ": " & Error$, _ vbInformation, "makroa cmdOtvIzvestaj_Click()" Resume Next End Select End Sub ' kraj makroa cmdOtvIzvestaj_Click() ' ----------------------------------------------- ' funkcija DajIzvestaj se unosi kao novi modul ' priprema imena raspoloživih izveštaja za listu ' povezuje se kao svojstvo RowSourceType polja liste Function DajIzvestaj(fld As Control, id As Variant, row As Variant, col As Variant, code As Variant) As Variant Dim db As Database, dox As Documents, i As Integer ' niz koji prihvata imena izveštaja Static sIzvImena(255) As String ' ukupan broj izveštaja Static iBrojIzvest As Integer ' provera ulazne vrednosti Select Case code ' poziva se jednom kad se otvori obrazac Case acLBInitialize Set db = CurrentDb() Set dox = db.Containers!Reports.Documents ' upamti broj izveštaja iBrojIzvest = dox.Count For i = 0 To iBrojIzvest - 1 ' unos imena izveštaja u niz sIzvImena(i) = dox(i).Name Next DajIzvestaj = True Case acLBOpen ' jedinstvena vrednost DajIzvestaj = Timer ' broj redova Case acLBGetRowCount DajIzvestaj = iBrojIzvest Case acLBGetColumnCount ' jedna kolona DajIzvestaj = 1 Case acLBGetColumnWidth ' širina kolone 2 inča DajIzvestaj = 2 * 1440 Case acLBGetValue ' uzmi ime izveštaja iz niza DajIzvestaj = sIzvImena(row) Case acLBEnd ' oslobodi niz Erase sIzvImena iBrojIzvest = 0 End Select End Function ' kraj funkcije DajIzvestaj