Access - Eliminacija Praznih Polja Ii

  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Access - Eliminacija Praznih Polja Ii as PDF for free.

More details

  • Words: 584
  • Pages: 2
Access - Eliminacija praznih polja u izveštajima (I deo)

24.01.2002

Zamislimo da imamo sledeću situaciju: kreirali smo jednostavnu bazu podataka (samo jednu tabelu) koja čuva podatke o našim kontaktima, sa uobičajenim poljima: ime, adresa, grad, poštanski broj, broj telefona, e-mail, država, itd. Pri tom u tabeli neki od slogova (kontakata) neće biti potpuni, tj. neka polja će ostati prazna; na primer, nemaju sva lica e-mail adresu. Na osnovu ove tabele kontakata kreirali bismo izveštaj koji bi ovako izgledao:

Ime: Prezime: Adresa: Telefon: E-mail: Međutim, prilikom štampanja izveštaja, tj. spiska kontakata sa pripadajućim podacima, zbog kontakata koji nemaju sva polja popunjena, u izveštaju će se naći dosta praznih sekcija koje će narušiti izgled dokumenta i bespotrebno povećati broj strana za štampanje. Pitanje je kako izbaciti prazna polja (polja bez podataka) iz izveštaja i uštedeti prostor? Prazna polja u izveštajima najjednostavnije možete izbaciti podešavanjem osobine Can Shrink svakog text-boxa na Yes. Ali, tada se morate uveriti da se tekst-polja ne preklapaju. Kada potvrdimo osobinu Can Shrink, ukazujemo Accessu da "skupi" (umanji) kontrolu kada u njoj nisu prisutni podaci, i tako ukloni prazan prostor. Međutim, cela linija mora biti prazna. Ovo znači da ukoliko imate tri kontrole u liniji, sve tri moraju biti prazne da bi se automatski uklonio prazan prostor. Umesto ove tehnike možete izgraditi funkciju koja će uklanjati ove prazne linije. Kreiranje takve jedne funkcije objasnićemo u narednim redovima. Da bi linija u izveštaju bila uklonjena, ona mora biti totalno prazna, što može biti problem kada na primer, u liniji preostanu zarez ili neki drugi karakter za separaciju polja. U ovakvim situacijama morate detektovati da li data linija poseduje podatke i sprečiti ubacivanje nepotrebnih razdvajajućih oznaka. Ovo možete odraditi korišćenjem IIf (Immediate If) funkcije. Na primer, neka je sledeći programski kod sadržaj osobine Control Source nekog tekst-polja na izveštaju: =Trim([Grad] & IIf(IsNull([Pokrajina] Or [Pokrajina]=""), " ", ", " & [Pokrajina] & " ") & [Postanski broj])

Access - Eliminacija praznih polja u izveštajima (II deo)

25.01.2002

Ovim tekst-poljem u jednu liniju smeštamo sadržaj polja [Grad], [Pokrajina] i [Postanski broj]. Ukoliko postoji podatak o pokrajini datog kontakta, pre samog naziva pokrajine ubacuju se zarez i space karakter, a nakon naziva pokrajine dolazi još jedan space karakter. Ukoliko pak, ovaj podatak o pokrajini nije prisutan, nakon učitavanja podatka [Grad] ubacuje se samo prazan karakter. Funkcijom IIf ubacujemo zarez samo onda kada je to potrebno, i stoga osiguravamo praznu liniju ukoliko su sva tri polja prazna. Nešto složenije rešenje predstavlja korišćenje VBA programskog koda i kreiranje funkcije "KreirajLinije", koju ćemo detaljnije objasniti. Pri korišćenju ove funkcije biće vam potrebna samo jedna text-box kontrola u koju ćemo smestiti sva polja. Zato će izvor podataka za ovo

polje biti:

=Trim(KreirajLinije([Adresa], [Grad] & IIf(IsNull([Pokrajina]) Or [Pokrajina]="", " ", ", " & [Pokrajina] & " ") & [Postanski broj], [Drzava])) Kao što vidite, argument funkcije KreirajLinije() predstavljaju podaci iz pet polja baze podataka, tj. pet stringova (niz stringova), a sama funkcija izgleda ovako: Public Function KreirajLinije(ParamArray varLinije()) Dim intX As Integer, strRezultat As String For intX = 0 To UBound(varLinije) If Not IsNull(varLinije(intX)) And varLinije(intX) <> "" Then strRezultat = strRezultat & varLinije(intX) & vbCrLf End If Next KreirajLinije = strReturn End Function Funkcija KreirajLinije() automatski vrši konstrukciju linije za svaki od argumenata (polja sloga), i pri tome ignoriše prazna i null polja. Ovim se vrši uklanjanje praznih linija ukoliko podatak u nekom polju nedostaje. Na primer, ukoliko nema adrese, neće ni biti linije sa adresom u izveštaju, a linije koje slede (Grad-Pokrajina-Postanski broj-Drzava) automatski će se pomeriti za jednu liniju gore.

Related Documents