37
S P E C I J A L N I D O D A T A K Mcrsft ccess 2007 na nvj radnj pvršn Branslav Mhaljev #138 nvembar 2007

Access2007knjiga

Embed Size (px)

DESCRIPTION

access

Citation preview

Page 1: Access2007knjiga

S P E C I J A L N I D O D A T A K

Mi­cro­so­ft A­ccess 2007 na no­vo­j radno­j po­vrši­ni­

Brani­slav Mi­haljev

#138no­vembar 2007

Page 2: Access2007knjiga

� PC n o v e m b a r 2 0 0 7

PC SPECIJALNI DODATAK

M icrosoft Access je program za rad sa bazama podataka i deo

je paketa Microsoft Office Professional, odnosno Microsoft Office Enterprise. U verziji 2007 promenjen je kompletan korisnički interfejs, ali i mnogo više od toga, pri čemu je većim delom očuvana kompatibilnost sa starijim formatom baze podataka. Iako je proizvođač ulo­žio mnogo truda (a samim tim i nov­ca) u istraživanje interfejsa s ciljem da program učini intuitivnim, mnogi ko­risnici nalaze da je on i dalje veoma za­htevan za savladavanje, jer se ispod na­izgled jednostavnih opcija krije okean mogućnosti i potpuno novih termina

koji su specifični za programe za rad sa bazama podataka.

Za razliku od Word­a, gde učitate prazan dokument i odmah kucate pi­smo bez nekih posebnih pravila, kod Access­a morate uraditi mnogo toga pre nego što upišete prvi podatak u ba­zu. Dodatno, za svaki korak morate po­znavati određena pravila, često veoma različita i stroga. Tokom kreiranja ba­ze podataka vi ste programer, dizajner, administrator i arhitekta baze podata­ka. Loše dizajnirana baza podataka pos­taje neupotrebljiva, a najgore je to što ne možete jednostavnim izmenama od loše baze načiniti dobru. Polje forme

A­ccess 2007 – no­vi­ i­nterfejs, ali­ i­ mno­go­ vi­še o­d to­ga

Page 3: Access2007knjiga

3n o v e m b a r 2 0 0 7 PC

Mi­cro­so­ft Access 2007

možete uvećati, smanjiti ili pomeriti; izgled izveštaja možete lako izmeniti, ali ako struktura na koju se sve oslanja ne valja i zahteva izmene, onda i svi za­visni objekti zahtevaju izmene.

Podaci se u bazi podataka čuvaju tamo gde pripadaju, a ne gde se pojav­ljuju. Npr. u bazi evidencija kupovine i prodaje knjiga naslovi se pojavljuju na prijemnicama ili računima, zatim na izveštajima o prodaji ili stanju zaliha. Ti naslovi se čuvaju samo na jednom mestu – u tabeli naslova knjiga. Nije­

dan podatak, pa tako ni naslov knjige, ne bi trebalo da se pojavljuje dva puta zapisan u neke od tabela. Ovim se obe­zbeđuje takozvani referencijalni integri­tet podataka ­ izbegavaju se greške pri višestrukom unosu istog naslova. Da je tako u realnom svetu, ne biste ima­li problema sa pogrešno ukucanim bro­jem motora automobila ili sa pogrešno upisanim prezimenom u nekom doku­mentu koji će vam doneti samo nevolje i mnogo truda pri dokazivanju isprav­nosti podataka.

Tabele su nosioci podataka i u svakoj bazi podataka ih ima

onoliko koliko i entiteta sa svojim oso­binama. Koristeći prethodni primer, imaćete tabelu sa naslovima knjiga i drugim osobinama koje opisuju knjigu – izdavač, godina izdanja, obim, žanr, kratak opis sadržaja i slično. Informaci­je o kupovini i prodaji možete čuvati u dve odvojene tabele, koje su povezane sa tabelom knjiga preko polja indeksa. Jedinstven indeks je obično brojčano polje sa vrednostima koje se ne dupli­raju u okviru jedne tabele, slično kao što može postojati više gospode sa ime­nom Pera Petrović ali među kojima svaki imaju svoj jedinstven matični broj; matični broj građanina je u ovom slučaju njegov indeks. Tabele kupovi­ne i prodaje će, umesto punog naslova knjige, sadržati broj preko koga su za­

pisi povezani sa tačno određenom knji­gom. Koliko tabela će imati vaša baza podataka određuje kvalitet osnove ba­ze podataka. S druge strane, broj ta­bela mora biti tačno onoliki koliko ra­zličitih entiteta opisujete.

Tabela prodaje će sadržati i broj kupca kojim se povezuje sa tabelom kupaca. Zapravo, tabela prodaje knji­ga će sadržati samo određene brojeve kojima se beleže datum, količina, vre­dnost, ali i brojeve kojima se ova tabela povezuje sa drugim tabelama. Kada ko­risnik otvori ovu tabelu, malo toga će mu biti jasno. Zato se češće koristi na­redni objekat – upit (Query).

Upiti su objekti koji filtriraju po­datke za različite potrebe. Njima mo­žete izdvojiti sve podatke o proda­ji za određeni datum, sve kupce iz određenog perioda ili mesta, zatim

O­bjek­ti­ baze po­datak­a

Page 4: Access2007knjiga

� PC n o v e m b a r 2 0 0 7

PC SPECIJALNI DODATAK

sve knjige sa istim izdavačem i slično. Najčešće se koriste kao izvor podata­ka za izveštaje, gde se podaci filtriraju po određenim kriterijumima. Njih, ta­kođe, možete koristiti za kombinova­nje podataka iz više tabela. Gledajući tabelu prodaje sa vezama ka tabeli knji­ga i tabeli kupaca, umesto brojeva za­pisa knjige i kupca prikazaćete naslov knjige i ime kupca, što je za korisnika već razumljiviji oblik podataka. Ova­kav upit može sadržati i različite formu­le za sabiranje, prebro­javanje ili pronalaže­nje proseka. Zaseban oblik upita za izdvaja­nje podataka naziva se Crosstab upit (una­krsni proračun) i nji­me možete prikazati različite proračunate vrednosti grupisane prema određenom do­gađaju.

Osim upita za izdvajanje podataka, postoje i druge vrste

upita. Najčešće se koriste akci­oni upiti koji­ma se podaci uklanjaju iz ta­bele, kopiraju iz jedne u dru­gu tabelu ili ko­jima se menjaju podaci. Oni se uglavnom koris­

te za automatizaciju dosadnih poslova ručnog kopiranja ili uklanjanja poda­taka. Ako vas na ovom mestu zanima šta je upit u osnovi, recimo: to je iskaz pisan u zasebnom jeziku koji se zove SQL jezik. On se koristi isključivo u ba­zama podataka i, osim u upitima, koris­ti se na mestima gde se filtriraju poda­ci. O SQL jeziku ćemo napisati više ne­kom drugom prilikom.

Za unos i pregled podataka najčešće se koriste forme (možda bi

Tabela baze po­datak­a

Upi­t za i­zdvajanje po­datak­a

Page 5: Access2007knjiga

�n o v e m b a r 2 0 0 7 PC

Mi­cro­so­ft Access 2007

bolje bilo reći formulari). Forme ima­ju dvojaku funkciju: služe za unos i obradu podataka u korisnički prihva­tljivom obliku i mogu sadržati progra­mirane akcije u zavisnosti od događaja koje korisnik inicira. Događaj (engl. Event) je svaka akcija koju korisnik učini. Čim korisnik pokrene miša inici­ra se događaj MouseMove (pomeranje miša), kada pritisne taster aktivira se događaj KeyPress (pritisnut taster), ka­da korisnik sačuva za­pis inicira se nekoliko događaja – pre upisa podataka, nakon upisa podataka itd. Svakom od ovih događaja može­te pridružiti makro na­redbe ili VBA koman­de koje će dodatno ura­diti nešto umesto kori­snika. Forme su objek­ti koji se najčešće koris­te u kompletiranoj ba­zi podataka.

Za razliku od for­mi koje su namenjene prikazu podataka na ekranu, izveštaji su na­menjeni prikazu podataka u obliku pri­lagođenom za štampu. Izveštaji za svoj izvor podataka mogu imati tabelu ili upit kojim se združuju i filtriraju poda­ci iz više tabela. Osim klasičnih izvešta­ja na papiru formata A4, standardnom za naše podneblje, korišćenjem izve­štaja možete štampati omotnice za pi­sma, nalepnice za adrese, menije resto­

rana ili – kraće rečeno – gotovo svaki oblik dokumenta koji možete napraviti u programu za obradu teksta kao što je Microsoft Word.

Za programiranje baze podataka na raspolaganju su dva programska jezika: makro i VBA (Visual Basic for Applica‑tions). Primetite jednu razliku: makro način programiranja u drugim progra­mima Microsoft Office paketa se odnosi na VBA jezik i snimanje akcija korisni­

ka koje se automatski prevode u pisani program; u Access­u je to zaseban način programiranja, gde iz unapred zadate liste komandi birate jednu po jednu i za njih podešavate parametre. Makro je­zik je limitiran u mnogo čemu, zato bih vam preporučio da zaboravite na nje­ga i, posebno ako ste početnik, odmah počnete sa učenjem VBA jezika. Sve što

Fo­rmu­lari­ za u­no­s i­ o­bradu­ po­datak­a

Page 6: Access2007knjiga

� PC n o v e m b a r 2 0 0 7

PC SPECIJALNI DODATAK

možete učiniti makro jezikom možete i uz VBA, ali i daleko više. VBA jezik je zapravo varijanta Visual Basic jezika, prilagođenog svakom programu Micro‑soft Office paketa ponaosob, u kojem možete programirano pristupati dru­gim bazama podataka, kontrolisati gre­ške ili praviti petlje, što uglavnom nije dostupno makro jeziku.

VBA komande možete pisati za sva­ki objekat ponaosob. Program koji nije vezan za neki specifični objekat ili ele­ment i koji se obično može upotrebiti

u drugim bazama podataka naziva se funkcija i smešta se na kartici modula. Primer jedne funkcije je funkcija za za­menu karaktera. Nju pozivate definisa­nu određenim parametrima: string ko­ji sadrži karakter koji želite da zameni­te, karakter koji se zamenjuje i karakter koji ga zamenjuje. Funkciju možete po­zvati iz bilo kog dela programa. Naža­lost, ne možemo reći da je VBA jednos­tavan jezik (naprotiv!) ali možete kre­

nuti sa jednostavnim funkcijama i pos­tepeno napredovati.

Pra­vi­la­ ba­ze po­da­ta­ka­Postoje određena pravila u izgra­

dnji baze podataka koja se grubo dele na tri grupe: ona koja se moraju pošto­vati bez izuzetaka, ona koja su formal­no obavezna ali se mogu izbeći i ona ko­ja su preporučljiva ali ne i obavezna.

Iz prve grupe izdvajamo pravila de­finisanja vrste podataka. Svaki podatak u bazi mora biti definisan ­ kojeg je ti­

pa (datum, broj, tekst...), odno­sno kojeg podtipa (broj bez decima­la, broj sa decima­lama, tj. Long pod­tip ili Byte pod­tip...). Naravno, sve podatke može­te smeštati u tek­stualni tip polja, ali kasnije malo to­ga možete uraditi s takvim podaci­

ma. Npr. brojeve smeštene u tekst polje ne možete sabrati ili oduzeti, datume smeštene u tekst polje ne možete sor­tirati rastućim ili opadajućim redosle­dom. Ujedno, svaku promenljivu koju koristite u programu morate definisati po tipu – vrsti podataka koje će pamti­ti; u suprotnom, ona postaje promenlji­va tipa Variant, koja formalno može da pamti bilo koji podatak ali troši mno­go memorije i operacije sa ovom pro­

Ko­ri­šćenjem i­zveštaja štampaju­ se po­daci­ i­z baze po­datak­a

Page 7: Access2007knjiga

�n o v e m b a r 2 0 0 7 PC

Mi­cro­so­ft Access 2007

menljivom obavlja­ju se daleko sporije u odnosu na defini­sane promenljive.

Od pravila koja su obavezna ali se mogu izbeći izdvaja­mo pravila normal‑izacije baze podata­ka. Postoji nekoliko nivoa pravila norma­lizacije baze podata­ka, a za početak je dovoljno da se drži­te onog koje govo­ri o dupliranju tek­stualnih podataka: izbegavajte kreira­nje tabela koje će sa­držati dupliran na­ziv entiteta (kao što je naziv knjige u ta­beli računa). Umes­to toga, napravite novu tabelu sa je­dinstvenim nazivima knjiga i povežite je sa tabelom računa upotrebom indek­snog polja. Čuvajte podatke tamo gde pripadaju, a ne tamo gde se pojavljuju. Postoje i retki izuzeci, kada se namer­no odustaje od pravila normalizacije, ali o tome kasnije.

