|
Microsoft Office Access |
|
|
Napredni upitiNivo:
Upiti su, bez sumnje, najvažniji deo svake baze podataka. Osim za filtriranje i izdvajanje podataka po određenim kriterijumima, koriste se i kao izvor podataka za formulare ili izveštaje. U grupi interesantnih rešenja se često kriju odgovori na pitanja naprednih korisnika. Pogledajmo nekoliko takvih predloga. Manipulacija zaglavljima kolonaUkoliko imate Crosstab upit u kome prebrojavate i prikazujete događaje po mesecima, a zatim naredbom Format() prikazujete skraćene nazive meseca po kolonama, sigurno ste primetili da način na koji Access sortira nazive kolona nije odgovarajući. Zapravo, bio bi veći problem da je način sortiranja tekstualnih naziva polja drugačiji od rastućeg ili opadajućeg abecednog, ali u ovom slučaju nam je potrebno sortiranje po rednom broju meseca, bez obzira na njegov naziv. Za početak, napravite jedan Crosstab upit i za polje Column Heading upišite sledeće: Mesec: Format([Datumsko_polje];"mmm") kako biste dobili polja meseci po skraćenom nazivu od tri znaka. Pokrenite upit i primetite da su kolone prikazane po sledećem redosledu: apr, avg, dec, feb, itd. Vratite se na prikaz izmene dizajna upita i odaberite karticu osobina polja Mesec. Na kartici osobina postavite kursor u polje Column Headings i u njega prenesite: "Jan";"Feb";"Mar";"Apr";"Maj";"Jun";"Jul";"Avg";"Sep";"Okt";"Nov";"Dec"
Prikazano rešenje će raditi na računaru na kome su regionalna podešavanja postavljena na srpsku latinicu. Za druge regionalne postavke, izmenite nazive meseci tako da odgovaraju jeziku regiona za koji je računar podešen (za američka regionalna podešavanje nazive meseca Maj, Avg i Okt izmenite u May, Aug i Oct). Osobina Column Headings je upravo namenjena prevazilaženju problema nastalih upotrebom funkcije Format, odnosno forsiranju prikazivanja određenih naziva određenim redosledom. Takođe, niste ograničeni na upotrebu tačno odgovarajućih naziva polja, već možete definisati proizvoljna polja. Vrednost osobine Column Headings možete upotrebljavati čak i kad ne postoje odgovarajuće vrednosti za zadato polje - recimo, kada želite da vidite spisak svih zaposlenih sa zbirom njihovih dana bolovanja, iako neki od njih neće imati ni jednu takvu vrednost (sva polja će biti prazna). Ako prikazujete nazive mesta, ovu osobinu možete iskoristiti da prikažete naziv vašeg mesta ispred svih ostalih. Konačno, naziv polja kolone kojeg izostavite iz nabrajanja u osobini Column Headings se neće pojavljivati u rezultatima upita, tako da ovu osobinu možete upotrebiti za kontrolu prikazivanja sadržaja i odlučiti koje ćete kolone prikazati, a koje ne. Grupisanje stavki u izveštajuPoželeli ste da odštampate poštanske adrese korespondenata, ali da pošiljke grupišete po adresi, tako da na svaku adresu pošaljete tačno jednu pošiljku? Možete ih odštampati sve, pa zatim ih pregledati i odabrati iz grupe istih adresa samo jednu - ali, na čije ime ili naslov? Prvi zadatak je da se duplirane adrese ne štampaju, a drugi je da se naslovi primalaca izmene iz konkretnog imena i prezimena u opšti naziv, npr. porodica i prezime. Napravite upit koji će grupisati podatke tako što ćete uključiti sumiranje rezultata (pritiskom na dugme sa grčkim znakom Sigma u traci alatki). Grupišite podatke po prezimenu, mestu stanovanja, poštanskom broju, a zatim funkcijom Count prebrojte broj pojavljivanja prezimena. Nazovite ovo polje BrojLica. Upit će prikazati prezime, adresu i mesto stanovanja i brojku koja označava broj osoba na istoj adresi. Dodajte u upit i ime korespondenta, ali u polju Total odaberite First. Ovim izbegavamo da se jedini podatak različit od ostalih, a to je lično ime, pojavljuje u upitu kao zaseban zapis, jer ćemo u sledećem koraku izmeniti naziv primaoca u opštiji oblik, poput porodica Simić. Po želji, dodajte i druga polja koja ćete štampati na naslovu pošiljke, ali njima takođe postavite osobinu grupisanja na First. Napravite novi upit baziran na prethodnom. Prenesite na mrežu polja koja želite, a zatim postavite dodatno polje sa sledećim sadržajem: Naslov: IIf ([BrojLica]>1,"Porodica "&[Prezime],[Ime]&" "&[Prezime]) Iskoristite drugi upit kao izvor podataka za izveštaj za štampu naslova adresa.
Vraćanje svakog n-tog zapisaLako je napraviti upit koji će vratiti prvih nekoliko zapisa - iskoristite osobinu TopValues i upišite broj zapisa koje želite da vidite. Problem koji smo dobili kao pitanje: kako prikazati svaki n-ti zapis? Ideja je da upotrebite funkciju Mod koja proverava da li je neki broj deljiv drugim bez ostatka. Ukoliko tražimo prikaz svakog desetog zapisa, proveravaćemo da li je broj zapisa deljiv sa 10 bez ostatka, a za ovo će nam trebati nova kolona u upitu koja će prikazivati redni broj zapisa. Pređite na karticu modula i prenesite sledeću funkciju:
Function RBroj (var As Variant)
Static i As Integer
i = i + 1
RBroj = i
End Function
Pređite zatim na režim izmene dizajna upita i dodajte novo polje: Expr1: RBroj(NekoPolje) Mod 10 Isključite prikazivanje ovog polja, osim ako želite da vidite koji je njegov redni broj pri formatiranju. Izmene upita su ubuduće jednostavne: umesto Mod 10 upišite Mod 7 i upit će prikazivati svaki sedmi zapis.
|
|
Vrh stranice Prethodna stranica Naslovna strana Mapa sajta Pretraga |
| AFORIZAM ZA DANAS | OVIH DANA SLUŠAMO... |
| Copyright © Praktikum na Webu, 2000-2011; Valinor Design; sva prava pridržana. |