Zbog oštećenja baza podataka ko­ja nastaju kada jednu bazu istovreme­no pokreću dva ili više korisnika, do­dao bih listi obaveznih pravila ono ko­je se odnosi na deljenje baze podataka na dva dela: jedan deo sadrži samo ta­

bele (backend), a drugi sve ostale objek­te (korisnički interfejs ili frontend). Ovom tehnikom instalirate bazu po­dataka sa podacima samo jednom. Vi možete da nastavite da radite na una­pređenju interfejsa programa bez potre­be da od korisnika tražite i deo koji sa­drži već unete podatke.

Postoje tri dobra razloga za razdva­janje baze podataka. Prvo, podaci su najčešće privatne prirode i korisnici ih nerado daju. Drugo, ne postoji pre­kid u radu korisnika dok vi radite na

Mak­ro­ i­ VBA­ jezi­ci­ za pro­grami­ranje baze po­datak­a

Page 8: Access2007knjiga

8 PC n o v e m b a r 2 0 0 7

PC SPECIJALNI DODATAK

unapređenju interfejsa, jer bi se u tom slučaju svi uneti podaci izgubili kada vi vratite unapređenu bazu. I treće – ovo je jedini pravilan način deljenja aplika­cije u lokalnoj mreži računara. Zapam­tite savet: iako je moguće deliti istu ba­zu podataka u lokalnoj mreži (misli se na jedinstvenu bazu koja sadrži i po­datke i korisnički interfejs), ne činite to. U retkim slučajevima može doći do oštećenja baze podataka i nepovratnog gubitka informacija.

U poslednju grupu spadaju smerni­ce kod imenovanja objekata u bazi po­dataka, poznatije pod nazivom „Mađar­ska notacija“. Ona se odnosi na način po kojem formirate nazive objekata, po­lja ili promenljivih u bazi podataka, ta­ko da čitanjem naziva odmah postaje jasna vrsta i namena promenljive ili po­reklo i tip objekta. Uglavnom se svi pro­grameri drže neke varijante „Mađarske notacije“, tako da program postaje lako čitljiv kada pređe od programera pro­grameru na dalji razvoj. Pogledajmo na dva primera kako to izgleda:

Dim text3 as Stringtext3 = TextBox123TextBox234 = text3TextBox345 = TextBox12 * TextBox34

Da biste saznali šta ovaj program radi, prvo bi trebalo da utvrdite koja polja na formi su TextBox123, Text‑Box234, TextBox345, Text12 i konačno TextBox34, a zatim analizirate pro­gram. Upotrebom predložene notaci­

je za nazivanje objekata baze, ovaj pro­gram bi mogao da izgleda ovako:

Dim strA­dresaIsporu­ke as StringstrA­dresaIsporu­ke = _ txtA­dresaStanovanjatxtA­dresaStanovanja = _ strA­dresaIsporu­kecu­rVrednostSaPorezom = _ cu­rVrednostBezPoreza * dblPorez

Iz ovog programa čitamo tip po­datka i namenu, tako da odmah posta­je jasno da program kopira tekst polja adrese stanovanja u tekst polja adrese isporuke i zatim dodaje porez na vre­dnost isporuke. Ovde je zapravo pri­menjen deo pravila nazivanja; on pre­dlaže da se nazivu svakog polja doda i pripadnost tabeli baze podataka, ali u tom slučaju nazivi postaju predugački. Pošto obim ovog teksta ne dozvoljava opis svih smernica ovog pravila, može­te ih pročitati na Internetu, upisom poj­ma Hungarian Notation u polje vašeg Web browser­a.

U nazivima polja tabela, nazivima tabela, upita i kod drugih objekata ne koristite razmake ili druge specijalne znake. Tabelu nazovite npr. tblRacu‑niKupci, a neko od polja datDatumK‑upovine. Kada naziv tabele i polja sa­drži razmak (kao npr. tbl Racuni Kup‑ci i dat Datum Kupovine) svaki put ka­da poželite da referencirate naziv po­lja tabele moraćete i svaki naziv polja da ogradite srednjim zagradama, npr. [tbl Racuni Kupci].[dat Datum Kupo‑

Page 9: Access2007knjiga

�n o v e m b a r 2 0 0 7 PC

Mi­cro­so­ft Access 2007

vine], umesto tblRacuniKupci.datDa‑tumKupovine. Nazive ograđene sre­dnjim zagradama morate koristiti svu­da: u upitima, formama, izveštajima, VBA, SQL ili makro jeziku, što posta­je zamorno i nepregledno. U nazivima polja ili objekata nikako nemojte koris­titi rezervisane reči, one za koje Access ima već rezervisanu funkciju: Name, Word, Table, Date, Time, Field... Kada neku od ovih reči upotrebite u nazivu polja tabela i zatim napišete VBA pro­gram koji koristi takvo polje, naizgled sasvim ispravan program će prijaviti grešku! Kombinacije s drugim rečima su prihvatljive, tako da možete koristi­ti txtName ili datDate.

Najzad, ne zaboravite na kopije baze podataka. Pravite ih dnevno, a naročito pre nego što načinite ikakve izmene na bazi podataka. Ukoliko vaš sistem to dozvoljava, dodajte vašu bazu u listu programa za automatsko prav­ljenje kopija, koji to obično čini noću, dok je računar slobodan.

Za napredne korisnike predlažem još jedno pravilo: pišite funkcije tako da se mogu ponovo iskoristiti. Takve funkcije možete čuvati u zasebnoj bazi podataka i uvoziti ih u radnu bazu po­dataka kad god vam zatrebaju, što dra­matično skraćuje vreme razvoja progra­ma, a ujedno će korisnika impresionira­ti vaša brzina razvoja programa.

Rad u­ Mi­cro­so­ft A­ccess‑u­Ta­bele i­ po­lja­

Pozdravni ekran Access­a po­deljen je na tri vertikalna de­

la. U levom delu možete birati grupe template­a sa lokalnog računara ili sa Internet sajta Microsoft­a (validacija ko­pije Microsoft Office­a je obavezna!). Po izboru grupe, u središnjem, najvećem delu videćete predloške koje možete upotrebiti za početak rada. Njih može­te upotrebiti za upoznavanje sa bazom podataka, jer su ovakvi predlošci čes­to prilagođeni drugom tržištu, gde se određeni podaci razlikuju (npr. format telefonskog broja), a ujedno je sve na engleskom jeziku (valjalo bi sve preves­ti na srpski jezik). U desnom oknu na­

lazi se lista poslednjih učitanih baza po­dataka pomoću koje možete otvoriti ne­ku od njih na brz način, duplim klikom na neki od naziva baza podataka.

Najpre treba kreirati bazu poda­taka, a na raspolaganju su vam dva načina: učitavanje predloška ili za­počinjanje rada na potpuno praznoj ba­zi. Ukoliko ste Access već koristili, ve­rovatno posedujete baze podataka ko­je možete odmah učitati u novi Access. U ovom slučaju, proverite kompatibil­nost: stari format baze bi trebalo da ra­di u novom okruženju, ali su primećeni i izvesni problemi u ovom slučaju.

Po učitavanju postojeće baze po­dataka, dočekaće vas upozorenje o to­

Page 10: Access2007knjiga

10 PC n o v e m b a r 2 0 0 7

PC SPECIJALNI DODATAK

me da baza podataka može sadržati program pisan iz zle namere. Ovaj mo­dul samo upozorava – to nije antiviru­sni program. Da biste omogućili izvrša­vanje programa, morate potvrditi op­ciju Enable this Content, koja se nala­zi u oknu sigurnosnih opcija, i to sva­ki put kada učitate bazu podataka, ma­kar i istu. Način da prevaziđete potre­bu da uvek iznova potvrđujete da veru­jete programu jeste da bazu dodate u Trusted Locations, koje se nalaze u me­niju opcija Access programa.

Access može učitati i raditi sa sta­rijim formatom baze MDB. Prvi put kada učitate takvu bazu u novu verzi­ju Access­a, on će dodati određene skri­vene objekte bazi koji ne utiču na kompatibil­nost formata baze po­dataka sa prethodnom verzijom. Takvu bazu možete ponovo učita­ti u prethodnu verzi­ju Access­a. Format no­ve baze podataka ćete prepoznati po novoj ekstenziji u nazivu da­toteke, koji sada gla­si ACCDB. Novi Ac‑cess, takođe, može ini­cijalno da sačuva po­datke u MDB forma­tu, što ćete koristiti u slučaju kada že­lite da takvu bazu podataka delite sa korisnikom koji nema instaliran no­vi Access. Da biste to učinili, kliknite na Office taster (veliki kružni taster u

gornjem levom uglu interfejsa progra­ma) i zatim kliknite na Save As. Vodi­te računa da ne koristite nove funkcije, jer one neće funkcionisati u starijoj ver­ziji programa.

Ko­ma­n­dn­a­ tra­ka­Stari korisnici će primetiti veliku

razliku između starog sistema menija i novog ribbon­a. To je sistem tastera po­ređanih po karticama, gde su određene kartice uvek dostupne a neke od njih samo kada odaberete određeni obje­kat. Kažemo da je interfejs kontekstno orijentisan – menja se u zavisnosti od odabranog objekta, tj. u zavisnosti od onoga što radite.

Ako smatrate da traka zauzima pre­više mesta na radnoj površini vašeg monitora, možete je umanjiti tako da zauzme najmanji mogući prostor. Kli­knite desnim tasterom miša na ribbon

Prvi­ ek­ran pro­grama

Page 11: Access2007knjiga

11n o v e m b a r 2 0 0 7 PC

Mi­cro­so­ft Access 2007

i odaberite Minimize the Ribon ili dva puta kliknite na aktivnu karticu i priti­snite kombinaciju tastera Ctrl+F1. Na sličan način vraćate ribon na pretho­dnu veličinu.

Iako kažemo da meniji više ne pos­toje, jedan je ipak zadržan i možete ga videti klikom na taster Office. On je po­deljena na tri dela. U levom delu su ak­cije koje možete izvršiti (snimanje po­dataka, štampanje izveštaja, otvaranje ili zatvaranje baze podataka), dok se u desnom nalaze dodatne opcije koje se odnose na odabranu akciju. U donjem delu se nalazi taster čiju poziciju valja zapamtiti, jer ćete mu se kasnije više puta vraćati: taster za pristup oknu za podešavanje Access­a.

Database Window je u prethodnim verzijama korišćen za pristup objekti­ma baze podataka koji su bili grupisa­ni po karticama. Svaka kartica je pred­stavljala grupu objekata (tabele, upiti, izveštaji...) i klikom na svaku od njih mogli ste videti listu pripadajućih obje­kata. Ovaj vid prikaza je smenjen no­vim Navigation Pane oknom. U osno­vi, njime možete pristupati objektima otvaranjem padajućih lista koje pred­

stavljaju grupe objekata. Zatim u listi nad željenim objektom možete izvršite različite komande; dupli klik pokreće objekat, dok desni klik pruža različite mogućnosti manipulacije objektom. Ako se sećate prečice F11 za prikaz Database Window okna u prethodnoj verziji, ona važi i sada. Pomoću F11 sa­krivate i prikazujete Navigation Pane. Novi oblik prikaza je zgodan za baze sa malim brojem objekata, ali i rogobatan za manipulisanje kada baza sadrži veći broj objekata.

Ono što je dobro kod Navigation Pane okna je mogućnost različitih po­gleda na objekte baze podataka. Na pri­mer, prelaskom u pogled Tables and Related Views videćete objekte grupisa­ne po vezama između tabela i ostalih zavisnih objekata. Tako možete videti sve objekte koji su nastali od osnovnog objekta – tabele studenata ili sve objek­te koji su povezani sa tabelom artikala. Za snalaženje među gomilom objekata namenjena je opcija Filter by Group, ali ako često menjate poglede i filtere radi bržeg pronalaženja objekta – ovo brže shvatite uslovno. Konačno, veću kontro­lu nad sadržajem možete ostvariti tako

Trak­a (ri­bbo­n) je zameni­la si­stem meni­ja

Page 12: Access2007knjiga

1� PC n o v e m b a r 2 0 0 7

PC SPECIJALNI DODATAK

što ćete kliknuti desnim tasterom na naslovnu liniju Navigation Pane okna i odaberati Navigation Pane Options. Stariji korisnici su nekako navikli da im je sve tu, pod rukom, zato osta­je da vidimo da li će ova vrsta navi­gacije biti izmenje­na u novoj verzi­ji koja je u pripre­mi. Naime, korisni­ci često kreiraju određeni broj priv­remenih objekata koje valja obrisati na kraju rada, a potraga za njima koris­teći Navigation Pane može da potraje.

Ostatak prostora u centralnom de­lu prozora je rezervisan za prikaz po­dataka, formi i izveštaja. Ako držite uključen ribon i okno za navigaciju, ovaj prostor zauzima oko 60% prozora Access­a, što je značajno umanjenje u odnosu na prethodnu verziju. Za ugo­dan rad je zaista potreban ekran visoke rezolucije. Deo odgovornosti za ovako mali radni deo prozora pada na način kojim se sada prikazuju objekti. Pod­setimo, u prethodnim verzijama svaki objekat je otvarao zaseban prozor, ko­jem ste mogli da menjate veličinu ili da ga povećate na maksimalno raspoloživi prostor. Pokrenuti objekti su se otvara­li jedan iznad drugog i mogli ste da se između njih krećete upotrebom kombi­nacije tastera Alt+Tab, kao da se krećete

između pokrenutih programa. U novoj verziji ovakav sistem je zadržan, kom­patibilnosti radi, ali je osnovni i prepo­

ručeni sistem pri­kaza objekata po karticama – svaki otvoreni objekat se prikazuje na svo­joj kartici (ovo uje­dno dodatno uma­njuje raspoloživi prostor za rad).

U gornjem le­vom uglu Access prozora nalazi se kružni taster sa simbolom Office

paketa. Kao i u drugim programima paketa, klikom na ovaj taster biće pri­kazan jedini meni. On se sastoji iz tri dela: levi deo sadrži opcije menija, de­sni deo prikazuje poslednje učitane ba­ze podataka i – veoma važno – tu je tas­ter Access, opcija koju ćete povremeno koristiti za podešavanje programa.

Upo­treba­ templa­te‑a­Predlošci su dobar način za po­

četak učenja rada sa bazom podataka čijom upotrebom će Access kreirati ta­bele, relacije, ključeve, upite, formula­re, izveštaje i ostale objekte, za početni­ke većinom objekte sa kojima se prvi put sreću. Proces kreiranja baze poda­taka započinje planiranjem strukture na osnovu podataka koji će se čuvati. Tokom daljeg rada nakon kreiranja ta­bela, ali i usled lošeg planiranja, progra­

No­vo­ o­k­no­ navi­gaci­je o­lak­šava mani­pu­laci­ju­ o­bjek­ti­ma

Page 13: Access2007knjiga

13n o v e m b a r 2 0 0 7 PC

Mi­cro­so­ft Access 2007

mer baze podataka će činiti izmene u dizajnu tabela. Svaka izmena na ovom, osnovnom objektu baze podataka za­hteva izmene na ostalim objektima ba­ze podataka, jer su svi oni vezani za ta­bele i njihovu strukturu. Dakle, planira­nje strukture tabela je osnovni korak u započinjanju kreiranja baze podataka. Predlošci su dobri za početak učenja ra­da u Microsoft Access­u – iako ne uvek sasvim upotrebljivi, oni vam mogu po­moći da sagledate način po kojem su podaci organizovani i kako su svi osta­li zavisni objekti izgrađeni na osnovu strukture podataka.

Predloške posmatrajte kao alatke koje vam mogu pomoći da dođete do baze podataka koju, neznatnim modi­fikacijama, možete prilagoditi sopstve­nim potrebama. Posmatrajmo primer predloška baze podataka za čuvanje kontakata. Ovaj predložak će kreirati sve potrebne objek­te i ovakvu bazu možete odmah koristiti za zapisi­vanje kontakata. Zbog specifičnos­ti u vezi sa poštan­skim brojem ili oblikom broja te­lefona, možete načiniti izmene ta­ko da ograničite unos poštanskog broja na pet cifara, odnosno možete izmeniti masku za

unos broja telefona prilagođenog for­matu koji mi koristimo.

Većinu predložaka koje ćete vide­ti u vašoj instalaciji Access­a ćete mora­ti da preuzmete sa Interneta. Čak i nji­hov broj i nazivi se mogu razlikovati od onih koje možete videti na našim sli­kama. Na sreću, jednom postavljen pre­dložak će se uvek nalazi na Web sajtu proizvođača. Krenite tako što ćete po­krenuti Access ili, ako već imate učita­nu bazu podataka, zatvorite je (klik na Office taster i zatim na Close Data‑base). Zatim kliknite na New opciju me­nija. U levoj koloni videćete kategorije predložaka. Odaberite jednu kategori­ju. Nazivi predložaka će se pojaviti u ve­likom oknu s desne strane.

Svaka ikona u ovom oknu predstav­lja predložak. Kada klikom na neku od njih odaberete jedan, s desne strane vi­dećete osnovne informacije o predlo­

šku. Pregledajte sve predloške u odabra­noj kategoriji i oda­berite neki od njih koji u najvećoj me­ri zadovoljava vaše potrebe. Ukoliko po­grešite u odabiru, uvek se možete vra­titi na ovaj ekran i odabrati drugi pre­dložak. Tokom kre­iranja baze podata­ka na osnovu pre­dloška moći ćete da zadate ime buduće

Predlo­šci­ su­ do­stu­pni­ za preu­zi­manje sa Internet sajta pro­i­zvo­đača pro­grama

Page 14: Access2007knjiga

1� PC n o v e m b a r 2 0 0 7

PC SPECIJALNI DODATAK

baze podataka. Ime možete slobodno menjati, ali pazite da ostavite ekstenzi­ju .accdb – ona identifikuje datoteku kao Access bazu podataka. Nakon pre­uzimanja predloška baze podataka sa

Interneta, Access će kreirati stvarnu ba­zu podataka, koja obično nema mno­go objekata. Najčešće ćete videti jednu tabelu i jedan formular; međutim, pre­dložak kreira mnogo više od jedne ta­bele ili jednog formulara.

Microsoft Access baza podataka je zapravo kolekcija objekata koji se čuva­ju u jednoj datoteci. Njih možete vide­ti upotrebom okna za navigaciju među objektima – Navigation Pane. Okno za navigaciju sadrži grupe sa nazivima Tables (tabele), Queries (upiti), Forms (formulari), Reports (izveštaji) i Mac‑ros (makro naredbe). Svaka od ovih grupa sadrži objekte gru­pisane po ti­pu. Klikom

na naziv grupe videćete objekte gru­pe, ponovnim klikom na naziv grupe objekti će biti sakriveni.

Objekat pokrećete tako što dva pu­ta kliknete na njega. Obično, on će se

učitati u najvećem delu ra­dnog ekrana koji se nalazi sa desne strane okna za na­vigaciju među objektima. Ukoliko ste već koristili neku od prethodnih ver­zija Access­a, primetićete razliku u načinu prikaza učitanog objekta: novi Ac‑cess učitava objekte tako da zauzmu maksimalnu ra­dnu površinu, dok se sva­ki objekat prikazuje u svo­joj zasebnoj kartici. Za po­

ređenje, u prethodnim verzijama se sva­ki objekat učitavao u sopstvenom pro­zoru, koji se pojavljivao iznad ostalih prozora. Ideja iza novog načina učita­vanja i prikaza objekata je da se olakša­ju snalaženje i navigacija među objekti­ma. Ovakav način prikaza objekata ni­je isključiv – možete zahtevati od objek­ta da se učitava na stari način, u svom zasebnom prozoru.

Objekti baze podataka se ne pojav­ljuju niotkuda. Neko je nekada morao da ih kreira, a to se čini u takozvanom dizajn pogledu objekta (Design View). Objekat učitavate u režimu izmene di­

Nak­o­n i­zbo­ra gru­pe predlo­žak­a, pro­gram pri­k­azu­je li­stu­ do­stu­pni­h template‑a sa sajta pro­i­zvo­đača

Tasteri­ za brz pri­stu­p po­gledu­ na o­bje‑k­at: o­sno­vni­ o­bli­k­, Pi­vo­tTable po­gled, Pi­vo­tChart po­gled i­ di­zajn po­gled

Page 15: Access2007knjiga

1�n o v e m b a r 2 0 0 7 PC

Mi­cro­so­ft Access 2007

zajna na različite načine, u zavisnosti od toga da li je objekat učitan ili ne. Ka­da je objekat učitan, kliknite desnim tas­terom miša na karticu objekta i odaberi­te Design View. Ako objekat nije učitan, pronađite ga u listi okna za navigaciju i

kliknite desnim tasterom na njegov na­ziv i zatim odaberite Design View stav­ku kontekstnog menija. Objekat možete pokrenuti u režimu izmene dizajna i ta­ko što ćete pritisnuti taster Ctrl i zatim dva puta kliknuti na naziv objekta.

Relaci­je i­zmeđu­ tabela

A­ccess baza podataka je relacioni sistem podataka, što znači da on

može čuvati veliku količinu podataka u različitim tabelama koje su međuso­bno u najčešćoj vezi jedan­ka­više. Pri­mera ima mnogo, ali pomenimo ne­ke od njih, kako bi ovakva relacija bi­la jasnija: jedan kupac može imati vi­še računa (kupovina), gde svaki poje­dinačni račun može imati više stavki (roba). U ovom slučaju možemo reći da baza podataka sadrži tri tabele, koje su povezane na određeni način. Tabe­la kupaca je sa tabelom računa u vezi jedan­ka­više (jedan kupac može ima­ti više računa), dok je tabela računa u vezi sa tabelom stavki računa takođe u relaciji jedan­ka­više. Konačno, može­mo reći, prateći relacije između tabela, da je tabela kupaca takođe u relaciji je­dan­ka­više sa tabelom u kojoj se čuva­ju stavke računa.

Baza podataka omogućava čuvanje informacija kojima se opisuje deo koji se odnosi na prodaju robe, dok je struk­tura tabela normalizovana tako da se po­daci u tabelama koje su osnovni ključ ne ponavljaju. U tabeli kupaca ćete sa­

mo jednom zapisati naziv kupca i osta­le njegove podatke i zatim za njega vezi­vati račune. U tabeli računa će se broj računa sa ostalim specifičnim podaci­ma pojavljivati samo jednom, dok ćete za nju vezivati stavke računa. U posle­dnjoj tabeli u nizu, tabeli stavki računa, dozvoljeno je višestruko pojavljivanje is­tog naziva robe, jer se ona nalazi kao po­slednja u nizu relacije ka­više.

Relacija jedan­ka­više se mora izgraditi na nivou tabela. Prema njiho­vom nazivu ili prema podacima koje čuvaju, Access ne može sam da zaključi koje tabele će biti u međusobnim relaci­jama i kakve će te relacije biti, niti će se one formirati same od sebe. Nakon što napravite plan, tj. strukturu budućeg informacionog sistema, vi ćete, tokom dizajniranja tabela, kreirati određene relacije – to je vaš deo posla, osim u slučaju kada ste upotrebili predložak u kome je neko to već pripremio. Relaci­je između tabela možete videti u zase­bnom oknu, koje se (logično) zove Re‑lationship Window; njega učitavate kli­kom na ribon Database Tools, pa zatim na taster Relationships.

Page 16: Access2007knjiga

1� PC n o v e m b a r 2 0 0 7

PC SPECIJALNI DODATAK

Svaki od objekata koje vidite u ovom prozoru predstavlja tabelu, dok su stavke unutar okna tabele nazivi po­lja tabela. Relacije između tabela može­te kreirati tako što ćete prevući polje iz jedne tabele na polje druge tabele. Ov­de morate voditi računa da su polja ko­

ja povezujete indeksna polja i da ona čuvaju isti tip podataka. Linije koje po­vezuju tabele su zapravo relacije. S je­dne strane relacije videćete umanjen broj 1, dok ćete s druge strane relaci­je videti simbol koji predstavlja ozna­ku za beskonačno (nalik položenoj ci­fri 8). Prva oznaka predstavlja deo rela­cije jedan­ka, dok druga oznaka pred­stavlja deo relacije ka­više.

Iako relacije (ali ne i položaj tabela u oknu relacija!) možete kreirati ili me­njati u ovom prozoru, preporučujemo vam da to ne činite. Rezultat verovatno

neće biti dobar; zapravo, postoji verova­tnoća da ćete pokvariti funkcije svih os­talih zavisnih objekata – upita, formu­lara ili izveštaja. Smatrajte prozor rela­cija, barem za početak, prozorom u ko­jem možete videti kako su tabele pove­zane. U sistemu sa dve ili tri tabele on nema veći značaj, jer ćete verovatno sa­mi zaključiti kako su tabele povezane, ali u sistemu sa više desetina tabela po­gled na relacije među tabelama ima ne­procenjivu vrednost.

Kako se onda kreiraju ovakve relaci­je? Tokom dizajniranja tabele kupaca, formirajte novo polje sa nazivom IDK‑upac, postavite tip polja na AutoNum‑ber i proglasite ovo polje primarnim ključem, klikom na ikonu sa sličicom ključa. AutoNumber je zaseban tip po­lja koje omogućava čuvanje Long Inte‑ger brojeva i koje se samo popunjava, najčešće u rastućem redosledu. Kada započnete unos podataka u polje nazi­va kupca, Access će sam dodati prvi sle­deći broj u ovo polje. Namena ovog po­lja je da u tabeli uvek imate jedinstve­nu oznaku zapisa koja će se uvek razli­kovati od ostalih oznaka unutar tabe­le. Ona je jedinstveni identifikator za­pisa. U određenim slučajevima može­te koristiti i druge oznake za jedinstve­ni identifikator zapisa, npr. jedinstve­ni matični broj građana može posluži­ti kao jedinstveni identifikator, osim u slučaju kada se pojave dva lica sa istim JMBG brojevima, što je moguće usled greške u administraciji. Preporuka je da uvek koristite AutoNumber tip polja

E­k­ran relaci­ja sa pri­k­azo­m relaci­ja tabela baze pri­mera No­rthwi­nd

Page 17: Access2007knjiga

1�n o v e m b a r 2 0 0 7 PC

Mi­cro­so­ft Access 2007

za jedinstveni identifikator, jer samo u tom slučaju možete biti sigurni da je ovaj broj zaista jedinstven.

Kada završite kreiranje tabele kupa­ca, tako što ste kreirali i sva druga po­trebna polja za opis kupca, zatvorite i sačuvajte tabelu (prema smernicama imenovanja objekata, predlažem naziv tabele tblKupci). Za ovu tabelu ćete veza­ti buduću tabelu (naziv tabele neka bu­de tblKupciRacuni) u kojoj će baza po­dataka čuvati podatke o računima kup­ca. Osim svih ostalih potrebnih polja za opis računa (broj, datum i slično), potre­bno je još jedno polje, kojim ćete svaki račun vezati za određenog kupca. Kre­irajte dodatno polje pod nazivom ID‑Kupac. Primetite da je naziv ovog polja isti kao naziv primarnog ključa tabele kupaca. Za tip polja odaberite Lookup Wizard, čime Access­u stavljate do zna­nja da želite da za ovo polje vežete po­datak iz druge tabele i da želite da vam čarobnjak pomogne u ovom postupku. U sledećim koracima čarobnjaka odabe­rite tabelu tblKupac i dva puta kliknite na naziv polja IDKupac. Nakon završet­ka rada čarobnjaka obavezno sačuvaj­te načinjene izmene. Ukoliko već niste sačuvali tabelu pod zadatim nazivom, ukucajte naziv i sačuvajte tabelu; u su­protnom, dovoljno je da kliknite na op­ciju Yes za snimanje izmena.

Primetićete da svi predlošci, a uje­dno i dosta baza podataka sa kojima ćete se sretati, za naziv polja ključa ko­riste naziv entiteta i zatim oznaku ID. Ja koristim obrnut redosled, jer nalazim

da je ovakvo polje lakše pronaći ukoli­ko je oznaka ID ispred naziva koji opi­suje identitet. Možete koristiti bilo koji od ova dva načina (IDKupac ili Kupac‑ID), ali u oba slučaja preporučujem da koristite ID za polje ključa.

Access je tokom ovog postupka za vas kreirao relacije između tabela. Pro­verite: otvorite prozor relacija i pogle­dajte da li su polja IDKupac u obe tabe­le povezana linijom sa oznakama 1 i po­loženom osmicom. U polju IDKupac tabele tblKupciRacuni nećete moći da upišete bilo šta, osim broja koji već pos­toji u tabeli tblKupci. Da biste račun ve­zali za određenog kupca, moraćete pr­vo da unesete ime kupca u tabelu kupa­ca. Prvom kupcu unetom u tabelu ku­paca Access će dati broj 1 u polju ID‑Kupac, drugom broj 2, trećem 3 i tako dalje. Kada je tabela kupaca popunje­na najmanje jednim zapisom, možete uneti podatke u tabelu tblKupciRacu‑ni. Primetićete da je polje IDKupac u ovoj tabeli opadajuća lista sa unapred zadatim vrednostima, od kojih može­te odabrati jednu. Brojevi koje ovde vi­dite su zapravo brojevi zapisani u polju IDKupac tabele tblKupci. Jednostavnije rečeno, račun možete pridružiti samo postojećem kupcu.

Duplim klikom na liniju koja pred­stavlja relacije između dve tabele do­bićete mogućnost podešavanja relacije. Ovde su značajne dve opcije: Cascade Update Related Fields i Cascade De‑lete Related Records. Obe opcije su dos­tupne samo u slučaju kada je uspostav­

Page 18: Access2007knjiga

18 PC n o v e m b a r 2 0 0 7

PC SPECIJALNI DODATAK

ljena relacija referencijalnog integrite­ta (kada su korišćeni primarni i sekun­darni ključevi, kako je opisano). Kada je uključena, prva opcija omogućava automatsko ažuriranje polja sekundar­nog ključa. Koristi se u slučaju kada je polje primarnog ključa promenljiva vrednost, npr. kada je broj računa pri­marni ključ i može se me­njati, ali je nema smisla koristiti kada je primar­ni ključ polje AutoNum‑ber tipa, jer se vrednosti u ovom polju ne mogu menjati. Druga opcija se odnosi na brisanje zavi­snih zapisa spoljne tabe­le: kada obrišete kupca u tabeli primarnog ključa, Access će zahtevati vašu potvrdu da obriše sve zapise u tabeli sekundarnog ključa (tabeli sa računima).

Tokom ovog postupka kreirali ste dva ključa: primarni i spoljni ili se­kundarni ključ. Polje IDKupac u tabe­li tblKupci je primarni ključ (ne može se duplirati), dok je polje IDKupac u ta­beli tblKupciRacuni spoljni ključ (mo­že se duplirati). Za polje ključa važe tri pravila: ono mora sadržati minimalan broj karaktera, mora biti stabilno (da se ne menja ili da se menja u izuzetnim slučajevima) i mora biti jednostavno. JMBG građana ne zadovoljava uslove da polje mora biti jednostavno i da sa­drži minimalan broj karaktera. S dru­ge strane, AutoNumber polje ne zado­voljava pravilo da je polje jednostavno,

jer brojevi koje Access generiše nema­ju nekog smislenog značaja za korisni­ka, ali ovakvo polje zadovoljava sve os­tale uslove, uključujući onaj koji kazu­je da se vrednosti u ovom polju ne sme­ju ponavljati.

Osim relacije jedan­ka­više, u Ac‑cess­u postoje i druge vrste relacija. Re­

lacija jedan­ka­jedan kazuje da se podatku iz jedne tabele pridru­žuje tačno jedan po­datak iz druge tabele. Ova relacija se koris­ti veoma retko i u spe­cifičnim slučajevima, jer, u krajnjem slučaju, možete spojiti polja obe tabele u jednu,

osim u slučaju kada vam je potrebno više od 255 polja da opišete događaj. Obično je 255 sasvim dovoljan broj po­lja za opisivanje bilo kog događaja; ako se ispostavi da nije, analizirajte struktu­ru tabele i proverite da li je dizajn svih polja odgovarajući.

Relacija jedan­ka­jedan se koristi u slučaju kada se određeni skup osobina za opis jednog entiteta koristi veoma retko. Umesto da opteretite glavnu ta­belu dodatnim kolonama, koje će uglav­nom biti prazne, polja koja se retko po­punjavaju možete izdvojiti u dodatnu tabelu i spojiti je relacijom jedan­ka­je­dan sa glavnom tabelom.

Poslednji tip relacije više­ka­više se ostvaruje upotrebom tri tabele, gde je tabela koja se nalazi između dve ta­

Du­pli­m k­li­k­o­m na relaci­ju­ do­bi­jate o­nno­ za u­ređi­vanje o­pci­ja relaci­je

Page 19: Access2007knjiga

1�n o v e m b a r 2 0 0 7 PC

Mi­cro­so­ft Access 2007

bele tzv. međutabela, koja je s obe spolj­ne tabele u relaciji jedan­ka­više. Pri­mer ovakve relacije je relacija između tabela računa i tabela proizvoda. Sva­ki račun verovatno će sadržati više od jednog proizvoda, a ujedno se svaki proizvod može naći na više različitih računa. Rešenje je da se kreira treća, pomoćna tabela, tblRacuniProizvodi. Na sličan način funkcioniše nova oso­bina Access­a koja omogućava da se u jednom polju tabele čuva više vrednos­ti. U pozadini se nalazi ništa drugo do sistem od tri tabele. Ovakav tip relaci­je ćete ređe kreirati upotrebom novog Microsoft Access­a.

No­rma­li­za­ci­ja­ po­da­ta­ka­Uz tabele se vezuje pojam normali­

zacije podataka. Normalizacija je zapra­vo niz pravila kojima se osigurava da se baza izvršava dovoljno brzo i efika­sno, omogućavajući pri tome da se po­daci na ispravan način povežu i ažurira­ju. Pravila normalizacije se baziraju na teoriji za koju se smatra da ju je prvi de­finisao dr E. F. Codd, radeći za korpora­ciju IBM, 1969. godine. Iako postoje ra­zličita pravila normalizacije, korisnici Access­a treba da znaju svega nekoliko osnovnih pravila.

Podatke raščlanite na najmanje mo­guće delove; podaci moraju biti razdvo­jeni kao atomi u molekulu. Na primer, za ime i prezime predvidite dva polja – jedno za ime, drugo za prezime. Pogle­dajmo primer: kod nas je uobičajeno da se prvo piše ime, pa zatim prezime.

Kada poželite da sortirate listu po pre­zimenima kupaca, ovaj zadatak će biti nemoguć ako su ime i prezime upisani u jednom polju. Rešenje je pisanje fun­kcije koja će izdvojite prezime iz polja naziva kupca, ali se problem može javi­ti kod kupaca sa dva prezimena ili ku­paca kod kojih je titula upisana uz ime i prezime.

Podaci koji se nalaze u jednoj tabe­li se ne smeju ponavljati u drugim tabe­lama. Na primer, podatak o prezimenu i imenu kupca ne sme da se nađe u ta­beli računa ili tabeli sa kupljenim arti­klima. Jedna tabela treba da sadrži po­datke samo o jednom entitetu.

Najveći problem sa kojim se može­te suočiti je odluka koliko tabela treba da kreirate i koje podatke po njima da razvrstate. Normalizacija je proces koji definiše seriju pravila čijom primenom se dobija uređena baza podataka sa op­timalnom strukturom. Druga normal­na forma zahteva da podaci u svim ko­lonama koje nisu deo ključa budu pot­puno zavisni od primarnog ključa. Dru­gim rečima, svaka tabela treba da sa­drži podatke o samo jednom subjektu. Npr. ako u jednoj tabeli imate podatke o kupcu i robi koju je kupio, razdvojte ih u dve tabele – jedna treba da sadrži podatke o transakciji i kupcu, a druga podatke o stavkama kupovine.

Uzmimo primer jedne tabele u ko­joj beležite kupca i svu robu koju je on kupio. Takva tabela će sadržati sve po­datke o kupcu i, recimo, tri kolone sa nazivom i količinom robe. U slučaju

Page 20: Access2007knjiga

�0 PC n o v e m b a r 2 0 0 7

PC SPECIJALNI DODATAK

da kupac kupi četiri artikla, morali bis­te da dodate dve nove kolone u tabelu, kako biste zabeležili četvrti artikal i ko­ličinu. Vremenom ćete dodavati kolo­ne za naziv artikla i količinu, dok ta­bela ne bude takve strukture da može da zabeleži sve artikle. Ovakav pristup je dobar sve do momenta kada poželi­te da napravite zbir količina po artikli­ma, što postaje praktično nemoguć za­datak. Razdvajanjem podataka u dve tabele, kako smo to već opisali, svaki zbir, suma ili grupisanje podataka pos­taju veoma jednostavni. U strukturi ta­bela razvijenoj po prvoj normalnoj for­mi ujedno niste ograničeni brojem ar­tikala koje kupac želi da kupi – da li je to samo jedan artikal ili milion njih sa­svim je svejedno, nikakve intervencije na dizajnu tabela nisu potrebne.

Da biste postigli treću normalnu formu, baza mora ispunjavati uslove prve dve. Treća normalna forma kazu­je da se u tabeli ne smeju čuvati rezul­tati proračuna i da se svi opisi mora­ju izdvojiti u zasebnim tabelama, koje se zatim povezuju preko jedinstvenih identifikatora. Rezultat primene treće normalne forme jeste da se naziv robe čuva u izdvojenoj tabeli, a da se sa ta­belom transakcija povezuje preko nje­nog jedinstvenog identifikatora. Kada se, sticajem okolnosti, promeni naziv robe, promenićete ga samo na jednom mestu, a promena će se reflektovati kod svih transakcija.

Četvrta normalna forma nalaže da se nezavisni entiteti podataka ne

smeju čuvati u istoj tabeli u slučaju da su oni u relaciji više­prema­više. Da biste osigurali dizajn vaše baze prema petoj normalnoj formi, početna tabe­la na koju su primenjena pravila nor­malizacije se može rekonstruisati od sastavnih tabela. Za ostvarivanje pe­te normalne forme, baza mora zado­voljavati uslove treće, a ukoliko pos­toje relacije više­prema­više onda i če­tvrte normalne forme. Četvrtu i petu normalnu formu možete ponekad za­nemariti, ali ne i smetnuti s uma kada projektujete bazu podataka. Loše pro­jektovana baza podataka često ne za­dovoljava četvrtu normalnu formu, a ponekad ni petu.

Postoje slučajevi kada se namerno primenjuje denormalizacija, da bi se podigle performanse programa u Ac‑cess­u. Ponekad ima smisla denorma­lizovati bazu, ali postupak treba doku­mentovati i obraćati pažnju na prome­ne koje mogu uticati na tačnost podata­ka denormalizovanih tabela.

Postoje i pravila integriteta podata­ka. Osnovna pravila govore o tome da u zavisnim tabelama ne može postojati zapis vezan za nepostojeći zapis u glav­noj tabeli. Pravila integriteta se svode na sledeće primere: podatke o narudž­bini ne možete vezati za kupca koji ne postoji; jedinstveni identifikator kup­ca u glavnoj tabeli ne možete menjati ako postoje podaci o narudžbinama za tog kupca; podatke o kupcu ne možete obrisati ukoliko postoje podaci o njego­vim narudžbinama. Poštujući navede­

Page 21: Access2007knjiga

�1n o v e m b a r 2 0 0 7 PC

Mi­cro­so­ft Access 2007

na pravila, dobro organizovani podaci se nalaze u nekoliko tabela između ko­jih se postavljaju relacije. Beneficije ko­je korisnici i programeri pri tome dobi­

jaju se ogledaju u sledeće tri osobine: očuvan je integritet podataka, baza u radu postiže optimalne performanse i, konačno, rad sa bazom je olakšan.

Krei­ranje tabeleIzbo­r ti­pa­ po­lja­

Nakon planiranja strukture baze podataka, utvrđivanja entiteta i

sastavljanja plana za opis svih informaci­ja, naredni veoma važan korak je kreira­nje osnovne strukture baze podataka – tabela. Tabele su objekti u kojima se in­formacije smeštaju i na osnovu njih se formiraju ostali objekti baze podataka. Kod složenijih baza podataka pristupite ovom koraku krajnje oprezno. Planirajte i analizirajte plan i po nekoliko puta. Po­kušajte da zamislite način kojim će kori­snik koristiti unete podatke, da li svaka tabela opisuje jedan entitet, da li su svi podaci na odgovarajućim mestima i da li će svako izračunavanje, grupisanje i izdvajanje biti moguće.

Pravilno definisana struktura tabe­la će ujedno doneti maksimalne perfor­manse. Baza može da radi brzo tokom razvoja sa tek pokojim unetim podaci­ma za probu, ali može da radi i veoma sporo u stvarnoj upotrebi, kada je kori­snik optereti gomilom podataka. Nare­dni saveti i tabela sa opisom tipova po­lja tabela će vam pomoći da optimalno definišete polja tabele.

Potrudite se da uvek definišete po­lje tabele prema tipu podataka koje će

čuvati. Ako će polje čuvati datume, de­finišite ga kao Date/Time; ako će čuva­ti brojeve, definišite ga kao Number (broj). Iako su brojevi podskup sku­pa karaktera, nemojte koristiti Text tip polja za čuvanje brojeva iz dva ra­zloga: sortiranje brojeva sačuvanih u brojčanom tipu polja i tekstualnom ti­pu polja nije isto. Ujedno, sa brojevima sačuvanim u tekstualnom tipu polja ne možete obaviti proračune, jer Access posmatra broj upisan u tekstualno po­lje kao string tip podataka. Kao što sa­biranje a + b neće dati rezultat, tako ni sabiranje brojeva tj. slova 1 + 2 neće da­ti rezultat 3, ali sabiranje 1+2 hoće. Bro­jeve sačuvane u brojčanom tipu polja možete formatirati po želji – da li će bi­ti prikazane decimalne oznake i ozna­ke za svaki treći stepen 10 (tačke ispred svake treće cifre broja) ili ćete prikazati dve decimale i oznaku valute, izbori su koje imate u brojčanom tipu polja, ali ne i u tekstualnom.

Retki izuzeci kada se brojevi čuvaju u tekstualnom polju se odnose na broje­ve koji predstavljaju određene kodove, kao što su npr. poštanski brojevi ili bro­jevi telefona. Pravilo je jednostavno: ako ne želite da sačuvani broj koristite

Page 22: Access2007knjiga

�� PC n o v e m b a r 2 0 0 7

PC SPECIJALNI DODATAK

u matematičkim operacijama, sačuvaj­te broj u tekstualnom polju. Broj tele­fona možete čuvati u numeričkom po­lju formatiranom kao xxx/xxx‑xxxx, ali ako korisnik bude tražio broj telefo­na u obliku 011/123­4567 neće dobiti nijedan rezultat, zato što Access interno čuva ovaj broj kao 111234567 (inicijal­na nula nema smisla kod brojeva).

Imena ljudi sačuvajte u dva polja, po jedno za ime i prezime. Kada pože­lite da sortirate listu po prezimenima, učinićete to bez ima­lo muke. Ova dva po­lja uvek možete spoji­ti u jedno, iskazom: tx‑tIme " " txtPrezime, ali ćete ih teško razdvoji­ti. Novčane vrednosti čuvajte u Currency po­lju. Osim olakšanog for­mata broja, proračuni nad ovim poljem se izvršavaju brže nego kod polja tipa Number. Procenti se beleže u Number tipu polja for­matiranom kao Percentage. Novi Ac‑cess donosi poboljšanu kontrolu unosa i tumačenja unetih procenata, tako da se unet broj 10 tumači kao 10% umesto 1000%, kako je ranije bilo. Access auto­matski konvertuje 10 u 0,1.

Za čuvanje slika u bazi podataka je predviđeno OLE object polje. Osim u slučaju kada su slike male, čuvanje slika (fotografija) u bazi podataka nije dobra ideja. Ako su slike velike, ako se

često menjaju ili ih koristite i u druge svrhe, čuvajte ih u zasebnom folderu, a u bazi podataka zabeležite punu puta­nju do slike. Čitanjem putanje do slike i upotrebom osobine Picture, takvu sli­ku uvek možete prikazati na formularu ili izveštaju. Ovakav pristup ima samo jednu manu: kada bazu i folder sa slika­ma premestite, putanje do slika će biti pogrešne, što zahteva izmenu putanja.

Rezultate proračuna nikada ne čuvajte u tabelama. Polja u tabelama bi

uvek trebalo da sadrže osnovne podatke, a do proračunatih vrednos­ti uvek možete doći po potrebi. Problem sa čuvanjem proračuna u tabeli, osim što troše prostor, je taj da takvi podaci nikada ili uglav­nom nikada nisu ažur­ni. Vrednosti kao što su cena ili količina se mogu menjati nakna­dno. Kada to učinite, morate pokrenuti pro­

gram za proračun i zapisati nove rezul­tate proračuna u tabelu. Ukoliko to ne učinite, dobićete pogrešne vrednosti za ukupnu količinu i vrednost. Prepustite programu da obavi proračune pre ne­go što prikaže rezultat. Jedino na ovaj način možete biti sasvim sigurni da su svi proračuni tačni.

Konačno, nakon što završite dizaj­niranje tabela, a niste sigurni da ste sve dobro uradili ili jednostavno želite

Lo­o­k­u­p Wi­zard po­zi­va čaro­bnjak­a za po­vezi­vanje sa po­ljem dru­ge tabele

Page 23: Access2007knjiga

�3n o v e m b a r 2 0 0 7 PC

Mi­cro­so­ft Access 2007

da proverite dizajn, Access će vam po­moći u tome. Table Analyzer Wizard (čarobnjak za analizu tabela) će analizi­rati sve tabele, pregledati da li se neke informacije ponavljaju i predložiti ra­zdvajanje tabela (normalizacija). Dru­gi čarobnjak, Database Performance Analyzer (čarobnjak za analizu perfor­mansi baze podataka) će analizirate re­lacije između tabela i sugerisati pobolj­šanja. Predlažemo da upotrebite oba čarobnjaka za analizu nove baze poda­taka, čak i ako ste sigurni da ste dobro dizajnirali tabele.

Kada definišete podtip Number ti­pa polja, odaberite onaj koji će omo­gućiti smeštanje najvećeg broja. Ako vrednost u polju neće preći 255, odabe­rite Byte podtip. Prvi sledeći, veći pod­tip polja je Integer, koji može da sačuva vrednosti između ­32768 do +32767 (bez decimala!). Npr. ako želite da sačuvate kućni broj u brojčanom tipu polja, dobar izbor je Integer podtip, ia­ko će i Byte ponekad biti dovoljan. Pod­tip odaberite komotno, ali nemojte pre­terivati: svakako nećete odabrati Dec‑imal tip (omogućava čuvanje brojeva sa 28 decimalnih mesta) za kućni broj, jer, osim što troši mnogo memorije i us­porava rad, kućni brojevi nisu izraženi u decimalnom obliku. Radi lakšeg sna­laženja u odabiru vrste brojčanog tipa, upotrebite priloženu tabelu.

Yes/No tip polja opisuje samo dve osobine – da ili ne. U Access­u može­te koristiti bilo koji od narednih iska­za: Yes ili No, True ili False, On ili Off,

­1 ili 0. Ovi iskazi se nazivaju i Bool‑ean, odnosno logički iskazi. Za Y ili N, odnosno D ili N, možete koristiti i tek­stualno polje sa ograničenjem unosa na 1 karakter, ali ako koristite Yes/No polje tokom dizajna formulara ili izve­štaja na raspolaganju će vam biti po­lja Check Box, Option Button ili Tog‑gle Button. Ova tri objekta omogućava­ju unos podataka klikom miša ili pritis­kom tastera za razmak kada je objekat u fokusu. Ukoliko insistirate na Da ili Ne umesto engleskih Yes ili No, onda kreirajte tabelu sa jednim poljem (ogra­ničenje dužine na dva karaktera) i u nju upišite Da i Ne (može i ćirilično). Zatim upotrebom Lookup čarobnjaka povežite ovu tabelu na mestu gde želite da koristite ove logičke iskaze. U ovom slučaju će korisnik birati jednu od ove dve vrednosti iz opadajuće liste.

Često ćete biti u dilemi da li da ko­ristite Text ili Memo tip polja. Prvi tip može da sačuva najviše 255 karaktera, drugi 65535. Oba polja dinamički tro­še memoriju u zavisnosti od broja une­tih karaktera, pa se postavlja logično pi­tanje: zašto ne uvek Memo tip umesto

Razli­či­ti­ nači­ni­ so­rti­ranja bro­jeva u­ zavi­sno­sti­ o­d ti­pa po­lja

Sortiranje brojeva Sortiranje teksta1 12 126 212 2525 6

Page 24: Access2007knjiga

�� PC n o v e m b a r 2 0 0 7

PC SPECIJALNI DODATAK

Ti­po­vi­ po­lja tabela sa o­pi­so­m i­ u­tro­šk­o­m memo­ri­je

Tip polja Opis polja Potrošnja memorijeText Dozvoljava upis alfanumeričkog niza do najviše

255 karaktera. Broj karaktera možete ograničiti na bilo koji manju vrednost od 255, a podra­zumevana vrednost je 255 karaktera

Zavisno od dužine teksta u polju; od 0 to 255 bajta

Number Omogućava upis brojeva. Raspoloživi su različiti podtipovi podataka koji se nalaze u listi Field Size. Način prikazivanja brojeva određujete menjajući vrednost liste Format.

1, 2, 4 ili 8 bajtova, zavis­no od odabranog podti­pa. Replication ID zauz­ima 16 bajtova

AutoNumber Posebna numerička vrednost koju Microsoft Access automatski popunjava rastućim ili nasu­mično izabranim vrednostima

4 bajta (Long Number) odnosno 16 bajtova za replication ID tip

Currency Fiksni format broja sa četiri decimalna mesta predviđen za zapis novčanih vrednosti. Koris­tite ovaj tip polja kada želite da izbegnete greške u zaokruživanju prilikom računanja

8 bajtova

Data/Time Rezervisano za upis datuma i/ili vremena. Način prikaza datuma i vremena određujete podešava­jući listu Format.

8 bajtova

Yes/No Logičko polje. Za istinite vrednosti možete ko­ristiti On, True, Yes ili –1, dok za negativne Off, False, No ili 0. Po potrebi za True možete ko­ristiti i bilo koji broj različit od nule, mada se preporučuje ­1.

1 bit

OLE Oject Omogućava unos slika, zvućnih zapisa ili drugih tipova binarnih datoteka.

0 bajtova to 1 GB, zavis­no od onoga što je saču­vano u polju

Hyperlink Polje rezervisano za unos hiper veza ka Internet stranicama ili sadržajima na lokalnoj mreži.

0 bajta do 2 KB za svaki od tri dela koji formira­ju adresu (najviše 64.000 karaktera ukupno)

Memo Koristi se za dodatne opise tekstualnog tipa i može sadržati do 65.536 karaktera.

0 bajtova do 64 KB

Lookup Wizard Pokreće čarobnjaka koji omogućava povezivanje sa poljem druge tabele. U povezano polje možete upisati samo vrednost koja postoji u polju dru­ge tabele. Koristi se za lako kreiranje relacija između tabela

Generalno 4 bajta; pre­ciznij rečeno, onoliko memorije koliko zahva­ta primarni ključ pove­zane tabele

Attachment Priključene datoteke bilo kog podržanog tipa. Moguće je priključiti više od jedne datoteke u jednom polju

Promenljivo zauzeće me­morije zavisno od ono­ga šta je sačuvano u polju. Ograničenje po priključenoj datoteci je 256 MB

Page 25: Access2007knjiga

��n o v e m b a r 2 0 0 7 PC

Mi­cro­so­ft Access 2007

Text tipa? Memo tip polja ne može da se indeksira i ne može da služi kao pri­marni ili sekundarni ključ. Ako planira­te da pretražujete ili sortirate po ovom polju – Text tip je bolji izbor. Memo tip se obično koristi za ono što mi zovemo

napomena – proizvoljni tekst kojim se pružaju dodatne informacije.

Postoje tri načina za kreiranje po­lja tabele. Najlakši je onaj koji zahteva najviše poznavanja dostupnih vrsta po­lja i njihovih osobina – kreiranjem no­ve tabele u dizajn­pogledu. On je uje­dno i najfleksibilniji, jer su vam dostu­pne sve postojeće osobine polja. Dru­gi način je odabirom predložaka polja. Access 2007 nudi veliki broj unapred definisanih polja za umetanje u novu tabelu. Da biste videli listu, kliknite na New Field taster u grupi Fields and Columns ribona Datasheet. Dostupna polja su izlistana po kategorijama; pr­va kategorija uključuje osnovna polja, dok su ostale kategorije izdeljene u spe­

cifične kategorije za različite namene. Poslednji način se odnosi na automat­sko utvrđivanje vrste podataka i auto­matsko definisanje tipa podataka. Po­lje druge tabele možete kopirati u no­vu tabelu, izborom tastera Add Exist‑

ing Field. Access prikazuje listu tabela ispred kojih se nalazi znak +. Klikom na ovaj znak videćete listu polja tabele. Dovoljno je da dva puta kliknete na na­ziv polja, nakon čega se pokreće Look‑up Wizard.

Uključite indeks nad poljima koja će korisnik pretraživati. Indeksirano po­lje se značajno brže pretražuje od polja koje nije indeksirano. Indekse valja ko­ristiti nad svim poljima koja koristite za povezivanje u upitu ili svim poljima po kojima se podaci sortiraju. Njega nije po­trebno da uključite nad poljima koja se koriste kao ključ u relaciji jedan­ka­više, jer Access to čini automatski. Međutim, indekse ne valja koristiti u poljima ko­ja sadrže veliki broj podataka koji se po­

Po­dvrste nu­meri­čk­o­g po­lja

Podvrste numeričkog polja Čuva vrednostiByte od 0 do 255Integer od ­32768 do 32767Long Integer nešto ispod ­2 milijarde do nešto preko 2 milijardeSingle Decimalni broj sa 7 decimalnih mestaDouble Decimalni broj sa 14 decimalnih mestaDecimal Decimalni broj sa 28 decimalnih mestaReplication ID Jedinstven identifikator zapisa; koristi se u procesu

sinhronizacije podataka (važi samo za MDB format, u novom ACCDB formatu ne postoji)

Page 26: Access2007knjiga

�� PC n o v e m b a r 2 0 0 7

PC SPECIJALNI DODATAK

navljaju. Primer ovakvog polja je naziv mesta ili poštanski broj gde se pojavlju­je svega nekoliko različitih mesta i po­

štanskih brojeva. Loša strana indeksa je ta što oni troše više memorije i uspora­vaju proces dodavanja, uređivanja ili bri­sanja zapisa. Dakle, nemojte ih koristiti na svakom polju tabele. U Access­u su dostupna dva načina indeksiranja: ono koje dozvoljava i ono koje ne dozvoljava dupliranje unosa.

Attachment je novo polje tabele Access­a 2007. Kada polje definišete kao Attachment, onda njemu možete priključiti jednu ili više datoteka, i to za svaki zapis tabele. Npr. zapisu u ta­beli radnika moći ćete da priključite sli­ku zaposlenog i dokument sa radnom biografijom. Ovo polje, kao i OLE ob‑ject polje, dramatično uvećava veličinu baze podataka, ali vas oslobađa veze ka dokumentu koji se nalazi negde na disku. Zapravo, datoteke koje ste pri­ključili ovom polju možete obrisati sa diska. Ograničenje po priključenoj da­

toteci iznosi 256 MB, dok ukupno ogra­ničenje svih datoteka ne sme preći 2 GB, koliko je ograničenje veličine sa­

me baze podataka. U poza­dini Access kreira dodatnu tabelu, u relaciji jedan­ka­vi­še sa tabelom u kojoj se na­lazi Attachment polje. Ova­kvo polje u tabeli ćete prepo­znati po simbolu spajalice, sa brojem u zagradi koji ka­zuje koliko je datoteka pri­ključeno zapisu. Datoteku iz ovog polja pokrećete ta­ko što dva puta kliknete na simbol spajalice. Zatim se

pokreće odgovarajući program i učita­va datoteku. Sve datoteke smeštene u ovo polje možete snimiti na disk, čime one postaju nezavisne datoteke.

Fo­rma­ti­ra­n­je po­lja­ ta­beleSvako od polja tabele ima neku od

osobina koje su zajedničke za sva polja, ali i specifične osobine koje zavise od ti­pa polja. Osobine polja se podešavaju za svako polje pojedinačno. Da biste vi­deli i uređivali osobine polja, pređite u dizajn­pogled tabele i odaberite neko od polja klikom bilo gde u koloni defi­nicije naziva i tipa polja (gornje okno dizajna tabele). Osobine polja videćete u donjem oknu.

Caption osobina se odnosi na naziv polja, kako će ono biti prikazano. Vrati­mo se načas na savet o imenovanju po­lja. Za polje datDatumKupovine može­te zadati naziv u Caption osobini Da‑

A­ttachments ti­p o­mo­gu­ćava smeštanje razli­či­ti­h do­k­u­menata, i­ to­ vi­še o­d jedno­g za svak­i­ zapi­s

Page 27: Access2007knjiga

��n o v e m b a r 2 0 0 7 PC

Mi­cro­so­ft Access 2007

tum kupovine. Kada učitate tabelu za unos podataka ili takvo polje postavite na formular ili izveštaj, naziv polja će biti prikazan po tekstu unetom u Cap‑tion osobini, umesto datDatumKupo‑vine biće prikazano Datum kupovine.

Brojčana, odnosno polja koja čuva­ju novčane vrednosti imaju specifične formate, koje možete videti u tabeli.

Format brojčanog polja nije ogra­ničen samo na navedene formate. Ko­risniku je ostavljena mogućnost da sam formatira polje, čak i u zavisnos­ti od onoga što je uneto u polje. Da bis­te koristili ovakvu mogućnost, mora­te uneti format koji se sastoji od četi­ri dela, međusobno odvojena tačka­za­rezom, npr. #; ##0; (#,##0);"‑", "ništa". Prvi deo formata se odnosi na pozitiv­ne brojeve, drugi na negativne, treći na vrednosti 0 i četvrti na brojčano polje koje nema unetu vrednost. Možete uti­

cati i na boju broja, tako da pozitivne brojeve prikaže plavom bojom, a nega­tivne crvenom. Dovoljno je da navede­te naziv boje ograđen zagradom. Nazi­vi boja su: Black (crno), Blue (plavo), Green (zeleno), Cyan (ružičasta), Red (crvena), Magenta (ljubičasta), Yellow (žuta) i White (bela). Napomena: u for­mularima koristite uslovno formatira­nje (Conditional Formatting) za „boje­nje“ brojeva u zavisnosti od vrednosti.

Field Size je osobina kojom se određuje najveći broj karaktera koji se mogu uneti u polje. Ovo je praktična osobina kojom možete kontrolisati un­os podataka. Kada znate da je unos ograničen na određeni broj karaktera, kao kod poštanskog broja na pet karak­tera (po prethodnom savetu da se po­štanski broj unosi u tekstualno polje!), možete ograničiti veličinu polja na pet karaktera. Svaki pokušaj unosa dužeg

Format brojčanog polja Kako se broj prikazujeGeneral Number Prikazuje broj sa onoliko decimala koliko korisnik unese;

kod celih brojeva nema decimalaCurrency Prikazuje broj sa simbolom lokalne valute (zavisno od re­

gionalnih podešavanja). Uvek se prikazuju dve decimaleEuro Prikazuje znak € ispred svakog unetog broja. Uvek se prika­

zuju i dve decimaleFixed Prikazuje broj sa određenim brojem decimala – kako je

podešena osobina Decimal PlacesStandard Prikazuje broj sa tačkom koja odvaja svake tri cifre. Broj

decimala se određuje osobinom Decimal PlacesPercent Prikazuje broj kao procenat, pomnožen sa 100 (interno se

čuva u decimalnom obliku), sa znakom procentaScientific Prikazuje broj i eksponent (E+00)

Fo­rmati­ bro­jčano­g po­lja

Page 28: Access2007knjiga

�8 PC n o v e m b a r 2 0 0 7

PC SPECIJALNI DODATAK

teksta će rezultovati porukom o grešci. Ova osobina se kod brojčanog polja za­sebno podešava, prema podtipu broja koji se može uneti (kako je prikazano na slici vrste numeričkog polja). Za tek­stualno polje pretpodešena vrednost je 255; za numeričko polje osnovna vre­dnost je Long Integer. Obe pretpode­šene vrednosti možete promeniti na oknu Access opcija. Datumska polja se formatiraju prema osobini podešenoj u Format polju, a dozvoljeni su i kori­snički formati. Za dodatna pojašnjenja oko načina formatiranja datumskog po­lja (važi i za sva ostala polja), postavite kurzor u Format osobini i pritisnite F1.

Kod formata tekstualnog polja dos­tupne su neke specifične osobine, koje se određuju određenim karakterima. Na veličinu slova tekst polja utičete upi­som karaktera >>, odnosno << za pri­

kaz unetog teksta velikim, odnosno malim slovima. Boju teksta određujete na­zivom boje, ograđenim srednjom zagradom – []. Dostupne boje su: black, blue, green, cyan, magen‑ta, yellow i white. Kada je potrebno da odredite mi­nimalni broj karaktera koje je potrebno uneti u tekstualno polje, koristite znak @. Tri ovakva znaka u formatu polja zahtevaju od korisnika da unese naj­manje tri karaktera.

Default Value određuje vrednost koja će biti automatski po­nuđena u novom zapisu. Međutim, po­drazumevanu vrednost možete zadati i u formatu polja. Koristite znak / i iza njega navedite tekst. Na primer, /Neo‑phodno će prikazati tekst Neophodno u svakom novom zapisu.

Rich Text format dozvoljava forma­tiranje teksta unutar polja. Ovo je još jedna od novih osobina Access­a 2007 i dostupna je samo za Memo tip polja – podesite Text Format na Rich Text. Formatiranjem teksta se smatra postu­pak u kome u odabranom tekstu može­te izmeniti font, veličinu, boju, porav­nanje i druge osobine formata koje ko­ristite npr. u Word­u. Opcije za forma­tiranje teksta su prikazane na kartici ri­bona Home, a možete ih koristiti dok tekst obrađujete u prikazu podataka za unos i uređivanje informacija.

O­pci­je za fo­rmati­ranje po­lja se nalaze u­ do­njem delu­ desi­gn vi­ew o­k­na tabele

Page 29: Access2007knjiga

��n o v e m b a r 2 0 0 7 PC

Mi­cro­so­ft Access 2007

Podaci se unose u bazu upotre­bom tabela, formi ili čak upi­

ta. Forme su namenski objekti i služe isključivo za unos ili analizu podataka. Za lične potrebe i na nešto nižem nivou možete koristiti tabele, koje pružaju de­limično komforan način za unos infor­macija. Iako su predviđene za smešta­nje informacija, one ipak nisu namenje­ne za direktan rad. Iako deluje kontra­diktorno, tvrdnja je tačna, jer tabele ne­maju tzv. događaje koji se mogu progra­mirati. Navodimo jednostavan primer: na polju forme možete imati nevezano polje koje prikazuje rezultat proračuna druga dva polja koja korisnik popunja­va. Čim korisnik popuni oba polja, ak­tivira se program koji proračunava vre­dnost i prikazuje je u nevezanom polju. Na nivou tabele ovakvo polje ne posto­ji. Nevezano polje se odnosi na polje for­me koje nije u vezi sa poljem tabele i čiji sadržaj je informativne prirode – nigde se ne za­pisuje. Između polja se možete kretati upotre­bom tastera sa strelica­ma, a važe i standardne kombinacije sa tasteri­ma Ctrl, Shift, Home i End. Na sledeće polje zapisa prelazite pritiskom na taster En­ter, odnosno Tab.

Kod tabela u relaciji jedan­ka­vi­še postoji zgodna osobina koja omo­

gućava da popunjavate obe tabele. Ka­da ovakva relacija postoji i otvorite ta­belu sa primarnim ključem, u prvoj ko­loni videćete znak +. Klikom na ovaj znak videćete listu svih zapisa tabele se­kundarnog ključa, i to samo one zapise koji su u vezi sa tekućim zapisom tabe­le primarnog ključa. Za sakrivanje za­pisa tabele sekundarnog ključa pritisni­te znak ­, koji se sada nalazi na mestu znaka +. Moguće je prikazati sve zapi­se tabele sekundarnog ključa za sve za­pise tabele primarnog ključa: kliknite na taster More u grupi Records na kar­tici ribona Home, zatim odaberite Sub‑datasheets > Expand All (ribbon bi tre­balo da pojednostavi izbor opcija). Su­protno, da biste sakrili sve vezane zapi­se odaberite opciju Collapse All, koja se nalazi na istom mestu ribona.

Dubina po kojoj možete otvarati zapise zavisnih tabela nije ograničena.

U relacionom sis­temu pet tabela, gde su sve u vezi je­dan­ka­više, može­te poći od prve ta­bele i otvarati re­dom zavisne tabe­le sve do pete. Dru­gim rečima, možete

popunjavati sve tabele relacionog siste­ma tako što ćete otvoriti prvu, sa pri­marnim ključem najvišeg nivoa. Polje sa znakom +, odnosno – ćete videti i u

Uno­s po­datak­a u­ bazu­

Ko­mande za navi­gaci­ju­ i­ pro­nalaženje po­datak­a su­ smeštene u­ do­njem delu­ tabele

Page 30: Access2007knjiga

30 PC n o v e m b a r 2 0 0 7

PC SPECIJALNI DODATAK

upitu, ali samo kod one strukture upita gde je ovakav prikaz moguć.

Access 2007 donosi i posebno polje namenjeno prikazu kumulativnih vre­dnosti, i to na nivou tabele. Total row se može koristiti za prikaz brojača ko­lone, za prikaz sume unetih vrednos­ti, proseka ili minimalnih i maksimal­nih vrednosti. Sve one su zapravo po­sebne funkcije, koje se nazivaju aggre‑gate funkcije i koje se koriste u drugim objektima (upitima, formama, izvešta­jima ili programu). Ovakvo polje se kreira u tri koraka. Otvorite tabelu za uređivanje podataka. Kliknite na taster Totals u grupi Records kartice ribona Home. Zatim kliknite na praznu ćeliju u vrsti Total row; videćete strelicu ko­ja obeležava opadajuću listu. Izaberi­te jednu od ponuđenih opcija: None (ništa), Sum (zbir), Average (prosečna vrednost), Count (brojač), Maximum, Minimum, Standard Deviation (statis­tička funkcija koja opisuje koliko su vrednosti međusobno udaljene; što je međusobni odnos manji, ova vrednost je manja) i Variance (takođe statistička formula, koja se koristi u teoriji verova­tnoće i statistici; jedna od mera statis­tičke disperzije). Za tekstualna i Memo polja dostupna je samo funkcija Count, koja broji unete podatke (prazna polja se preskaču). Za polje tipa datum dostu­pne su funkcije Average, Count, Maxi‑mum i Minimum.

Za uklanjanje ove kolone kliknite ponovo na Totals. Ako se predomislite i ponovo poželite da uključite ovu kolo­

nu, ponovite prethodni postupak. Ac‑cess će prikazati kolonu sa odabranim funkcijama, onakvu kakva je bila kada ste je isključili.

Ko­n­verzi­ja­ i­z dru­gi­h fo­rma­ta­Iako će se većina baza podataka ko­

ristiti za popunjavanje od nule, većina korisnika već poseduje podatke orga­nizovane u nekom drugom formatu. Mahom svi novi korisnici Access­a počinju rad sa ovim programom na­kon što su zaključili da mogućnosti i format njemu najbližeg programa, Excel­a, više ne zadovoljavaju njiho­ve potrebe. Naime, u Excel­u je mo­guće formirati prostu bazu podataka, uređujući podatke u tabelarnom pri­kazu. Ponekad ovakav pristup zadovo­ljava, jer su uvek dostupne Excel­ove moćne alatke za analizu i proračun. Problem nastaje kod veće količine in­formacija, koje se mogu nalazi na više listova ili čak u više datoteka. Podaci postaju razuđeni i njihovo ažuriranje komplikovano i korisnik, zatim, poželi da podatke organizuje u integrisani sis­tem na koji će moći da se osloni, koji će voditi brigu o integritetu informaci­ja. Ukratko, umesto da se koncentriše na suštinu i vrednost informacija, do­bar deo vremena korisnik troši na ažu­riranje strukture. Kod Access­a, iz ugla korisnika, toga nema. Kad programer završi svoj deo posla, korisnik dobija program koji se praktično ne razlikuje od drugih programa načinjenih nekim od paketa za programiranje, program

Page 31: Access2007knjiga

31n o v e m b a r 2 0 0 7 PC

Mi­cro­so­ft Access 2007

koji je u stanju da zadovolji informaci­oni sistem poslovnih procesa.

Access je poznat po mogućnosti ra­zmene podataka sa velikim brojem for­mata, a nova verzija je dodatno una­pređena i na ovom polju (zapravo, ma­lo toga je ostalo isto kao u Access­u 2003). Najjednostavniji način za pre­

nos podataka iz drugog programa u Access tabelu je upotrebom komandi za kopiranje i nalepljivanje (komande Copy i Paste). Pri tome vodite računa da se podaci u programu iz kojeg ko­pirate nalaze u tabelarnom obliku ili, ako je reč o tekstualnom formatu, da su podaci odvojeni zapetama ili tabula­torom. Kako je svako polje Access tabe­le strogo definisano po tipu, podaci ko­je kopirate moraju odgovarati definisa­nim poljima. Konačno, Access će sam rasporediti podatke po odgovarajućim kolonama, i to počev od one u kojoj se nalazi kurzor.

Kopirani podaci se smeštaju na clipboard – privremeno spremište i

odatle u ciljni program. Kada kopirate podatke iz programa Microsoft Office paketa, onda možete koristiti i Office Clipboard, unapređenu privremenu ostavu koja funkcioniše samo u ovom paketu. Ova ostava može da pamti do 24 kopirana objekta, a pristup Office Clipboard­u je moguć upotrebom tas­

tera Clipboard na kar­tici Home. To je za­pravo mali taster po­red reči Clipboard. Nalepljivanje kopira­nog sadržaja se ostva­ruje klikom na ikonu u Clipboard listi, dok kopirani sadržaj mo­žete ukloniti desnim klikom nad ikonom sadržaja i odabirom Delete opcije. Opci­

jom Paste All nalepljujete kompletan sadržaj Office Clipboard­a (nije prepo­ručljivo ako struktura svih kopiranih podataka nije ista!).

Da bi paste bio moguć, kopirani podaci moraju zadovoljiti mnoga stro­ga pravila, ona koja važe u bazi podata­ka s kojom radite. Navedimo neka od njih. Polja u kopiranom sadržaju mora­ju odgovarati strukturi tabele i, ujedno, moraju odgovarati po tipu polja. Dupli­rane podatke ne možete ubaciti u polje koje služi kao primarni ključ a nije defi­nisano kao AutoNumber tip (ovo polje se samo popunjava). Takođe, podatke ne možete nalepiti na polje koje je sa­kriveno – pre nego što aplicirate opci­

A­ccess mo­že da u­vo­zi­ i­ i­zvo­zi­ po­datk­e u­ razni­m fo­rmati­ma

Page 32: Access2007knjiga

3� PC n o v e m b a r 2 0 0 7

PC SPECIJALNI DODATAK

ju nalepljivanja podataka, proverite da li su sve kolone prikazane. Access će od­baciti i sve podatke (polja) koji ne zado­voljavaju pravila validacije za svako po­lje ponaosob.

Radi sigurnosti postojećih podata­ka, ali i kako biste osigurali da svi poda­ci budu nalepljeni, predlažemo da po­datke kopirate u kopiju tabele, a ne di­rektno u samu tabelu gde želite da pre­nesete podatke. Kada u kopiju tabele uspešno nalepite podatke, možete ih is­kopirati i nalepiti u glavnu tabelu, ili brže, možete uposliti Append upit. Ko­načno, ako ste sasvim sigurni da struk­tura podataka tabele i struktura poda­taka odgovaraju jedna drugoj, upotre­bite opciju Paste Append koja se nalazi na kartici ribona Home.

Napredni način prenosa podataka se odnosi na skup akcija kojima uvozi­te podatke direktno iz drugog forma­ta datoteka. Opcija za pokretanje čaro­bnjaka za uvoz podataka se nalazi na kartici ribona External Data. Dovolj­no je da pratite i odgovarate na pitanja čarobnjaka i da odlučite želite li da uve­zete podatke u novu tabelu ili u posto­jeću tabelu. Jedna specifična osobina Access­a je mogućnost linkovanja spolj­nih datoteka različitih formata. Umes­to uvoza podataka, Access kreira ima­ginarnu tabelu u kojoj prikazuje po­datke. Npr. ako redovno održavate ra­dni listu u Microsoft Excel­u i želite da

isti (ažurni) podaci uvek budu dostu­pni Access bazi podataka, napravićete link ka Excel datoteci. Kod većine lin­kovanih tabela ne možete uređivati sa­držaj, što zavisi prevashodno od vrste linkovane datoteke. Ali, takve podat­ke možete koristiti za prikaz i obradu, analizu ili upotrebu u moćnom Ac‑cess­ovom sistemu za formiranje izve­štaja. Da li ćete podatke uvesti ili sa­mo napraviti vezu ka njima, zavisi od toga da li podatke ažurirate i u nekom drugom programu, odnosno da li želi­te da ih koristite u oba programu tako da oni uvek budu ažurirani.

Nova opcija u daljoj integraci­ji između paketa Office programa je mogućnost prikupljanja podataka iz e‑mail poruka. Access, uistinu, ne mo­že da zameni Outlook, program za rad sa elektronskom poštom, ali može da kreira elektronsku poruku koja sadrži formular za popunjavanje. Formular se prosleđuje korisniku, on popunjava po­datke i vraća poruku. Access, zatim, pre­uzima sadržaj poruke i prenosi podat­ke u tabelu. Korisniku možete prosledi­ti elektronskom poštom formular koji već sadrži podatke, u cilju njihove pro­vere. Primer se odnosi na informacije o kontaktu, kao što su adresa, telefon ili naziv kompanije. Ovakve informaci­je možete proslediti vašem poslovnom partneru, koji će ih pregledati i eventu­alno ispraviti.

Page 33: Access2007knjiga

33n o v e m b a r 2 0 0 7 PC

Mi­cro­so­ft Access 2007

Prikazom sirovih podataka mo­žete započeti jednostavnu anali­

zu. Na ovom nivou možete sortirati po­datke po bilo kom polju, odnosno mo­žete filtrirati podatke ili pronaći želje­ne informacije. Upotrebom upita može­te lako doći i do ostalih sumarnih poda­taka. Sortiranje podataka je veoma je­dnostavna operacija: dovoljno je da se opredelite za kolonu po kojoj želite da sortirate podatke i odaberete jedan od dva načina sortiranja, rastućim ili opa­dajućim redosledom. Tasteri za sortira­nje se nalaze na kartici Home. Treći tas­ter u ovoj grupi opcija (novo) se odno­si na uklanjanje sor­tiranja. Podaci se za­tim prikazuju po pret­hodnom redosledu, što nije uvek redosled unosa podataka. Kada jednom sortirate po­datke i zatim unesete novi zapis, on neće bi­ti automatski sortiran već morate zahtevati od programa da pono­vo sortira podatke.

Kod sortiranja tekstualnog polja važno je znati redo­sled po kome se sortiraju podaci. Prvo se prikazuju prazna polja, a zatim po­lja kod kojih podaci započinju razma­

kom. Zatim slede specijalni karakteri, kao što su: ", #, !, % i slično, zatim slo­va abecede i konačno brojevi. Kod bro­jeva, kako smo već opisali, sortiranje je različito od sortiranja numeričkog po­lja. Access gleda prvi karakter unosa i prema tome sortira brojeve unesene u tekstualno polje.

Pronalaženje i zamena podataka su operacije koje se često koriste u svim programima i na njih ne bismo trošili prostor da u Access­u nisu specifične. Za brzo pronalaženje informacija na­menjeno je (novo) polje, koje se nala­zi pored tastera za navigaciju među za­

pisima (Search). Do­voljno je da otkuca­te ono što tražite i Access će odmah prikazati prvu in­formaciju koju je pronašao. Nije po­trebno da pritisne­te Enter, jer je nje­gova funkcija dru­gačija: da bi vam Access prikazao na­rednu informaciju koju je pronašao,

koristite Enter. Mnogo više opcija pre­trage omogućava Search and Replace di­jalog, koji dobijate pritiskom na tastere Ctrl+F. Pre nego što pozovete ovaj dija­

O­pci­jama so­rti­ranja i­ fi­ltri­ranja mo­žete pri­stu­pi­ti­ k­li­k­o­m na streli­cu­ po­red nazi­va po­lja

So­rti­ranje, pro­nalaženje i­ fi­ltri­ranje po­datak­a

Page 34: Access2007knjiga

3� PC n o v e m b a r 2 0 0 7

PC SPECIJALNI DODATAK

log postavite kurzor u kolonu koju želi­te da pretražite, jer pretpodešene opci­je ovog dijaloga traže informaciju po koloni u kojoj se kurzor nalazi. Polje Look In nalaže Access­u da traži po spe­cifičnoj koloni, odnosno celoj tabeli; ako želite brzo da pronađete informaci­ju, tražite je po koloni. U polju Match definišete gde se zadati tekst za pretra­gu nalazi: kao deo polja, na početku po­lja ili takav da ceo unos mora da tačno odgovara informaciji u ćeliji. Zamena informacija je, zapravo, sasvim isti di­jalog uz dodatno polje. Tekst koji traži­

te možete zameniti novim tekstom.

Filtriranjem podataka izdvajate određeni skup podataka po zadatom kri­terijumu, kako biste mogli da se koncentrišete samo na određeni segment poda­taka. Osnovne mogućnosti filtriranja su dodatno pro­širene u novom Access­u, a najčešće korišćena opcija je filtriranje prema odabi­ru. Postupak je vrlo jednos­tavan: prvo pronađete že­ljenu informaciju, zatim je obeležite i desnim tas­terom miša pristupite me­niju za filtriranje podata­ka prema obeleženom de­lu polja ili prema sadrža­ju celog polja. Ovaj način filtriranja je značajno una­pređen: dok smo u ranijim

verzijama primenjivali iste opcije nad svim poljima, opcije filtriranja u novoj verziji programa su različite i zavise od tipa podataka. Na primer, u kontek­stnom meniju opcija filtriranja datum­skog polja naći će se mogućnost odabi­ra prethodnog dana, narednog dana, prethodnog meseca ili narednog mese­ca i tako dalje.

Napredne opcije filtriranja su dos­tupne odabirom Filter by Form (filtrira­nje po više kriterijuma) i Advanced Fil‑ters/Sort (filtriranje i sortiranje podata­ka po više kriterijuma). Uklanjanje fil­

Bo­gate o­pci­je fi­ltri­ranja na ni­vo­u­ ćeli­je vas o­slo­bađaju­ go­mi­le u­pi­ta za i­zdvajanje po­datak­a

Page 35: Access2007knjiga

3�n o v e m b a r 2 0 0 7 PC

Mi­cro­so­ft Access 2007

tera je jednostavno – odaberite taster Toggle Filter u grupi Sort & Filter karti­ce ribona Home. Ponovnim uključiva­njem filtera, Access će primeniti pretho­dno odabrane kriterijume.

Ono što je zanimljivo i veoma upo­trebljivo u novom Access­u je način kre­iranja izveštaja ili formulara na osnovu filtriranih podataka. Naime, često ćete poželeti da odštampate filtrirane podat­ke, što je do sada bilo moguće onog mo­menta kada filtriranu i sortiranu tabe­lu prepustite modulu za štampu. Access

je tada štampao tabelu onakvom kakva je prikazana na ekranu, a po zatvaranju tabele gubio se filter. Sada je moguće – veoma lako – koristeći tastere na karti­ci ribona Create, da prepustite Access­u da na osnovu filtriranih podataka kre­ira formular ili izveštaj. Tabelu možete zatvoriti i kasnije uvek pristupiti filtri­ranom i sortiranom skupu podataka, učitavanjem kreirane forme ili izvešta­ja. Filter koji ste primenili ćete pronaći na jednom od ova dva objekta, u polju osobine Filter.

Speci­fi­k­aci­je A­ccess baze po­datak­a

Većinu od limita Access­a ćete te­ško dosegnuti, a ako to i učini­

te analizirajte dizajn baze – postoji verovatnoća da određenim izme­nama smanjite ve­ličinu baze. Gene­ralno, izbegavaj­te da učitavate fo­tografije ili druge multimedijalne datoteke u OLE polje – ono zauzi­ma mnogo mesta u bazi podataka. Umesto OLE polja, ko­ristite novi tip polja – Attachment.

Novi korisnici se sreću sa proble­mom neočekivane veličine baze poda­taka koja, naizgled bez razloga, stal­

no raste. Da biste bili sigurni da baza ima optimalnu veličinu i ujedno da bis­te smanjili utrošak memorije i održa­

li optimalne performanse, s vremena na vreme kliknite na Compact and Re‑pair Database opciju. Access baza sa­drži objekte i zapise koji su obrisani (iako se ne mogu povratiti), tako da

Osobina OgraničenjeBroj objekata u bazi podataka 32.768Broj modula u bazi podataka 1.000Broj karaktera u nazivu objekta 64Broj karaktera password­a 20Broj karaktera u nazivu korisnika ili grupe 20Broj istovremenih korisnika baze podataka 255

Speci­fi­k­aci­ja baze po­datak­a i­ o­grani­čenja

Page 36: Access2007knjiga

3� PC n o v e m b a r 2 0 0 7

PC SPECIJALNI DODATAK

povremeno treba rasteretiti bazu ba­lasta. Srećom, računari su danas brži, prostor na diskovima veći, što sve zaje­dno pruža ugodniji rad sa bazama na desktop računarima nego pre pet ili se­dam godina. Ipak, valja imati na umu specifikacije koje slede.

Redovni čitaoci će primetiti da tabe­lama nije data maksimalna veličina ba­ze podataka od 2 GB, kako smo ranije navodili. Umesto toga, data je najveća veličina zasebne tabele. Naime, veličina baze podataka je zaista ograničena, ali ovo ograničenje se odnosi samo na ba­

ze podataka koje nemaju linkovane ta­bele drugih baza podataka. U bazi po­dataka uvek možete napraviti link ka tabelama druge baze podataka i tako, praktično, ukupnu veličinu (zbirnu ve­ličinu) svih baza podataka povećati da­leko iznad ograničenja.

Ovo­ je tek po­četa­kKoliko smo se u analizi novih verzi­

ja žalili na to da je Access bio zapostav­ljen program, jer je broj ozbiljnih no­vina u programu bio mali, toliko smo prijatno iznenađeni brojem novina ko­

Osobina OgraničenjeBroj karaktera u nazivu tabele 64Broj karaktera u nazivu polja 64Broj polja u tabeli 255Broj otvorenih tabela 2048, realno nešto manje jer Access

interno koristi određene tabeleVeličina tabela 2 GB, umanjeno za prostor potreban

za sistemske objektaBroj karaktera u polju tipa Text 255Broj karaktera u polju tipa Memo 65.535Veličina polja OLE objekta 1 GBBroj indeksa jedne tabele 32Broj polja u indeksu 10Broj karaktera u polju poruke validacije unosa (Validation Message)

255

Broj karaktera polja pravila validacije unosa (Validation Rule)

2.048

Broj karaktera u opisu polja (Field Description)

255

Broj karaktera u zapisu (izuzev Memo i OLE Object polja)

2.000

Speci­fi­k­aci­je tabele i­ o­grani­čenja

Page 37: Access2007knjiga

3�n o v e m b a r 2 0 0 7 PC

Mi­cro­so­ft Access 2007

je donosi verzija 2007. Praktično, svaki deo je analiziran i poboljšan, dobrim delom na osnovu predloga koje su ko­risnici slali. Razlog malog broja izme­na u prethodnim verzijama samo na­slućujemo: novi Access ujedno donosi i novu Jet mašinu zaduženu za smešta­nje i obradu podataka, koja je napisana od nule. Naime, prethodne verzije pro­grama su koristile Jet mašinu koju je za potrebe ovog programa napisala ekipa koja radi na razvoju SQL serije proizvo­da. Ona, jednostavno, nije bila u vlasni­štvu ekipe koja je razvijala Access i, uje­dno, imala je određena ograničenja, ko­ja su praktično dostignuta pre nekoli­ko godina. Nova Jet mašina je napisano tako da zadovolji brojne nove zahteve koji su stavljeni pred program. Utisak je da su tvorci programa jedva dočeka­li da preuzmu kontrolu i ugradili toliko novih i veoma korisnih osobina da će ih iskusni korisnici sretati na svakom koraku. Ako smo do sada u vezi s no­vom verzijom govorili o kozmetičkim izmenama, sada novi interfejs (zaista velika kozmetička izmena) pada u dru­gi plan pred brojem ostalih izmena.

Nabrajanje novina zahteva ogro­man prostor i, čini se, traži suvoparan tekst u kome se samo nabraja i nabra­ja. Zato smo se odlučili da započnemo priču o osnovama baza podataka u Ac‑cess­u krećući od nule, baš kao što je nova Jet mašina razvijena od nule. Sve iz početka, začinjeno opisom novina koje prožimaju ceo umetak. Nove ko­risnike ne treba da opterećuje šta je bi­lo i kako je radila stara verzija. Iskusni korisnici će pronaći opis novih osobi­na. Kako je ovakav sistem (primereniji termin od program) veoma kompliko­van, iako dobro testiran, on nije imun na greške tj. bagove. Oni postoje i sada! Većinu ozbiljnih smo opisali u „Access bajtovima“ časopisa „PC“. Za pravu, profesionalnu primenu savetujemo da sačekate prvu servisnu ispravku i da ko­ristite bazu/program u staroj MDB ver­ziji. To vas nikako ne sprečava da upo­slite novi Access i upoznate se sa novim interfejsom i brojnim novinama ko­je značajno skraćuju vreme potrebno za programiranje baze. Nadamo se da vam je ovaj tekst pomogao da načinite prve korake.