Professional Documents
Culture Documents
Access Prirucnik PDF
Access Prirucnik PDF
PREDGOVOR 1
2.1 TABLICE 12
2.2 RELACIJE U BAZI 19
2.3 UPITI 28
2.4 OBRASCI (FORMS) 39
Trea cjelina je jedan opsean primjer, koji moe biti od velike koristi za one
koji se ele ozbiljnije ukljuiti.
Autor
1
1. OSNOVNI POJMOVI O BAZAMA PODATAKA
Engleski naziv Database kod nas je doslovno preveden s baza podataka. to nam se u stvari krije
iza tog naziva?
Baza podataka je ureeni skup meusobno povezanih podataka o jednoj ili vie
tema, predmeta i sl. [ECDL definicija].
Ovo je samo jedna od mnogobrojnih definicija. U neto irem smislu mogli bi kazati da je baza
podataka skup zapisa i datoteka koje su organizirane za neku svrhu. Koliko kod vam izgledalo
udno s bazama podataka se susreete svaki dan, a navest emo samo neke tipine primjere:
Telefonski imenik
Osobni adresar
Red vonje brodova, vlakova i sl.
Vaa ladica s plaenim raunima sloenim po mjesecima
Primjeri su zaista brojni. No, za ilustraciju zamislimo sluaj s vaom ladicom s raunima. Smatrat
emo da su unutra sloeni plaeni rauni reija (telefon, komunalije, struja, voda, stanarina),
uplaene rate kredita, plaena polica osiguranja i registracije vozila i jo primjerice raun mjesene
uplate za kolu stranih jezika. Malo emo karikirati situaciju. Vaa mala baza podataka iz godine u
godinu postaje sve vea. Odluite vidjeti koliko ste ukupno i prosjeno potroili za sve reije u
prethodne tri godine. Vadite raune reija od protekle tri godine uzimate kalkulator i izraunavate
eljene vrijednosti i zapisujete ih na komad papira. Moete zamisliti da je rije o prilino zamornom
poslu. Zadovoljni vraate sve raune ponovno na mjesto, a s njima i papir s izraunima. Vi ste u
ovom sluaju bili tipini korisnik i upravitelj vae baze podataka (Database manager). to ste kao
upravitelj radili? Primili ste odreeni zahtjev korisnika, dohvatili ste potrebne podatke, napravili
neke zahvate nad tim podacima (obradili ih), dobili eljeni rezultat kojeg ste dali korisniku i
ponovno vratili podatke na staru lokaciju.
Sada kad smo se upoznali s pojmom baze podataka moemo izvriti i njihovu podjelu:
Mi emo se baviti samo prvima, a primjer ove druge je naa ladica s raunima. U ovom sluaju
ulogu naeg upravitelja bazom podataka (Database managera) preuzima MS Access 2003. U
raunalnoj terminologiji moemo dati novu definiciju za raunalom podrane baze podataka:
2
Logiki nain na koji je organizirana baza omoguuje jednostavan pristup, manipulaciju podacima
i ponovno pronalaenje istih.
Podaci i informacije o emu je rije?
PODATAK tekst, broj, slika, zvuk koji se mogu pohraniti na raunalu. Predstavlja
"sirovinu" koju treba obraditi kako bi postala informacija. Sam za sebe ne mora znaiti
nita.
INFORMACIJA znaenje pridodano podatku na nain da se smanjuje stupanj
neodreenosti o nekoj temi, predmetu, osobi, dogaaju i sl.
Primjerice podaci 232, motokultivator i 12000 sami za sebe nemaju neko vano znaenje, ali ako to
malo posloimo na sljedei nain ifra proizvoda motokultivator je 232, a cijena mu je 12000kn
dobivamo informaciju. Postoje tri osnovna tipa baza podataka:
Redoslijed kojim su navedene ujedno predstavlja i tijek njihovog povijesnog razvoja. U okviru ovih
vjebi zanimaju nas samo relacijske baze podataka.
polje
zapis / slog
3
Prema tome, zapis ili slog bi bio skup informacija opisan jednim ili veim brojem svojstava (polja).
Iz gornjeg, jednostavnog primjera moemo vidjeti da tipovi podataka u poljima mogu biti razliiti.
Tipovi podataka koje emo najee koristiti su:
Tekstualni (Text)
Brojani (Number)
Valuta (Currency)
Datum (Date)
Vrijeme (Time)
Logiki (Yes / No)
Relacijski model baze podataka u velikoj mjeri odgovara predodbi dogaaja stvarnog svijeta i
podacima to ih ti dogaaji generiraju [Panian]. Da bi mogli predoiti na to se odnosi pojam
relacije posluit emo se opet jednim primjerom. Rekli smo da su podaci u relacijskim bazama
podataka pohranjeni u vidu tablica. Neka nam se u jednoj tablici nalaze podaci o narudbama, a u
drugoj podaci o kupcima (naziv, adresa, matini broj itd). Umjesto da se uz svaku narudbu
ponovno navode svi podaci o nekom kupcu, ta informacija se dobije ukljuivanjem samo jednog
polja kojeg moemo nazvati identifikacijski broj kupca. To polje je jedinstveno za svakog kupca
tako da ne moe doi do zamjene informacija. Ono e se nalaziti u tablici kupci i u tablici narudbe.
Na ovaj nain izbjegavamo redudanciju (zalihost) podataka.
Drugi razlog rairenosti relacijskih baza podataka vezan je uz razvoj programskih jezika za rad s
bazama podataka (Database Language). Razvijen je veliki broj tih jezika, ali su najvaniji tzv.
jezici za postavljanje upita (Query Language). Rije je o jezicima koji korisniku omoguuju
jednostavno postavljanje upita upravitelju baze podataka (database manageru) te brzo dobivanje
odgovora koji je iskazan na pregledan nain. Najpoznatiji takav jezik je SQL (akronim od
Structure Query Language).
4
period u hotelu Ivan - Solaris, a ista soba je za isti period rezervirana dan ranije u drugoj
poslovnici u Pragu)
Podaci koji se unose u neku datoteku vezani su s podacima u drugim datotekama, a sve
mogu mijenjati razliiti korisnici spora obrada podataka uz vrlo moguu pojavu
nedosljednosti u podacima
elite imati Web stranicu stalno auriranu svjeim podacima (jo imamo 30 runih ealica
za lea, a nova cijena im je 250kn jesu skupe, ali dobro eu)
Sada kada smo se odluili da emo prijei na raunalom potpomognute baze podataka i da emo za
relacijski upravljaki sustav bazom podataka (RDBS Relation Data Base System) izabrati MS
Access 2003 moemo prijei na izradu baza podataka. No, prije izrade vrijedno je potroiti vremena
na dizajn baze podataka i planiranje naih potreba. U stvari, dizajniranje moemo svrstati pod jednu
od faza planiranja naeg informacijskog sustava temeljenog na bazi podataka.
Osnovna pogreka koja se ini pri dizajniranju baze podataka je razmiljanje o podacima koje emo
staviti u bazu ("s im emo je puniti"). Puno ispravnije je razmiljati o tome koje informacije
elimo dobiti na izlazu iz nae baze. Nakon to ste odluili to elite od vae baze, razmotrite to
vam je na raspolaganju to imate na osnovu toga stvarate strukturu baze (tablice). Slijedi
definiranje svih postupaka i akcija (pretraivanja po kriterijima, izrauni, sortiranja) koji e se
primjenjivati nad podacima kako bi dobili eljene informacije. Tek na kraju odredite nain na koji
e se baza puniti podacima.
Neko nepisano pravilo je da nacrtate dijagram budue baze podataka. Ukoliko bazu radite za nekog
drugog, potrebno je obaviti niz razgovora sa svim korisnicima. Nuno je da razumijete problem to
bolje, elje i potrebe korisnika na svim razinama, kao i tipove podataka i dokumenata koji se trae.
Sve to zapisujete u vidu biljeki na osnovu kojih stvarate dijagram budue baze. Ponekad je
potrebno dijagram par puta predoiti korisnicima da vidite jeste li dobro razumjeli njihove potrebe i
jesu li vaa razmiljanja o nainu budueg poslovanja s bazom podataka u skladu s njihovima 1 .
REZERVACIJE
SMJETAJNI
GOSTI
KAPACITETI
(svi podaci)
KORISNICI
1
Laiki pristup za razliku od ovog postoje posebne metode pri projektiranju informacijskih sustava
5
Daljnje preporuke pri dizajniranju baze podataka [ECDL]:
Sistematini pristup dizajniranju i izradi baza podataka potedit e vas kasnije brojnih muka.
Podatak logika cjelina koja sama za sebe ne mora imati neko znaenje. Moe biti tekst, broj,
datum, vrijeme, itd. Predstavlja "sirovinu" iz koje se dobiva informacija.
Informacija skup obraenih i povezanih podataka na nain da dobivaju neko znaenje ili smisao
Relacijska baza podataka baza podataka izgraena od tablica u kojoj postoje jedinstvene veze
izmeu podataka u razliitim tablicama
Relacijski upravitelj bazom podataka (RDBM) aplikacijski software kojim kreiramo bazu
podataka i manipuliramo podacima u njoj
(MS Access)
6
1. to podrazumijevamo pod pojmom baza podataka?
2. Navedite nekoliko primjera baza podataka?
3. Kako se openito dijele baze podataka?
4. to je to podatak, a to informacija?
5. Navedite nekoliko primjera podataka i informacija!
6. Nabrojte tri osnovna tipa baza podataka?
7. to je relacijska baza podataka?
8. Kako su podaci organizirani u relacijskoj bazi podataka?
9. to je slog, a to polje?
10. Koji je drugi naziv za slog?
11. to predstavlja polje u tablici, a to slog?
12. Koja je uloga relacijskog upravitelja bazama podataka?
13. Navedite jedan RDBM?
14. Koji je upitni jezik danas najzastupljeniji?
15. Navedite neke od primjera za prelazak na poslovanje s raunalom podranim bazama
podataka?
16. Nabrojte i objasnite osnovne preporuke pri dizajniranju baze podataka po ECDL - u!
17. U emu lei prava snaga baza podataka?
7
2. UVOD U RAD S MS ACCESSOM
MS Access je dio MS Office paketa, tako da e vam vei dio njegovog suelja biti poznat. Ako se
prvi put susreete s njim vjerojatno e vam se initi kompliciraniji od ostalih aplikacija iz istog
paketa to i nije udo, jer se s njim mogu razviti prave poslovne aplikacije za potrebe malih i
srednjih poduzea. Pa krenimo redom. Access se pokree kao i bilo koja druga aplikacija, a to vam
je vrlo dobro poznato. Kada ga pokrenete pojavit e vam se njegov prozor kao na slici ispod:
Kontrolni gumbi
Access Database
alatna traka
Okno zadataka
Statusna traka
Moete krenuti od potpuno prazne baze ili otvoriti ve neku postojeu. Ako otvarate ve postojeu
bazu onda to moete uiniti na sljedee naine:
8
[3] U oknu zadataka Getting Started pod dijelom Open kliknite na ime eljene baze ili na
ukoliko baza nije na popisu
Pri stvaranju nove baze preko File New ili klikom na ikonu sa standardne alatne trake
otvorit e vam se okno zadataka New File:
9
Pretrauje Microsoft Internet
arhivu s predlocima na
temelju upisane kljune rijei
Otvara MS Office stranicu s
raspoloivim predlocima za
download u vaem Internet
pregledniku
Postojei predloci za novu
bazu na vaem raunalu
Od svih spomenutih objekata jedino su tablice namijenjene pohranjivanju podataka u bazu. Svi
ostali slue za upravljanje, manipuliranje, predoavanje, analiziranje, tih podataka. Dobro, ovdje
smo ve spomenuli objekte, a u naem prozoru nigdje im ni traga. Da bi mogli doi do objekata
potrebno je otvoriti bazu na jedan od prethodno opisanih naina.U ovom poetnom dijelu
upoznavanja s Accessom posluit emo se ve gotovom bazom podataka Nortwind koja slui kao
ogledni primjerak, a do nje moemo doi preko Help Sample Databases Nortwind
Sample Database. Pojavit e vam se pozdravni prozor kliknite na check box Don't show this
screen again kako vam se ne bi ubudue pokazivao, a potom na OK. Nakon toga u prvi plan e se
postaviti tzv. glavna Navigacijska ploa aplikacije (Main Switchboard). Moete i nju ugasiti, a
10
njezino objanjenje dat emo kasnije. Konano smo doli do eljene stvari prozora baze podataka
(u ovom sluaju baze Nortwind):
Traka s objektima
Na samom vrhu se nalazi naslovna traka s imenom baze i verzijom datotenog formata Access
baze. U desnom dijelu te trake je kontrolni gumbi. U traci s objektima postoji i kartica koja se
naziva Grupe (Groups). Za sada nam je dovoljno znati da se u njoj mogu stvarati vlastite grupe ve
postojeih objekata. U jednoj grupi moete imati objekte razliitog tipa (npr. tri tablice, dva
izvjetaja i jednu formu). Bitno je istaknuti da se ti objekti fiziki ne smjetaju u pojedinu grupu,
ve se samo stvaraju preaci na njih. Aktivni dio prozora (isprekidana linija) mijenjat e izgled
ovisno o izabranom objektu u traci objekata. Alatna traka baze podataka donosi nam nekoliko
zanimljivost s kojima se jo niste susreli u nijednoj office aplikaciji:
11
Izaberite nekoliko razliitih objekata, a ujedno probajte mijenjati naine prikaza u aktivnom dijelu
prozora. Nekoliko objekata otvorite u razvojnom i izvrnom modu, isto da uoite razliku. Zatvorite
bazu Nortwind, ali nemojte izai iz Accessa. Sada kad smo vidjeli od kojih objekata se sastoji MS
Access baza i od kojih elemenata se sastoji prozor baze moemo krenuti dalje. Osnovu relacijske
baze podataka ine tablice. Krenut emo od nove prazne baze u kojoj emo kreirati samo jednu
tablicu tablicu kontakt informacija (osoba, tel, fax, e mail, ...)
2.1 TABLICE
ovdje upisujete
ime nove baze
Nakon to ste kliknuli na Create (ili potvrdili s ENTER) otvorit e vam se prozor baze podataka s
imenom vj_1 u naslovnoj traci. Za sada vam se u aktivnom dijelu prozora ne nalazi niti jedan
objekt.
[4] Ukoliko vam nije selektiran objekt Tables u traci objekata kliknite na njega
12
[5] Na raspolaganju su vam tri mogunoati u aktivnom dijelu prozora za kreiranje nove tablice
kreiranje u razvojnom modu (in Design view), kreiranje pomou arobnjaka (using
wizard) i kreiranje unosom podataka (by enetring data)
[6] Izaberite prvu mogunost brzim dvoklikom in Design view
[7] U otvorenom dijalokom okviru Table redom upisujete nazive za pojedina polja vae
tablice (Field name), odreujete im tip (Data type) i opcionalno dajete opis polja
[8] U prvo polje pod ime upiite ID_kontakta, a kao tip za njega odaberite AutoNumber; pod
opisom napiite identifikacijsko polje za jedinstvenost zapisa
13
To polje e nam posluiti kao primarni klju (Primar key) za ovu tablicu. Tip podataka
AutoNumber je posebni tip podataka razvijen u MS Accessu i predstavlja cjelobrojni tip podataka
koji se samostalno inkrementira (poveava za jedan) pri unosu svakog novog zapisa ovim
sigurno ne mogu postojati dvije iste vrijednosti. to podrazumijevamo pod jedinstvenost zapisa?
Vrlo je lako shvatiti u naoj tablici kontakata vrlo je vjerojatno da moemo imati dvije osobe
koje imaju isto ime i prezime pridjeljivanjem razliitog ID_ kontakta svakom od njih osigurali
smo da se ne mijeaju podaci ove dvije osobe, a istom logikom i ostalih. Vrijedno je istaknuti
sljedee stvari:
Primarni klju sastoji se od jednog ili vie polja, a slui kako bi osigurali jedinstvenost svakog
zapisa u tablici.
Tip podataka u polju (Data type) odreuje tip podataka u polju (Tekst, Datum, Broj,
Automatski inkrement...)
Svojstva polja se odreuju u kartici General veliina (Field size), ime koje e se koristiti
(Caption), indeksirano (Indexed)...
[10] Definirajmo primarni klju za nau tablicu kliknite miem na sivu kuicu lijevo od
naziva polja Id_kontakta oznait e se cijeli redak kliknite na ikonu Primary key
koja se nalazi na Access Database alatnoj traci (ili preko izbornika Edit Primary
key)
14
U kuici pored oznaenog polja pojavit e se oznaka kljua koja ukazuje da je polje oznaeno kao
primarni klju.
Primarni klju moe biti sastavljen od jednog ili vie polja (oznaite ih drei
pritisnutu tipku CTRL)
Ukoliko niti jedno polje niste postavili za primarni klju, Access e automatski
pri spremanju tablice postaviti polje s oznakom ID i tipa AutoNumber za
primarni klju
[11] Sada moemo spremiti tablicu File Save u dijaloki okvir upiite ime tablice
Tab_kontakti
Malo emo se poigrati nekim svojstvima podataka u poljima. Prvo emo polju koje smo proglasili
za primarni klju pod svojstvom Caption upisati Kontakt br.
[12] Kliknite u polje ID_kontakta pod svojstvom Indexed izaberite Yes(No Duplicates)
pod svojstvom Caption upiite Kontakt br.
Upisivanjem naziva pod Caption osigurali smo da e se upisani naziv (Kontakt br. ) pojavljivati
na obrascima i nazivu tog polja u tablici u izvrnom modu, a ne naziv polja ID_kontakta.
Polja Ime, Prezime, Grad i Adresa emo staviti da budu obavezna (svojstvo Required), zabranit
emo nultu duljinu (svojstvo Allow Zero Length) i zbog breg pretraivanja ukljuit emo
indeksiranje s dozvoljenim ponavljanjima (moemo imati vie osoba istog imena, istog prezimena,
istog imena i prezimena, mogu biti iz istog grada, a vie osoba moe ivjeti na istoj adresi).
Indeksiranje u tablicama nam omoguuje bre pretraivanje, dohvaanje i sortiranje zapisa po
dotinom polju, ali moe usporiti auriranje podataka.
Za kraj emo polju Grad ograniiti duljinu na 40 znakova (svojstvo Field size upiete eljenu
vrijednost) kod ograniavanja duljine polja budite izuzetno oprezni.
Svojstava ima previe i ovise o tipu podataka u polju, tako da ih neemo sve objanjavati.
Uoite da klikom na pojedino svojstvo u desnom dijelu okna dobivate njegov kratki opis.
S veim brojem svojstava upoznat emo se tijekom ostalih primjera.
15
[13] Spremite napravljene promjene klikom na ikonu Save izaite iz Design moda
U aktivnom dijelu prozora sada bi trebali imati jednu tablicu koja se naziva Tab_kontakti. Ovdje
smo namjerno napravili dvije pogreke, a to je da smo polje Telefon i fax stavili da budu tipa
Number. Probajmo popuniti nau tablicu s nekoliko podataka da vidimo kako e se odraziti nae
greke. Pretpostavimo da smo odluili broj telefona (faxa) zapisivati u obliku 023212457.
[14] Napravite brzi dvoklik na tablicu Tab_kontakti (ili je oznaite, pa kliknite na ikonu Open
na alatnoj traci baze podataka)
[15] Unesite proizvoljno nekoliko podataka
Vrlo brzo ete uoiti da vam se svaki uneseni telefonski broj (fax) zapisuje bez poetne nule (npr.
iako ste unijeli 023 zapie vam se 23 krivi podatak). Kao to smo ve rekli to nam se dogaa jer
smo odredili krivi tip podataka za ta polja trebalo je umjesto Number staviti Text. Spomenutu
16
greku ispravit emo otvaranjem tablice u razvojnom modu, ali prije toga spremite unesene zapise
(ovaj put kombinacijom tipki CTRL + S zatvorite tablicu).
Numeriki tip podataka (Number) emo koristiti za polja koja se iskljuivo mogu
tretirati kao brojevi (nad njima se mogu vriti matematike operacije)!
Promjenu visine redaka i irine stupaca u tablici vrite kao i u MS Excelu. Brisanje zapisa moete
napraviti na nekoliko naina. Oznaite zapis, a potom pritisnete tipku DELETE; oznaite zapis i
kliknete na ikonu Delete Record ; napravite desni klik miem na zapis kojeg elite izbrisati i
potom iz skonog izbornika izaberete naredbu Delete Record. Vie zapisa briete istom logikom
samo ih oznaite drei pritisnutu tipku CTRL. Budite oprezni prilikom brisanja pojedinog zapisa
jer je rije o nepovratnoj akciji! Svaki put pri brisanju e vam se pojaviti poruka koja vas upravo
upozorava na tu injenicu tek nakon potvrdnog odgovora zapis biva izbrisan iz tablice:
Ako elite izbrisati cijelu tablicu oznaite je u aktivnom dijelu prozora baze i pritisnete tipku
DELETE. Pri tom e vam se javiti slian dijaloki okvir upozorenja kao u prethodnom sluaju.
Drugi nain je preko skonog izbornika, a trei klikom na ikonu za brisanje objekata .
17
Da bi naa tablica kontakata bila potpunija elimo dodati polje za unoenje datuma roendana
osobe koje nee biti obavezno za unos.
Prvo to vam pada na pamet je kako e osoba koja unosi podatke (vi ili netko drugi) znati kakvog
formata treba biti datum kojeg unosi. U takvim sluajevima nam pomae tzv. ulazna maska (input
mask). Ulazna maska predstavlja uzorak koji nas vodi prilikom unosa podataka i spreava mogue
pogreke bez stvaranja nekih posebnih pravila provjere korisnikog unosa. U ovom sluaju ulaznu
masku emo kreirati koritenjem arobnjaka.
[24] U kartici General kliknite na Input Mask i potom na gumb koji e se pojaviti pored
tog svojstva
[25] Pojavit e vam se dijalog arobnjaka za stvaranje ulazne maske izaberite Short Date i
potom kliknite na gumb Edit list popunite otvoreni dijalog kao na slici ispod
Nakon klika na CLOSE gumb u listi arobnjaka bi vam se trebala pojaviti ulazna maska koju ste
upravo kreirali (roendan) izaberite tu masku i kliknite na Finish.
Nakon ovog uvoda o tablicama trebali bi biti u stanju samostalno kreirati tablice i raditi s njima u
Accessu. Prava snaga relacijskih baza podataka direktno proizlazi iz njihovog naziva, a to je
mogunost stvaranja relacija ili veza izmeu dvije ili vie tablica. Da bi mogli stvoriti relacije
potrebno je imati kreirane barem dvije tablice.
18
2.2 Relacije u bazi
Osnovna greka koju moete napraviti pri izradi baze podataka je prenijeti nain razmiljanja iz
Excela, jer ete u tom sluaju svaki problem rjeavati na nain da ete sve podatke nastojati utrpati
u samo jednu tablicu. To je protivno osnovnoj preporuci pri izradi relacijskih baza o dijeljenju
domene problema u manje cjeline tzv. entitete i stvaranju veza meu njima. Sjetimo se malo naeg
primjera s tablicom kontakata. Uzet emo samo jedan najei sluaj, a to je da neke osobe mogu
imati vei broj telefona (kuni, posao, mobitel). Kako bi se to odrazilo na nau tablicu za
svaki broj trebali bi stvoriti cijeli zapis, tj. ponoviti sve podatke osobe, a samo mijenjati brojeve
telefona.
Pretpostavili smo da samo dvije osobe imaju dodatne telefonske brojeve. Ve i iz ovog
jednostavnog primjera moete zakljuiti da nepotrebno ponavljamo veliki broj podataka kako bi
dodali samo jedan novi vezan uz istu osobu (dui unos i stvaranje suvinih podataka
redundancija podataka). Neka nas sada zanimaju podaci ba za osobu koja ima vei broj telefona.
Izvrit emo filtriranje podataka tablice po tom zapisu.
[1] Otvorite tablicu u izvrnom modu i dodajte dvjema osobama jo brojeve mobitela (stvarate
cijela dva nova zapisa)
[2] Kliknite na prezime osobe za koju znadete da ima dva unosa i potom na ikonu Filter By
Selection sa Access Database alatne trake
[3] Nakon to dobijete rezultat pretraivanja po postavljenom filtru iskljuite ga klikom na
ikonu Remove Filter spremite nainjene promjene u tablici
Oigledno sve dobro funkcionira izuzev to rezultati nisu previe pregledni i to nepotrebno
ponavljate veliki broj podataka. Zamislite to bi bilo da vaa kontakt lista sadri popis od recimo
300 osoba i da svaka od njih ima po tri telefona (kuni, posao i mob). Namee se zakljuak da bi
puno elegantnije rjeenje bilo kada bi podatke podijelili u dvije tablice. Jedna tablica bi sadravala
telefonske brojeve, a druga sve ostale podatke o osobama. Jo ih je potrebno povezati po nekom
19
kljuu i problem je rijeen doli smo do relacijske baze podataka. Imamo dva entiteta i jednu
relaciju. Entitete emo nazvati telefon i osoba.
ENTITET je dio stvarnog ili apstraktnog svijeta koji je opisan odreenim brojem
svojstava koje predstavljamo podacima (osoba, ustanova, predmet, dokument, )
Jedan na jedan (one to one) odnos ili veza koja nam jednom zapisu iz jedne
tablice pridruuje tono jedan zapis iz druge tablice i obrnuto (npr. svakom studentu
emo pridruiti samo jedan broj matini broj studenta); ovakav tip veza je vrlo
rijedak, jer sve takve veze moete staviti u jednu tablicu
Jedan na vie (one to many) jednom zapisu iz jedne tablice pripada vie
zapisa u drugoj tablici, ali jednom zapisu iz te druge pripada tono jedan iz prve (npr.
jedna osoba moe imati vie telefona, ali svaki broj telefona je pridruen samo jednoj
osobi) ovo je najei tip veze koji susreemo
Vie na vie (many to many) zapisu iz jedne tablice pridrueno je vie zapisa
iz druge i obrnuto. Ovaj tip veze je mogu samo kada se definira trea tablica tzv.
spojna tablica iji se primarni klju sastoji od dva polja - stranih kljueva prve i
druge tablice (primjerice jedna narudba moe imati vie proizvoda, a istovremeno
svaki proizvod se moe pojaviti na vie narudbi)
Definiciju primarnog kljua smo ve dali, tako da nam preostaje jo definirati strani klju:
Strani klju (Foreign key) je polje koje jednoznano odreuje zapis iz druge tablice. U jednoj
tablici moemo imati vie stranih kljueva. Drugim rijeima preko stranih kljueva ostvarujemo
veze izmeu tablica. Veza po primarnim kljuevima bi dala 1:1 tip veze izbjegavajte ovo!
Krenimo mi na stvaranje nae male relacijske baze. Ta baza se sastoji od dva entiteta (telefon koji
reprezentira brojeve telefona osoba i osoba koji predstavlja sve ostale podatke vezane uz pojedinu
osobu adresa, grad, mail, ). Sloili smo se da uz jednu osobu moe biti vezano vie telefonskih
brojeva. Prikaimo model entiteti - veze za tu bazu:
OSOBA
#ID_kontakta 1:n TELEFON
Ime #ID_telefona
Prezime # ID_kontakta Tel_broj
Grad
Adresa
o e mail
o fax
o datum roenja
20
Samo objanjenje naina stvaranja modela entiteti veze, kao i pravila i konvencija koji su vezani
uz te modele je vrlo iroka tema koja prelazi okvire ove skripte. Dat emo samo kratke upute koje
vam mogu biti dovoljne pri stvaranju i razumijevanju takvih modela:
[1] Kreirajte novu bazu na vaem USB u unutar mape primjeri_Access i nazovite je
relacije_vj2
[2] Stvorite dvije tablice na osnovu prethodnog modela (tablica osoba i tablica telefon)
Veze se kreiraju klikom na gumb Relationships na Access Database alatnoj traci. Otvorit e
vam se dijaloki okvir u kojem odreujete to ete povezivati u ovom sluaju mi emo se
ograniiti samo na tablice:
Za stvaranje
veza meu
Za stvaranje
tablicama
veza meu
Za stvaranje
upitima
veza izmeu
tablica i upita
S ponuene liste oznaite tablice meu kojima elite stvoriti vezu (moete koristiti CTRL za
oznaavanje na preskok ili SHIFT za oznaavanje niza) kliknete na Add kako bi tablice bile
dodane u prozor za stvaranje veza. Tablicu (upit) moete dodati i brzim dvoklikom na njeno ime.
Postupak onda ponavljate potreban broj puta dok ne ukljuite sve eljene objekte ovaj dijalog
zatvarate klikom na Close gumb.
21
[3] U otvorenom prozoru Relationships tablice moete pomicati principom drag 'n' drop, a
dimenzije im mijenjati kao i bilo kojem objektu u Windowsima postavite ih na eljenu
poziciju
Povucite i
otpustite kako bi
1 stvorili vezu
2
Slika 2-17 Izgled prozora za stvaranje veza (Relationships) (1) i dijalog za ureivanje veza (2)
Vezu ostvarujete na nain da odvuete polje po kojem su entiteti povezani iz jedne tablice u drugu.
Prikazat e vam se dijaloki okvir Edit Relationships za ureivanje te veze. Na samom vrhu tog
dijaloga navedene su tablice (upiti) koje su u vezi, a odmah ispod naziv polja po kojem su povezani.
U jednoj tablici to polje je primarni klju, a u drugoj strani. Posebno su nam interesantne opcije
odreene s check boxovima. Prva od njih je nametanje pravila referencijalnog integriteta (Enforce
Referential Integrity). Ova pravila nam osiguravaju da ne moemo imati unose koji nemaju svog
para. To bi kod nas znailo da ne moemo unijeti broj telefona koji ne pripada ni jednoj osobi
unijeli broj telefona, a nismo podatke o osobi kojoj taj broj pripada. Prije ukljuivanja preostale
dvije mogunosti potrebno ih je dobro i razumjeti. Opcija kaskadnog auriranja povezanih polja (
Cascade Update Related Fields) osigurava da se pri promijeni primarnog kljua u glavnoj tablici
automatski zamijene polja povezanih zapisa u drugoj tablici s novom vrijednosti. Posljednja opcija
kaskadnog brisanja povezanih zapisa (Cascade Delete Related Records) omoguava automatsko
brisanje svih zapisa nakon brisanja glavnog (primarnog) zapisa kada obriemo osobu iz tablice
Tab_osoba automatski se briu svi njezini brojevi telefona. Na samom dnu nalazi se oznaka tipa
veze u ovom sluaju one to many.
Da niste ukljuili opciju nametanja referencijalnog integriteta ne biste dobili vezu koja s jedne
strane ima oznaku 1, a s druge iz ega je direktno vidljivo o kojoj vezi se radi. Veze koje se
temelje na spajanju primarnih kljueva dviju ili vie tablica se automatski proglaavaju one to
one vezama, jer drugaije nije ni mogue. Korisno je istaknuti da prilikom realiziranja veza many
to many neete biti u stanju direktno to ostvariti, ve ete stvarati jednu dodatnu tablicu tzv.
tablicu za premotavanje ime se veza razbija na niz one to many odnosa. Pored nametanja
referencijalnog integriteta moete utjecati i na tip veze preko gumba Join Type
22
Slika 2-18 Izgled prozora relacija nakon uspostavljene veze izmeu tablica
Strani klju u tablici ne moe biti tipa AutoNumber kao i primarni klju, jer je on vezan
s vrijednou koja dolazi iz primarne tablice moe biti bilo koja vrijednost uz
mogunost ponavljanja bit e tipa Number, a duljine Long Integer!
Brisanje relacije moemo vriti na vie naina. Otvorite prozor s relacijama (Tools
Relationships) oznaite vezu koju elite obrisati i pritisnete tipku DELETE ili napravite desni
klik miem na vezu i iz skonog izbornika izaberete Delete. Ureivanje je slino. Nakon to ste
otvorili prozor s vezama napravite brzi dvoklik na vezu koju elite urediti ili napravite desni klik
miem na vezu, te iz skonog izbornika izaberete Edit Relationship
[8] Otvorite tablicu Tab_osoba u izvrnom modu i unesite proizvoljne podatke za nekoliko
osoba
[9] Uoite znak plusa koji se javlja pored polja ID_kontakta kliknite na znak plusa osobi
kojoj elite unijeti broj telefona unesite nekima i vie brojeva (kuni, posao, mobitel)
23
[11] Otvorite sada tablicu Tab_telefon u izvrnom modu imat ete prikaz slian ovom na slici
ispod:
Prikaz je prilino nerazumljiv jer iz ID_kontakta ne moemo vidjeti o kojoj osobi je rije. Meutim,
MS Access posjeduje korisno svojstvo koje se naziva pogled meu tablicama, a omoguuje nam da
izbjegnemo ba ovakve situacije. Do njega dolazimo preko kartice Lookup u razvojnom modu
tablica. Bilo bi korisno da umjesto ID_kontakta imamo ime i prezime osobe. Drugim rijeima za
svaki ID_kontakta u tablici Tab_telefon vezat emo i prikazati pripadno ime i prezime.
Osnovna razlika izmeu Text boxa i Combo boxa je to prvi moe prikazati samo jednu vrijednost,
a drugi vie njih. To je upravo ono to mi elimo elimo vidjeti ime i prezime osobe.
[15] Izvor podataka koji e se prikazivati odreuje se svojstvom Row source kliknite na
strelicu pored i za izvor izaberite tablicu Tab_osoba
[16] Svojstvo Bound Column oznaava za koji stupac se vezuju podaci ostavite vrijednost 1,
jer je ID_kontakta upravo u prvom stupcu
[17] Column Count oznaava koliko stupaca ukljuujemo trebamo ukljuiti ID_kontakta +
ime + prezime. Kako su to uzastopni stupci i ujedno je rije o prva tri stupca, dovoljno je
postaviti da se broje samo tri stupca.
[18] Column Heads odreuje hoe li se u naem combo boxu prikazivati zaglavlja stupaca iz
izvorne tablice (roditeljske parent tablice) postavite na NO
24
[19] Pod Column Widts zapravo lei iluzija koju emo stvoriti. Postavit emo irinu prvog
stupca na nula, a ostala dva na 4cm (upisujete samo brojeve bez jedinica). Na ovaj nain
neemo vidjeti prvi stupac ID_kontakta ve samo ime i prezime. Nama se prikazuje ime i
prezime osobe, a raunalo radi s brojem ID_kontakta.
[20] List Width odreuje irinu liste (combo boxa) postavite je na 6cm (moete ostaviti i
automatsku irinu odreenu po defaultu)
[21] Limit to List odreuje moe li korisnik unijeti vrijednost koja nije u listi. Kada se Bound
Column (vezani stupac) ne prikazuje kao prvi stupac combo box automatski djeluje kao da
je zabrana na unos postavljena ostavite YES
[22] Prebacite se na karticu General i pod Caption upiite Ime i prezime
[23] Spremite promijene nainjene u Design modu
[24] Otvorite tablicu u izvrnom modu da vidite napravljene promijene
Za sada smo zadovoljni s naom bazom, ali recimo da nas zanima informacija da li je rije o
kunom ili poslovnom broju, te da se kasnije informacije mogu izdvajati i po broju mobitela.
Oigledno je potrebno dodati jo jednu tablicu koja e definirati vrstu telefonskog broja. Tablica e
imati samo dva polja (id_vrste_tel_broja i vrsta_tel_broja), a bit e povezana s tablicom
Tab_telefon preko kljua id_vrste_tel_broja).
Sada kada ste kreirali novu tablicu i u Tab_telefon dodali strani klju preostaje nam jo uspostaviti
nove veze.
25
[26] Otvorite dijalog za dodavanje tablica u taj prozor klikom na ikonu Show Table s
alatne trake Relationship ili napravite desni klik miem bilo gdje na povrinu relacijskog
prozora i iz skonog izbornika izaberite Show Table
[27] U otvorenom dijalogu izaberite novostvorenu tablicu i dodajte je u relacijski prostor klikom
na gumb Add
[28] Stvorite vezu izmeu tablica Tab_telefon i Tab_vrsta_tel_broja povlaenjem pripadnog
polja iz jedne u drugu tablicu
[29] U dijalokom okviru Edit Relationships koji vam se pojavi ukljuite opciju nametanja
referencijalnog integriteta (Enforce Referential Integrity)
26
[30] Spremite nainjene promjene u relacijskom prostoru (CTRL + S)
Otvorite li tablicu Tab_telefon u izvrnom modu vidjet ete da je nuno mijenjati pogled meu
tablicama Tab_telefon i Tab_vrsta _tel_broja. Prisjetimo se da se promjena pogleda radi preko
kartice Lookup u Design modu tablice.
[36] Popunite bazu kontakata proizvoljnim podacima tako da imate podatke bar za 15 osoba
[37] Nakon popunjavanja dodatnim podacima zatvorite bazu
[38] Kopirajte vau bazu relacije_vj2 u novu mapu baze koju ete nainiti unutar vae mape
primjeri_Access
27
[39] Preimenujte kopiranu bazu u upiti_vj3
Doli smo do dijela kada iz nae baze elimo izvlaiti neke informacije i vriti razne manipulacije s
tono eljenim setom podataka. Tu na scenu stupaju upiti eng. Queries.
2.3 Upiti
Organizacija podataka u relacijskim bazama u vidu odvojenih tablica koje su povezane nekim
kljuem moe se nekom na prvi pogled initi prilino nepregledno i nespretno, pogotovo kada se
eli doi do neke sloene informacije ili kada elimo istovremeno raditi s podacima koji su
pohranjeni u vie razliitih tablica. Meutim, upravo su upiti namijenjeni za ispunjavanje takvih ili
slinih zadaa i predstavljaju koristan alat puno korisniji od klasinih filtera. Upiti korisniku
omoguavaju povezivanje podataka iz jedne ili vie tablica, sortiranje podataka na novi nain,
izraunavanje novih polja temeljem poznatih i filtriranje nekog seta podataka po tono eljenim
kriterijima, pa ak i puno vie od toga. Pri tom razlikujemo dva tipa upita:
Jednom kada kreirate upite s njima moete raditi kao s ostalim tablicama u bazi. Zbog toga se esto
nazivaju i virtualne tablice. Rezultati koje daju slue kao izvori podataka za obrasce (Forms) ili
izvjea (Reports). Skup zapisa koji nastaju kao rezultat pokretanja upita nazivaju se recordset
(zabiljeeni skup zapisa). Ako ga moete ureivati onda se naziva dynaset (dinamiki skup
zapisa), a ako ne snapshot (snimka zapisa).
Poznavanjem osnovnih pojmova vezanih uz upite moemo krenuti i na njihovu izradu u Accessu. U
tom smislu koristit emo se kopiranom bazom upiti_vj3. Zbog vanosti koju imaju u bazama
podataka neemo ih izraivati koritenjem arobnjaka, premda je i to mogue. Puno je bolje nauiti
njihovo kreiranje iz razvojnog moda, pa ak i kada je rije o iznimno jednostavnim upitima.
Kreiranje upita na ovaj nain omoguava odreivanje polja koja elite vidjeti kao i postavljanje
kriterija nad poljima kako bi dobili eljenu informaciju. Recimo da nas zanimaju sljedee
informacije upitom elimo izdvojiti sve osobe iz Zagreba s navedenim mail adresama i
brojevima mobitela.
28
3) Kako smo rekli, upit emo kreirati u razvojnom (Design) modu (pogledu) napravite brzi
dvoklik miem na Create query in Desgn view u aktivnom dijelu prozora baze
4) Access e nam automatski otvoriti prozor za kreiranje upita s tzv. Query mreom i prozor
Show Tables iz kojeg izabirete tablice iji podaci e biti ukljueni u upit
Dodajemo
tablice iji
podaci slue za
stvaranje upita
2
Access odmah prepoznaje koja polja su povezana na koji nain temeljem prethodno uspostavljenih
relacija. U ovom sluaju izabrali smo sve tri tablice iz razloga to su nam potrebna polja iz svake
od njih.
5) Napravite brzi dvoklik na polje ID_kontakta iz tablice Tab_osoba ili ga odvucite na eljenu
poziciju u mrei upita
6) To isto ponovite s poljima Ime, Prezime, Grad i e mail iz iste tablice
7) Iz tablice Tab_telefon izdvojite polje Tel_broj
8) Iz tablice Tab_vrsta_tel_broja u upit ukljuite polje vrsta_tel_broja
Ukljuili smo sva polja koja su nam potrebna za stvaranje upita. Slijedi nam odreivanje kriterija
elimo izdvojiti samo osobe iz Zagreba pod Criteria: za polje Grad emo staviti "Zagreb" to
je identino ispitivanju uvjeta = "Zagreb"; zanimaju nas samo brojevi mobitela, pa emo kriterij za
polje vrsta_tel_broja postaviti "mob". U mrei tablice pod imenom polja moemo definirati i
29
zamjensko ime (alias) koje e se koristiti umjesto stvarnog imena polja u tablici. Zamjensko ime
definiramo tako da ispred stvarnog imena upiemo novi naziv nakon ega slijedi znak dvotoke.
Sjetite se da smo spomenuli kako upite moemo smatrati virtualnim tablicama. To e znaiti da e
raspored stupaca u mrei upita odgovarati stvarnom rasporedu stupaca virtualne tablice (upita).
Promjenu irine stupaca, zamjenu mjesta stupcima i brisanje pojedinog stupca u mrei upita vrite
potpuno analogno kao i u Excel tablicama.
Preko check boxa Show odreujemo hoe li se dotino polje prikazati u upitu. U ovom sluaju
elimo da sva polja budu vidljiva. Nakon svih uinjenih zahvata mrea upita bi vam trebala biti
popunjena na sljedei nain:
Svi kriteriji koji se nalaze u istom retku odgovaraju vezanju s logiko i (AND),
dok redanje kriterija u svim redcima ispod odgovara vezivanju s logiko ili (OR)
Pri kreiranju sloenih upita ne morate se ograniiti samo na kreiranje upita iz tablica, ve ih moete
kreirati iz drugih upita, te kombinirano iz tablica i postojeih upita. Uostalom ovo je direktno
vidljivo i iz dijalokog okvira Show Table. Pokretanje upita iz Design pogleda direktno moete
30
izvriti naredbom Run . Ukoliko ste zadovoljni spremanje upita vrite na nain kao to ste
spremali tablice. Ime upita upisujete u dijalog slian onom pri spremanju tablica. Inae upite u
izvrnom modu pokreete potpuno analogno kao to ste otvarali tablice.
Zgodno je da u svakom trenutku nakon "testiranja" upita moete dodatno ukljuiti neku novu
tablicu (upit) preko ikone Show Table , ali naravno samo dok ste u Design pogledu. Ne
zaboravite i famozni desni klik! to je jo interesantnije moete po volji dodavati nova polja ili
brisati stara, mijenjati kriterije, dodavati nove ili brisati stare. Nakon svake promijene snimite upit i
potom ga testirate sve dok ne doete do eljenog rezultata. Budui da nam kriteriji omoguavaju
stvaranje sloenih upita korisno je istaknuti logike operatore koje koristimo u njima:
Kriterij Znaenje
774 Podatak koji je jednak broju 774 (isto kao = 774)
> 774 Podaci koji su vei od 774
< 774 Podaci koji su manji od 774
>=774 Podaci koji su vei ili jednaki od 774
<= 774 Podaci koji su manji ili jednaki od 774
<> 774 Svi podaci koji su razliiti od 774
Like "Da*" Svi podaci koji poinju s Da
"Zagreb" Or "Dubrovnik" Zagreb ili Dubrovnik
between 1/6/1978 And npr. svi roeni izmeu 1. lipnja 1978. i 1. kolovoza
1/8/1978 1978.
Sjetite se poetka nae prie o zapisima koje upiti daju (recordset). Rekli smo da postoje dva tipa
dynaset koje moete ureivati i snapshot koje ne moete ureivati. Pri kreiranju upita trebate voditi
rauna kakav tip zapisa elite da korisnik dobije. Ukoliko mu elite omoguiti promjenu podataka i
unos novih recordset ete postaviti da bude tipa dynaset, a u protivnom snapshot. Sve je ovo pria
koja vam moda na prvi pogled nije jasna, ali nakon to sami podesite tip zapisa kojeg upit daje sve
e vam biti puno jasnije. U biti po predefiniranim postavkama svi upiti koje ste kreirali su stvorili
dynaset zapise. Da bi se u to uvjerili pokrenite zapis Up_Zg_mail_mob u izvrnom (korisnikom)
modu i probajte promijeniti neke podatke za ime, prezime, mail i broj telefona, ali ne dirajte polje
Telefon. Spremite nainjene promjene i otvorite tablicu s podacima Tab_osoba sve nainjene
31
promijene su i ovdje zabiljeene. Nita neoekivano. Vratimo se na na upit i u korisnikom modu
za jednu osobu umjesto mob upiite mob_posao. Spremite nainjene promijene i zatvorite upit.
Sada otvorite tablicu s podacima o vrsti telefona i vidjet ete da umjesto mob sada imate
mob_posao to znai da su se svim osobama koji imaju mobitel podaci mob promijenili u
mob_posao ovo ba i nije ono to ste htjeli.
1 Promjena
u upitu
2a
2b
Uzrokovala
neeljene promjene
u ostalim podacima
Slika 2-30 Dynaset tip zapisa u upitima moe prozrokovati i neeljene promjene
Kada bi ponovno pokrenuli isti upit ne bi davao nikakav rezultat bio bi prazan. Sasvim normalno
ako se zna da je uvjet koji je postavljen glasio ="mob" takav podatak vie nigdje ne postoji
(zamijenjen je s mob_posao) i rezultat upita je prazan skup podataka. Da bi izbjegli ovakve situacije
trebate voditi rauna o dvije stvari:
U sluaju da ste se odluili da korisniku elite omoguiti samo uvid u podatke po odreenim
kriterijima kreirat ete prvi tip upita. Kako ovo izvesti? Pa, radimo sve kao i do sada samo na kraju
tip zapisa promijenimo u snapshot. Uinimo to za naa dva upita:
32
14) Napravite desni klik miem bilo gdje na povrini prozora upita i iz skonog izbornika
odaberite Properties ili na alatnoj traci Query Design kliknite na ikonu Properties
15) Iz otvorenog prozora Query Properties promijenite Recordset Type iz Dynaset u Snapshot
16) Spremite upit i to isto ponovite s drugim upitom
17) Pokrenite oba upita u korisnikom modu
Uoite da vam gumb za upis novog zapisa nije aktivno , a takoer vam se ne moe pojaviti ni
ikona koja oznaava mijenjanje zapisa . Isto tako nema slobodnog retka za upis novog zapisa
pored kojeg se uvijek nalazi ikona . Dobili smo to smo htjeli korisnik samo moe
pregledavati podatke izdvojene nekim kriterijem. Ovakav nain postavljanja upita upisivanjem
primjera kriterija u pripadne retke mree upita naziva se Query By Example. Osim istog
izvlaenja informacija iz baze mogue je proiriti upite na nain da izvravaju odreenu
matematiku operaciju nad jednim ili vie polja. Primjerice zamislimo da nas zanimaju podaci
koliko svaka osoba ima telefonskih brojeva. Potrebno je kao i do sada kreirati upit izdvajanja koji
e nam dati traene informacije tablice koje je potrebno ukljuiti za stvaranje upita su
Tab_osoba i Tab_telefon; polja iz prve su ID_kontakta, Ime i Prezime, a iz druge Tel_broj. Da
bi mogli vriti jednostavne izraune potrebno je u razvojnom modu ukljuiti redak Total u mrei
upita. Iz alatne trake s padajuim izbornicima iz izbornika View izaberite Totals.
33
Pojavit e vam se redak Total koji je automatski postavljen na Group By (grupiraj po) to znai da
se zapisi grupiraju po vrijednostima dotinog polja. Kliknite na strelicu Group By polja Tel_broj i
izaberite Count (pobroj) ime e vam se pobrojati telefonski brojevi za svaki kontakt koji imate u
bazi.
Redak za
izraune
Ugraene
funkcije
Testirajte upit (preko ikone Run ) i potom ga spremite pod nazivom Up_ukupno_telefona.
Opis osnovnih ugraenih funkcija prikazan je u donjoj tablici:
Funkcija Opis
Group By Grupiranje rezultata upita po dotinom polju
Izraunava sumu svih vrijednosti u dotinom polju i prikazuje
Sum
rezultat u upitu
Avg Daje prosjenu vrijednost svih vrijednosti nekog polja
Min izvlai minimalnu vrijednost u polju
Max izvlai maksimalnu vrijednost u polju
Count pobrojava koliko zapisa zadovoljava postavljeni kriterij
First vraa samo prvi zapis koji ispunjava postavljeni kriterij
Last vraa samo zadnji zapis koji ispunjava postavljeni kriterij
Expression elite stvoriti polje za sloeni izraun
Ukazujete Accessu da elite polje upotrijebiti za definiranje uvjeta,
Where
ali ga ne elite prikazati u rezultatu upita
34
Ako ste bili malo radoznaliji sigurno ste malo "proarali" po Design View alatnoj traci upita i u njoj
uoili ikonu Query Type pomou koje moete birati kakav tip upita elite kreirati.
'R VDGD VPR UDGLOL LVNOMX LYR XSLWH VHOHNFLMH 6 HOHFW 4XHU\ SRGDWDND 0H XWLP X RYRP WUHQXWNX QDV
]DQLPDMX PRJXQRVWL L GUXJRJ WLSD XSLWD D WR VX W]Y &URVVWDE 4XHU\ SRSUHQL LOL NULQL XSLWL 7DNYL
XSLWL QDP VOXH ]D JUXSLUDQMH LQIRUPDFL MH SR GYLMH LOL YLH NDWH JRULMD WR EL WR ]QD LOR X QDHP
NRQNUHWQRP SULPMHUX" 6LJXUQR QHNH RVREH PRJX LPDWL YLH PRELWHOD YHL EURM WHOHIRQD QD SRVOX LOL YHL
EURM NXQLK EURMHYD =D LOXVWUDFLMX HPR SUHWSRVWDYLWL GD QHNH RVREH LPDMX GYD LOL YLH PRELWHOD 2QR WR
HOLPR GRELWL NDR UH]XOWDW XQDNUV QRJ XSLWD MH GD QDP VH L]GYRMH RVREH NRMH LPDMX PRELWHOH L GD VH
SREURML NROLNR PRELWHOD LPDMX
18) Preko tablice Tab_osoba za nekoliko osoba unesite podatke za vie mobitela
19) Prebacite se na mod za stvaranje novog upita u kojem trebaju biti ukljuene sve tri tablice
U ovom sluaju polja Prezime i Ime iz tablice Tab_osoba ete spojiti u jedinstveno polje Osoba
upotrebom operatora ampersand (&). Kao i svaki drugi operator i ovaj ima svoju namjenu, a slui
za spajanje (ulanavanje) dva ili vie nizova znakova (stringova) dodaje jedan string na kraj
drugog. Prema tome ulanavanje polja Prezime i Ime iz tablice Tab_osoba u novom polju naziva
Osoba izvrit emo na sljedei nain:
Razmak osiguravate primjenom znaka navodnika. Bez znakova navodnika s razmakom izmeu
direktno bi dobili spojene stringove, npr.:
StipicaStipi
2YDM RSHUDWRU H YDP YLH SXWD GREUR GRL 1R QDVWDYLPR PL VD VWYDUDQMHP QDHJ NULQRJ XSLWD
20) Prvo polje u mrei upita kreirajte na gore opisani nain primjenom operatora ampersand (&)
21) Promijenite tip upita iz Select Query u Crosstab Query preko ikone Query Type
35
8 P UHL XSLWD SRMDYLW H YDP VH MR GYD GRGDWQD UHWND YH SR]QDWL 7RWDO L GRVDG QHSR]QDWL
&URVVWDE 7RWDO QLMH SRWUHEQR REMDQM DYDWL DOL NRMH VX P RJXQRVWL SULPMHQH UHWND &URVVWDE" 8 WRP
UHWNX RGUHXMHWH WR H ELWL UHGFL WR H ELWL VWXSDF X YDHP NULQRP XSLWX L NRMD YULMHGQRVW H VH
L]UDXQDYDWL L SULND]LYDWL X VWXSFLPD =D QD XSLW PUHD H LPDWL VOMHGHL L]JOHG
Kod krinog upita moete im ati vie zaglavlja redaka ( Row Heading) po kojima se
vri grupiranje po redcim a, samo jedno zaglavlje za stupac ( Coloumn Heading)
samo jednu vrijednost koju prikazujete kao rezultat (Value)!
S ovim smo zavrili na prvi dio susreta s upitima. U narednim poglavljima jo emo se vraati na
njih kako bi upoznali mnogo naprednije mogunosti koje nam nude, ali i zbog njihove vanosti koju
imaju u bazama podataka. Ne zaboravite da jo niste ni zakoraili u mogunosti SQL a emu e
biti posveeno cijelo jedno poglavlje. Zanima vas kako napraviti korisniko suelje u bazi? Dobro,
no nemojte uriti jer je vrijeme da ponovimo neke stvari koje smo do sada nauili.
Tablice, Upiti, Forme i Izvjea predstavljaju osnovne objekte Access baze podataka.
Tablice slue za pohranu strukturiranih podataka na organiziran nain osnovni gradivni
element relacijske baze podataka
Entitet sve ono to postoji u stvarnom ili apstraktnom svijetu o emu moemo biljeiti
podatke (svakom entitetu odgovara jedna tablica)
Primarni klju jedno ili vie polja koja osiguravaju jedinstvenost svakog zapisa u tablici
Strani klju polje koje jednoznano odreuje zapis iz neke druge tablice
36
Relacije veze meu tablicama uspostavljene pomou kljueva
1:1 (one to one) veza koja se ostvaruje preko primarnih kljueva (izbjegava se)
1:n (one to many) veza koja se ostvaruje preko stranog kljua (najei tip veze)
n:n (many to many) veza koja zahtjeva stvaranje dodatne (spojne) tablice kako bi se
ta veza razbila na 1:n veze (direktno nije doputena u relacijskim bazama)
Referencijalni integritet onemoguava unos podataka u vezanim tablicama koji nemaju
svoj primarni klju
Kartica Lookup u razvojnom modu Tables za promjenu naina pogleda meu tablicama
Upiti (queries) najee za dobivanje eljenih informacija iz baze po korisnikovom
kriteriju; testiranje upita View Design View (vraa nas nazad u razvojni mod
za eventualne izmjene)
Select Query upiti za izdvajanje informacija iz baze
Action Query akcijski upiti koji vre neku akciju nad podacima (auriranje, brisanje)
Record set zapis koji nastaje kao rezultat izvoenja upita
o Snapshot record set koji se ne moe mijenjati
o Dynaset record set koji se moe mijenjati
Obrasci (Forms) suelje prema korisniku
Izvjea (Reports) prikaz informacija u prihvatljivom i razumljivom obliku za korisnika
(pogodni za ispis)
Svi objekti i sve promjene na svakom objektu se spremaju (primjerice CTRL + S ili )
Access automatski sprema bazu podataka pri izlasku iz baze
Svaka Access baza podataka se prepoznaje kao datoteka s ekstenzijom .mdb
37
1) Nabrojite osnovne objekte Access baze podataka?
2) Kratko opiite ulogu svakog objekta u bazi.
38
2.4 Obrasci (Forms)
Obrasci kao i upiti ne sadre nikakve podatke, nego osiguravaju neku vrst "prozora" kroz koji
moemo vidjeti tablice i upite. To znai da se kreiraju iz tablica ili upita. Odnosno kaemo da
obrasci predstavljaju korisniki orijentirano suelje prema podacima u bazi. Omoguuju vam kao
kreatoru baze da odredite nain i format pojavljivanja tono eljenih podataka na zaslonu, kao i da
dopustite korisniku odreene zahvate nad podacima ili dodavanje novih.
korisnici
obrasci
? ? upiti
tablice
Tab_1 Tab_2 Tab_3 Tab_4
39
Napravit emo obrazac koji nam daje pregled kontakt informacija o osobi i mogunost mijenjanja
istih, odnosno unosa novih. Da bi obrazac mogli napraviti prvo je potrebno pripremiti potrebne
informacije, tj. u ovom sluaju kreirati upit koji e izvlaiti imena i prezimena osoba i njihove
telefone. Preko File New From existing file otvorite bazu upiti_vj3 i u otvorenom
dijalogu kliknite na gumb Create New stvorit e vam se nova baza na istoj lokaciji s imenom
upiti_vj31 koja je potpuna kopija vae baze iz tree vjebe. Na kraju vjebe u kojoj emo se
upoznati s obrascima samo emo preimenovati ovu bazu.
[1] Napravite upit koji e vam davati sve informacije o osobama i svim njihovim telefonskim
brojevima nazovite ga Up_svi_telefoni
[2] U prozoru baze u traci s objektima kliknite na Forms (Obrasci)
Prvo emo koritenjem arobnjaka za izradu obrazaca kreirati obrazac koji nam daje pregled vrsta
telefonskog broja i mogunost unosa novog ili brisanja ve postojeeg.
Birate iz jedne
ili vie tablica
ili upita
Prebacuje
1
samo jedno
polje
Prebacuje sva
polja tablice
ili upita
40
[6] U sljedeem koraku arobnjak vas pita kakav izgled da primjeni na vau buduu formu
nudi se nekoliko mogunosti, ali vi za sada izaberite tabularni prikaz (Tabular)
[7] Dotjerivanje obrasca predefiniranim stilovima se vri u sljedeem koraku (probajte mijenjati
stilove i izaberite koji vam se najvie svia)
[8] U posljednjem koraku obrascu dodjeljujete ime Ob_vrsta_tel Finish
2
3
Sada nam preostaje kreirati i drugi obrazac na potpuno isti nain, ali ovaj put iz upita
Up_svi_telefoni.
Drugi korak e vam se malo razlikovati od prethodnog iz razloga to arobnjak na osnovu podataka
koje ste izabrali odreuje nain koji se njemu ini najprikladniji da podaci budu prikazani na
obrascu. To podrazumijeva i tip obrasca koji e predloiti. Razlog zbog kojeg arobnjak nudi
ovakvo rjeenje lei u injenici da stvarate obrazac iz upita koji je nastao kao rezultat izdvajanja
podataka iz vie tablica Tab_osoba i Tab_telefon .
41
[14] U posljednjem upisujete naziv za obrazac i njegov podobrazac Osnovne informacije i
telefon
Sada bi u aktivnom dijelu prozora baze uz ukljuen prikaz objekata Forms trebali imati tri obrasca.
Kreirali ste dva, a pojavljuju vam se tri obrasca u aktivnom dijelu. Vjerojatno mislite da je rije o
nekoj greci, ali nije tako. Sjetite se samo da ste drugi obrazac kreirali kao obrazac s podobrascem,
42
a Access svaki podobrazac prikazuje odvojeno u aktivnom dijelu prozora i to je razlog zato ih
vidite tri.
Namee vam se ideja da bi drugi obrazac trebalo malo drugaije organizirati potrebno ga je
otvoriti u razvojnom modu i napraviti eljene zahvate:
[16] Prvo emo smanjiti veliinu polja koje prikazuje identifikacijski broj korisnika napravite
klik na text box Id_kontakta pojavit e vam se hvataljke kojima moete mijenjati
dimenzije na isti nain kao to ste mijenjali npr. slikama u Word dokumentima
Oznaka text
boxa
[17] Premjestite text box s prezimenom na nain da bude u ravnini s text boxom imena kada
kliknete i drite pritisnutu tipku mia na eljeni text box promijenit e vam se pokaziva
mia u oznaku ruke odvucite text box na eljenu poziciju
Ukoliko vam se nisu vidjela neka slova u text boxovima ili njihovim nazivima (npr. umjesto
imate znak | ili slino) tada je samo potrebno promijeniti vrstu fonta.
[18] Smanjite irinu naziva text boxova za Ime i Prezime pazite ne text box sam nego samo
njegov naziv
[19] Napravite desni klik miem na text box Grad i iz skonog izbornika izaberite Properties
[20] Promijenite Font Name u Tahoma isto ponovite sa svim text boxovima
[21] Poveajte irinu cijelog obrasca
43
[22] Na slian nain poveajte veliinu podobrasca telefoni
[23] Spremite sve nainjene promijene
Trake za pomicanje u podobrascu u ovom sluaju vam nisu potrebne, a osim toga navigacijski gumbi
u njemu mogu stvoriti pomutnju s navigacijskim gumbima glavnog obrasca. Da bi taj
problem rijeili dovoljno je iskljuiti trake za pomicanje (scroll bars) podobrasca i njegove
navigacijske gumbe uz istovremeno osiguravanje automatske promijene dimenzija podobrasca.
Kvadrati u gornjem lijevom kutu obrasca vam slui za mijenjanje svojstava obrasca /
podobrasca. Da biste doli do dijaloga za mijenjanje svojstava trebate na njemu napraviti brzi
dvoklik ili desni klik, pa iz skonog izbornika izabrati Properties.
44
[28] Spremite nainjene promjene i otvorite obrazac u korisnikom modu
[29] Nainite obrazac primjenom arobnjaka za obrasce iz navedene dvije tablice iz tablice
Tab_osoba uzimate sva polja, a iz druge tablice izostavite samo polje Id_kontakta
Kako na vrijednost ID_telefona ni ne moete utjecati taj text box vam ne treba biti vidljiv na
obrascu. Ponovno se moemo posluiti jednim trikom, a on se odnosi samo na promjenu svojstava
Visible iz Yes u No za text box i za njegovu oznaku (labelu). Potom napravite novi raspored ostalih
text boxova i njihovih oznaka.
45
1
2
Sada slobodno moete dodavati nove telefonske brojeve, a da pri tom ne dobijete poruku o greci.
itav niz interesantnih stvari vezanih uz izradu obrazaca jo uvijek nas eka. Prije nego to
krenemo dalje korisno je dati kratko objanjenje pojedinih alata koje emo esto ubudue koristiti
pri "runoj" izradi obrazaca. Veina alata su uobiajeno smjetena u plutajuoj alatnoj traci
Toolbox. Naravno da bi je mogli vidjeti trebate biti u modu izrade obrazaca (Design View).
Ukoliko vam traka s alatima nije ukljuena napravite desni klik miem na podruje pored trake s
padajuim izbornicima i iz skonog izbornika izaberite Toolbox.
46
Slika 2-47 ukljuivanje alata za izradu obrazaca
Stvaranje text
Kreiranje fiksnog Stvaranje
Za automatsko boxa (tekstualno
teksta labela okvira (Framea)
Za selekciju pokretanje polje) u njih je
za oznaku kojim se vie
objekata na arobnjaka pri mogue upisivati
tekstualnih polja, objekata
obrascu jednostavnim podatke ili
naziva obrazaca grupira po
radnjama mijenjati
ili kao napomene nekom pravilu
postojee
47
Obrasci s vie Otvara popis
kartica Stvaranje ostalih objekata
Crtanje
svaka kartica podobrasca na Crtanje linija na koje moete
pravokutnih
se moe postojeem obrascu iskoristiti za
oblika na obrascu
sastojati od obrascu kreiranje
vie objekata obrasca
S ovim bismo zavrili uvod u rad s MS Accessom. U primjeru koji slijedi vei dio e biti ponovljen,
a postepeno emo objasniti i neke nove stvari koje do sada nismo spominjali. Tu se prvenstveno
misli na izradu parametarskih upita, upotrebu macro naredbi, runu izradu obrazaca i izradu
izvjea koja uope nisu obraena. Drugim rijeima, najzanimljivije tek slijedi!
48
3. PRIMJER BANKA (uplate / isplate)
elimo napraviti relacijsku bazu podataka koja omoguuje unos i pregled transakcija za neki
bankovni raun. Svaki korisnik banke moe imati jedan ili vie razliitih rauna. Rije moe biti o
tekuem raunu, iro, poslovnom, deviznom ili tednom raunu. Tip rauna odmah odreuje
pripadne iznose kamata, te mogunosti transakcija. Po statusu korisnik rauna moe biti poduzee,
obrtnik, dioniko drutvo ili pojedinac (graanin). Pored pregleda transakcija po postojeim
raunima, nuno je osigurati mogunost i kreiranja novih. Pojednostavljeni model baze podataka
prikazan je na slici ispod:
TRANSAKCIJE
evidencija stanja
KORISNICI
i transakcija
RAUNI
BANKA
upit
informacije
Transakcije mogu biti uplate ili isplate. Sve transakcije se evidentiraju posebno, a za svaki raun
postoji informacija o trenutnom stanju rauna saldu. Ograniit emo se samo na nekoliko vrsta
transakcija:
A) UPLATE
a. Plaa
b. Uplata doznakom
c. Uplata na alteru
B) ISPLATE
a. Isplata na alteru
b. Isplata po raunu br.
c. Bankomat (koji)
d. Naknada za izdane ekovne blankete
e. Naknada za voenje tekueg rauna
f. ek br.
49
Na osnovu svega reenog moemo utvrditi da imamo sljedee entitete:
Korisnik
Raun
Vrsta rauna
Vrsta korisnika
Transakcije
Prisjetimo se to je entitet. Entitet je stvarni ili idejni skup opisan nizom svojstava osoba, zgrada,
institucija, mjesto, dokument,
Svaki entitet se u relacijskoj bazi podataka predstavlja tablicom, a njegova svojstva poljima tablice.
Vodite rauna da dijagram entiteti veze realizirate tek na osnovu dobro poznatog modela poslovanja
korisnika baze, te definiranih informacijskih potreba i zahtjeva korisnika na svim nivoima. Prije
nego krenemo s realizacijom baze potrebno je nacrtati njezin model entiteti veze:
Prvo emo realizirati tablice, a potom ih na osnovu gornjeg dijagrama povezati. U tablici korisnik
naziv korisnika se upisuje samo za poduzea, obrtnike i dionika drutva. U tom sluaju upisuje se i
matini broj tvrtke. Za graanske raune upisuje se ime i prezime korisnika i njihov jedinstveni
matini broj. Ostali podaci iz te tablice su jasni.
50
[1] Kreirajte sljedee tablice prema priloenim strukturama
tabKorisnici
tabVrstaKorisnika
Input Validation
Data Type Field Size
Field Name (naziv Required Indexed mask rule
(tip (veliina
polja) (zahtjevano) (indeksirano) (ulazna (pravilo
podataka) polja)
maska) provjere)
Long Yes (No
#id_vrsta_korisnika Number - - -
Integer Duplicates)
vrsta_korisnika Text 30 - - - -
tabVrstaRacuna
Field Size ili
Input mask Validation
Field Name (naziv Data Type Format Required Indexed
(ulazna rule (pravilo
polja) (tip podataka) (veliina polja (zahtjevano) (indeksirano)
maska) provjere)
ili oblik)
Long Yes (No
#id_vrsta_racuna Number - - -
Integer Duplicates)
vrsta_racuna Text 35 Yes - - -
51
tabRacuni
Field Size ili
Input mask Validation
Field Name (naziv Data Type (tip Format Required Indexed
(ulazna rule (pravilo
polja) podataka) (veliina polja (zahtjevano) (indeksirano)
maska) provjere)
ili oblik)
Yes (No
#broj_racuna Number Long Integer - - -
Duplicates)
Date and
datum otvaranja Short Date Yes - Yes -
Time
Yes
saldo Currency Standard - (Duplicates - -
OK)
Yes
id_korisnika Number Long Integer Yes (Duplicates - -
OK)
Yes
id_vrsta_racuna Number Long Integer Yes (Duplicates - -
OK)
tabTransakcije
Input mask Validation rule
Field Name (naziv Data Type (tip Field Size Required Indexed
(ulazna (pravilo
polja) podataka) (veliina polja) (zahtjevano) (indeksirano)
maska) provjere)
Yes (No
#id_transakcije AutoNumber Long Integer - - -
Duplicates)
opis_transakcije Text 45 - - - -
[2] Klikom na ikonu Relationships s Access alatne trake kreirajte veze meu tablicama na
osnovu dijagrama entiteti veze (ER diagram); vodite rauna o referencijalnom
integritetu
Svi podaci e se unositi i mijenjati preko obrazaca, tako da nema potrebe za pokretanjem tablica u
korisnikom modu. Krenimo redom. Prvo trebamo kreirati obrazac koji e nam sluiti za unos
novih korisnika ili za kreiranje novih rauna za ve postojee korisnike. U tom smislu kreirat emo
dva odvojena obrasca. Na jednom e se nalaziti svi podaci o korisniku iz tablice tabKorisnici, a na
drugom odgovarajua polja iz tablice transakcija za unos prve uplate pri otvaranju rauna.
52
Slika 3-3 Relacije u bazi
[3] Kreirajte upit iz tablica tabKorisnici (sva polja) i tabRacuni (sva polja)
[4] Spremite upit pod imenom upKorisniciRacuni
[5] Otvorite novi obrazac u razvojnom modu (Create form in Design view)
[6] Kliknite na gumb Properties Form Design alatne trake
[7] U otvorenom dijalogu pod karticom Data kao izvor (Record Source) izaberite prethodno
stvoreni upit upKorisniciRacuni
[8] Ukljuite listu polja (Field List) View Field List ili klikom na istoimenu ikonu sa
alatne trake Form Design
Slika 3-4 Dijalog svojstava obrasca izbor izvora podataka s kojim e se povezati obrazac
53
[9] Iz liste polja metodom Drag'n' Drop na povrinu obrasca odvucite redom sva polja osim
polja id_korisnika iz tablice tabRacuni
[10] Prema potrebi poveajte veliinu obrasca, a raspored polja neka vam bude kao na slici
ispod
Uoavate da vam oznake (Label) tekstualnih okvira (text box) nisu dobro razmjetene, a ni
njihove veliine, pa ak i sami nazivi nisu prema korisnikim potrebama.
[11] Prvo smanjite text box u kojem e se nalaziti prikazan identifikacijski broj korisnika
[12] Promijenite njegovu oznaku (Label) u ifra korisnika: najjednostavnije brzim
dvoklikom na postojeu oznaku i potom tekst mijenjate kao bilo koji tekst u Wordu
[13] Promijenite dimenziju toj oznaci i poravnajte je s ostalima
11. korak
13. korak
12. korak
54
Veoma esto je zgodno svakoj oznaci dati i svoje ime, a ne ostaviti ime koje Access automatski
dodjeljuje to moete uiniti preko dijaloga Properties oznake:
Umjesto da nam se prikazuje identifikacijski broj vrste korisnika i identifikacijski broj vrste rauna
zgodnije je promijeniti nain prikaza pripadnih tekstualnih okvira u combo box i vezati ih za
pripadne stupce u tablicama tabVrstaKorisnika i tabVrstaRauna. Na taj nain prikazivat e nam
se vrste korisnika (graani, obrtnici,) i vrste rauna (tekui, iro,). Postupak je prilino
analogan postupku promijene pogleda meu tablicama, to smo ve bili radili u prvoj vjebi.
[15] Napravite desni klik na tekstualni okvir u kojem pie id_vrsta_korisnika izaberite
Change To Combo Box
[16] Ponovno otvorite svojstva i poda karticom Data pod Row Source izaberite
tabVrstaKorisnika
Prebacite se na karticu Format i pod Column Count unesite 2, a pod Column Width 0;3 (Access
e sam dodati cm) na ovaj nain u kombiniranom okviru e se prikazivati samo drugi stupac iz
tablice u kojoj su navedene vrste korisnika, jer smo irinu prvog postavili na 0cm (stvaramo malu
varku Access i dalje radi s identifikacijskim brojevima, koje skriva, a korisniku prikazuje samo
nazive koji su vezani za te identifikacijske brojeve)
55
Slika 3-7 promjena tekstualnog okvira u kombinirani okvir (combo box)
Slika 3-8 Izbor izvora podataka za combo box i prikrivanje prvog stupca pripadne tablice
Ukoliko ste mijenjali pogled meu tablicama tada vam ovi zahvati nee biti potrebni na
obrascima automatski e se pojavljivati combo boxovi umjesto text boxova
56
Broj rauna i stanje (saldo) emo istaknuti primjenom jednostavnih efekata.
[19] Desni klik na tekstualni okvir broj_racuna i iz pop up izbornika izaberite Special Effect
efekt sa sjenom
[20] Ponovite isto i sa saldom
Nakon spremanja svih promjena zatvorite obrazac u razvojnom modu. Na redu je kreiranje drugog
obrasca koji e sluiti za unos prve transakcije na raun.
Samo odvuete i
obrazac postaje
podobrazac na
otvorenom obrascu
u razvojnom modu
Preostaje nam jo definiranje polja po kojem su obrazac i podobrazac povezani. Kada su obrazac i
podobrazac kreirani na osnovu tablica tada ne postoji problem u definiranju veze meu njima, jer je
ta veza odreena relacijama meu tablicama. U takvim sluajevima Access nee imati nikakvih
57
problema u odreivanju vezanih polja na glavnom obrascu i podobrascu. Meutim, ukoliko je bilo
koji obrazac (glavni ili podobrazac ili ak oba) temeljen na upitima Access ne posjeduje eksplicitne
informacije o vezi meu tim obrascima. U takvim sluajevima vezu je potrebno definirati "runo".
Oznaite podobrazac kliknete na njegov rub i kada se pojave hvataljke za promjenu dimenzija na
alatnoj traci Form Design kliknite na ikonu Properties. U kartici Data svojstava uoite polja Link
Child Fields i Link Master Fields. Kliknite na gumb s tri tokice pored bilo kojeg od ta dva
polja. U dijalogu koji se pojavi, ako to ve nije ponueno postavite vezu po broju rauna
(broj_racuna) kao na slici ispod.
2
1
Naposljetku, trebamo kreirati i kontrolni gumb kojim e se prva uplata postaviti na trenutni saldo
rauna. Da bismo mogli kreirati akcijski gumb potrebno je poznavati neke osnove programa
pogonjenih dogaajima (Event Driven Programming). Ne trebate se obeshrabriti, jer nije rije o
niem kompliciranom.
Osnova ovih programa je da se oni izvravaju nakon interakcije korisnika preko suelja aplikacije
obrasci, meniji, kontrolni gumbi i sl. Da bi kreirali aplikacije pogonjene dogaajima
programeri sastavljaju itav niz manjih programa koje prikae na razne objekte aplikacije i za svaki
objekt odrede dogaaj koji ih okida (najei dogaaj je klik mia). Na ovaj nain izvravanje
aplikacije ovisi o tijeku izvravanja manjih, upravljivih i lako odravajuih programa, a ne o tijeku
jednog velikog, nepreglednog i teko upravljivog programa. Kako dogaaji pridrueni objektima na
obrascima okidaju neku akciju veoma esto se nazivaju okidai (triggers). Procedura koja se pri
tom izvrava moe biti napisana u VBA (Visual Basic for Application) programskom jeziku, ali su
58
kao takve esto podlone pravljenju greaka od strane programera. Pogotovo u takvim sluajevima
dolazi do znaajnih problema kada je potrebno potivati konvenciju imenovanja u hijerarhiji baze.
Upravo iz tog razloga, ak i iskusniji programeri, pri implementaciji najeih okidaa se okreu
Accessovom Macro jeziku. Rije je o jeziku koji se sastoji od etrdesetak naredbi. Iako je rije o
proceduralnom jeziku kao to je i VBA, naredbe su razumljive i lako upotrebljive. Kao poseban
dodatak jednostavnosti primjene macro naredbi je razvijeni macro editor koji pojednostavnjuje
specificiranje akcijskih argumenata (parametara).
Form Title
Izvodi se
PROCEDURA
npr. ispisati
e se narudba
DOGAAJ:
na klik mia
Text
Status bar
1) to e se dogoditi?
2) Kada se treba dogoditi?
Primjerice:
Kada ste jednom odgovorili na prvo pitanje (to se treba dogoditi) trebate kreirati macro ili (VBA
proceduru) koja e osigurati izvravanje potrebnih koraka. Nakon toga rjeavate drugo pitanje i
pridjeljujete kreiranu proceduru odreenom dogaaju na eljenom objektu. Puno prie bez pravog
primjera ne moe biti od koristi, pa emo kreiranje macroa pokazati na naem sluaju potvrde prve
transakcije. Dakle, na odgovor na prvo pitanje je potvrda prve transakcije (koja moe biti samo
uplata), a na drugo izvrava se nakon klika na gumb Potvrdi transakciju. To znai da na
glavnom obrascu trebamo kreirati kontrolni gumb kojem emo prikaiti pripadni macro. Ovaj put
59
emo prvo kreirati macro, a potom ga povezati s dogaajem pripadnog objekta kontrolnog gumba
na obrascu obNoviKorisnik_Racun.
[30] U prozoru baze kliknite na objekt Macros potom na ikonu New na alatnoj
traci baze. Otvorit e vam se Macro editor kao na slici ispod.
[33] Kliknite na gumb s tri tokice (Build button) pored argumenta Item otvorit e vam
se Expression Builder
60
Odreujemo naredbu za
Po potrebi upisujemo
akciju
komentar
Okvir s informacijama
[34] U Expression Builderu s lijeve strane nalazi vam se popis objekata napravite brzi
dvoklik na Forms pa na Loaded Forms kako bi pristupili trenutno otvorenim
obrascima (All Forms vam daje pristup svim obrascima)
[35] Doite do obrasca obNoviKorisnik_Racuni i potom napravite brzi dvoklik na polje
saldo u sredinjem okviru potvrdite s OK na ovaj nain ste osigurali da e se nova
vrijednost postavljati u to polje
[36] Ponovite postupak s Expression, ali ovaj put doite do podobrasca i izaberite polje
uplata u glavnom okviru Expression Buildera pisat e vam sljedei izraz:
Forms![obNoviKorisnik_Racun]![obPrvaTrans].Form![uplata]
esta je praksa da se nakon nekakve naredbe ispie potvrda o uspjenosti njezinog izvoenja
naredba MsgBox.
[38] Kliknite ispod naredbe SetValue i iz padajue liste izaberite naredbu MsgBox
[39] U komentar upiite ispisuje potvrdnu poruku o uspjeno izvrenoj transakciji
[40] Pod argument Message upisujete poruku koja e se prikazati korisniku Transakcija
izvrena!
[41] Na kraju se stavlja naredba koja prekida izvravanje macroa StopMacro
Za ovu naredbu ne trebate definirati ni jedan argument, a takoer nema ni potrebe za dodatnim
komentarom.
61
Naredbe se izvravaju
od vrha prema dnu
Za snimljeni macro znamo to radi postavlja saldo na vrijednost prve uplate, potom ispisuje
poruku o izvrenoj transakciji i na kraju prekida izvravanje samog macroa. Jo je potrebno
prikaiti taj macro na eljeni objekt i definirati dogaaj koji ga okida. Macro emo pridruiti
kontrolnom gumbu koje emo nainiti na obrascu obNoviKorisnik_Racun, a okidat e se na klik
mia.
[43] Spomenuti obrazac vam je jo uvijek otvoren u pozadini klikom na njega uinite ga
aktivnim
[44] U alatnoj traci kliknite na ikonu za kreiranje kontrolnog gumba (akcijskog gumba)
62
Za unos vrste korisnika i vrste rauna neemo kreirati obrasce, jer je rije o unosima koji se vre
jednom. Te unose emo obaviti direktno preko pripadnih tablica.
Slika 3-16 promjena naslova kontrolnog gumba i pridruivanje procedure gumbu na eljeni dogaaj
Skoro pa da smo i gotovi s prvim obrascem jo je nuno osigurati unos novih podataka u
podobrazac pri svakom otvaranju glavnog obrasca, iskljuiti navigacijske gumbe i trake za
pomicanje na njemu.
63
[46] Prebacite se na karticu Format i Scroll bars postavite na Neither, te iskljuite
navigacijske gumbe Navigation Buttons No
Slika 3-17 Promjena naina unosa, te iskljuivanje traka za pomicanje i navigacijske gumbe
[47] Unesite proizvoljne podatke za prvog korisnika i odmah za njega kreirajte drugi raun
3
1
64
Uoavate nedostatak ovog obrasca koji se javlja kada elimo otvoriti novi raun za ve postojeeg
korisnika. Potrebno je ponoviti sve podatke za korisnika, a dodjeljuje mu se i dodatni
identifikacijski broj za svaki raun. Taj nedostatak emo otkoloniti izradom potpuno novog obrasca
koji e nam sluiti za unos podataka o korisniku i kreiranje rauna. Sam obrazac emo kreirati iz
tablica tabKorisnici i tabRacuni primjenom arobnjaka.
[55] Unesite podatke za nekoliko korisnika (desetak) tekui rauni neka poinju s 1000,
iro s 20000, poslovni s 30000, devizni s 40000 i tednja s 50000
[56] Neka vam bar tri korisnika imaju po dva ili vie rauna
Kada imamo kreirane korisnike i raune moemo vriti razne transakcije po tim raunima.
Oigledno nam treba obrazac preko kojeg emo unositi transakcije na odreeni raun. Kako je broj
rauna poznat i automatski odreuje tip korisnikog rauna, potrebno je napraviti parametarski upit
po broju rauna koji e izvlaiti podatke o korisnicima i njihovim raunima.
65
3.2 Parametarski upiti
Parametarski upiti spadaju u skupinu dinamikih upita. Kod te vrste upita kriterij za izbor zapisa
nije odreen pri samom kreiranju upita, ve je korisniku baze ostavljena mogunost zadavanja
kriterija pri samom pokretanju upita. Kada se takav upit pokrene korisniku se javlja jedan ili vie
dijalokih okvira u koje ovaj upisuje eljene kriterije.
Za primjer se sjetite upita u kojem smo eljeli izdvojiti brojeve mobitela osoba iz Zagreba. U
pripadna polja pod redak kriterija upisali smo "Zagreb" i "mob". Svatko je od vas uoio nedostatak
ovakvih upita to da su nas zanimali brojevi mobitela osoba iz Splita ili kuni brojevi osoba iz
Zadra? Odmah se namee i odgovor trebali bi kreirati isto toliko novih upita koliko je novih
kriterija. Oigledno je rije o nezgrapnom rjeenju koje bi trebalo na neki nain izbjei. Upravo tu
uskau parametarski upiti.
[1] Otvorite bazu podataka u kojoj se nalazi spomenuti upit (vjeba br. 3)
[2] Pod polje grad u redak Criteria upiite [Upiite grad po kojem elite vriti pretragu:]
[3] Pod polje vrsta telefona u retku Criteria upiite [Definirajte vrstu telefona:]
1 2
Kako se u ovom sluaju ponaa Access kada mu stalnu vrijednost zamijenimo s promjenjivom
(varijablom)? Kada naie na takvu situaciju Access e pokuati vezati varijablu za neku vrijednost.
Pri tom e izvriti sljedee testove:
I. Prvo provjerava da li ime varijable predstavlja ime nekog polja ili proraunskog polja u
upitu. Ako da, onda pridjeljuje trenutnu vrijednost tog polja varijabli. U suprotnom ovaj test
ne daje nikakav rezultat.
II. Access pokuava razrijeiti vrijednost parametra kao referencu na neto u trenutnom
okruenju. Primjerice na vrijednost otvorenog obrasca. Ako ne postoji takva referenca ovaj
test ne prolazi.
III. Kao posljednji sluaj, Access pita korisnika da unese vrijednost parametra preko dijalokog
prozora.
66
Spremite nainjene promjene u upitu i potom ga pokrenite. Access e od vas traiti da upiete
vrijednosti za dva parametra grad i vrstu telefona, upravo kako ste ih kreirali u razvojnom modu.
Puno uobiajenije rjeenje od ovoga je da se koristi vrijednost s obrasca koja dalje odreuje odziv
parametarskog upita. Pojednostavljeno kazano Access e u tom sluaju povui vrijednost parametra
direktno s otvorenog obrasca. Za ilustraciju ovog naina opet emo se posluiti s postojeom
bazom.
Upisujete
vrijednosti
za Combo
Box
Oznaka koju
e nositi
Combo Box
Na ovaj nain smo kreirali kontrolni gumb koji e pozivati eljeni upit!
[11] Spremite obrazac pod nazivom obPretraga ostavite otvoren ovaj obrazac
67
[12] Otvorite upit upGradTel u razvojnom modu
[13] Pod Criteria polja grad pozovite expression builder tako da napravite desni klik na tom
polju i iz skonog izbornika izaberete Build
obrazac
Kursor postavite u redak
Criteria polja Grad desnim
klikom pozovete pop up
izbornik izaberite Build
upit
[14] Napravite brzi dvoklik na Forms Loaded Forms (popis trenutno otvorenih obrazaca) i
All Forms (popis svih obrazaca u vaoj bazi)
68
Brzim
dvoklikom na
Forms
dobivate uvid
u sve obrasce u Kada ste
vaoj bazi gotovi kliknite
na gumb OK
Dok je eljeni
obrazac u
pozadini
otvoren
kliknite na
Loaded Forms U sredinjem
i izaberite ga okviru
napravite brzi
dvoklik na ime
polja koje e
odreivati
kriterij
Slika 3-20 Upotreba Expression Buildera za odreivanje objekta s obrasca koji e se koristiti kao parametarski
kriterij
[15] Izabrali ste objekt Grad s obrasca sve vrijednosti koje na obrascu unesete u taj text
box predstavljat e kriterij pretrage po polju Grad u upitu upGradTel
[16] Ponovite postupak s poljem Vrsta_tel_broja kojeg ete povezati s Combo boxom
Vrsta_tel na obrascu obPretraga
[17] Spremite nainjene promjene u upitu upGradTel
[18] Jo bi bilo zgodno ukloniti navigacijske gumbe s obrasca uklonite ih preko dijalokog
prozora Properties obrasca Navigation Buttons No
[19] Pokrenite obrazac obPretraga i pod Grad upiite ibenik, a pod vrsta telefona kuni
[20] Kliknite na gumb Pretraga
Ukoliko imate barem jedan od unosa koji zadovoljava postavljene kriterije dobit ete rezultat slian
ovome prikazanom na slici ispod:
69
Slika 3-21 Rezultat parametarskog upita dobiven preko obrasca
Kako ste preimenovali upit upGradTel u pupGradTel taj kontrolni gumb upuuje na nepostojei
objekt, te se iz tog razloga javlja greka. Problem je jednostavno rijeiti preko svojstava kontrolnog gumba
Pretraga. Otvorite obrazac obPretraga u razvojnom modu i nainite brzi dvoklik na gumb
Pretraga. U dijalogu svojstava koji vam se otvori pod karticom Event nalazi se dogaaj On Click kojem
je pridijeljena procedura ([Event procedure]). Kliknite u to polje i pored e vam se
pokazati gumb s tri tokice.
Klikom na njega otvara se Visual Basic Editor i procedura koja se izvrava klikom na gumb
Pretraga. Nema potrebe da se previe zamarate s kodom, vee e vam na prvi pogled biti
razumljivo to treba promijeniti. Sigurno uoavate liniju u kojoj stoji:
stDocName = "upGradTel"
70
Jedino to trebate napraviti je promijeniti ime upita u novo ime pupGradTel naziv opet ostaje
pod navodnicima. Spremite nainjene promijene i zatvorite Visual Basic Editor. Spremite i
promijene u obrascu. Nakon ponovnog pokretanja obrazac e opet dobro funkcionirati. Zatvorite
bazu.
Vratimo se naem problemu s bankom. Sada imamo dovoljno znanja da kreiramo parametarski upit
koji e davati pregled podataka o korisniku i raunu na osnovu unesenog broja rauna.
71
Slijedi kreiranje obrasca za unos transakcija na raun. Ponovno emo kreirati dva odvojena obrasca
od kojih emo postupkom kao i za prvi obrazac kreirati jedan obrazac s podobrascem. Cilj je dobiti
glavni obrazac koji e prikazivati informacije o korisniku rauna br. ###### i same informacije o
tom raunu (datum otvaranja, saldo, vrsta rauna), a na podobrascu trebamo biti u stanju unositi
nove transakcije. Svaka transakcija, bilo uplata ili isplata se posebno potvruje pripadnim
kontrolnim gumbom. Automatski svaka nova transakcija treba mijenjati stanje salda.
[6] Kreirajte novi obrazac iz parametarskog upita pupPoBrojuRacuna bilo runo ili
arobnjakom
[7] Spremite obrazac pod nazivom obUnosTransakcija
[8] Kreirajte novi obrazac upotrebom svih polja iz tablice transakcija koristite arobnjaka,
a za tip obrasca izaberite Columnar
[9] Spremite obrazac pod nazivom podTransakcije
[10] Spojite ta dva obrasca u jedan na nain da vam glavni obrazac bude
obUnosTransakcija, a podobrazac podTransakcije
[11] Poveite ih po polju broj_racuna
[12] Na podobrascu promijenite svojstvo Data Entry pod karticom Data iz No u Yes
[13] Promijenite neeljene oznake tekstualnih okvira ili kombiniranih okvira
U ovom dijelu obrazac bi vam trebao izgledati priblino kao na slici ispod:
Kreirano alatom
Rectangle
Potrebno je jo kreirati akcijski gumb kojim e se izvriti transakcija na raun. Ovaj put macro
neemo kreirati prije samog gumba ve za vrijeme pozivanjem Macro Buildera.
72
[14] Ucrtajte akcijski gumb na eljenom mjestu na glavnom obrascu
[15] Iskljuite arobnjaka klikom na gumb Cancel
[16] Preko dijaloga Properties promijenite natpis (Caption) na gumbu u Potvrdi
transakciju
[17] Prebacite se na karticu Event i pod dogaajem On Click kliknite na gumb Build
button u otvorenom dijalogu izaberite Macro Builder
Build button
Slika 3-25 Otvaranje Macro editora preko dijaloga svojstava akcijskog gumba
Ovim nainom prvo smo odgovorili na nae drugo pitanje Kada e se dogoditi akcija vezana uz
okida na klik mia. to e se tada dogoditi nae prvo pitanje, ima sljedei odgovor
trenutno stanje salda e se uveati za iznos uplate ili smanjiti za iznos isplate. To je matematiki
jednostavno opisati:
Nakon promijene vrijednosti salda uzrokovane transakcijom, treba se ispisati poruka o uspjeno
izvedenoj transakciji i potom zaustaviti izvoenje macroa. Ve vam je sve poznato, tako da nakon
otvaranja Macro editora samostalno moete kreirati pripadni macro.
73
Problem na koji smo naili moemo rijeiti uvoenjem uvjeta izvoenja pojedinih naredbi koje
sainjavaju macro. Za to nam je potrebno na glavnom obrascu iznad kontrolnog gumba ucrtati
check box (kontrolnu kuicu) s pripadnim alatom . Njegova vrijednost je po defaultu
(predefinirano) postavljena na NO (neistinu) nema kvaice. Kako to iskoristiti za rjeavanje naeg
problema? Pa odgovor ide ovako nekako kada je ta kontrolna kuica potvrena ispisat e se
poruka Ova transakcija je ve izvrena! i prestat e izvoenje macroa. U suprotom izvrit e se
naredbe kao i u prethodnom sluaju, s tim to emo dodati naredbu koja postavlja vrijednost
kontrolne kuice u istinu (YES) stavlja kvaicu.
Transakcija izvrena:
NE
DA
SetValue
MsgBox (saldo = saldo +uplata
(Transakcija je vec - isplata)
izvrena!) MsgBox
StopMacro (Transakcija izvrena)
SetValue
(Yes za
kontrolnu kucicu)
[29] Iznad prve naredbe SetValue umetnite dva retka kao to bi ih umetnuli u Excel tablicu
[30] Umjesto postojee naredbe StopMacro koja je trenutno posljednja postavite SetValue
[31] Kao argument Item postavite pozivom Expression Buidera check box Trans_izvrsena
74
Slika 3-28 Postavljanje check boxa Trans_izvrsena za argument naredbe SetValue
[32] Kako check box moe poprimiti samo dvije vrijednosti Yes i No, to emo u Expression
upisati Yes predefinirano je bilo na No
[33] U prvi prazni redak pod Condition upiite
[Forms]![obNovaTransakcija]![Trans_izvrsena]
[34] Pod Action izaberite MsgBox kojem ete kao poruku upisati Ova transakcija je ve
izvrena!, a kao tip staviti Warning!
[35] U retku ispod (drugi dodani) pod Condition stavite to podrazumijeva prenoenje
istog uvjeta kao za naredbu prije
[36] Kao naredbu izaberite StopMacro
75
[37] Spremite promjene na macrou
[38] Iskljuite navigacijske gumbe i trake za pomicanje na glavnom obrascu
[39] Spremite nainjene promjene
[40] Testirajte obrazac za svakog korisnika napravite nekoliko transakcija
Bilo bi zgodno na obrascu za unos podataka i otvranje rauna kreirati akcijski gumb koje bi
odmah otvaralo obrazac za unos transakcija. Kreiranje tog akcijskog gumba emo "prepustiti"
arobnjaku.
Biramo akciju
koju Biramo
dodjeljujemo obrazac kojeg
gumbu elimo otvarati
otvori obrazac gumbom
Odreujemo
nain na koji
e se otvarati
obrazac 4
Biramo izgled
3 gumba
postojee slika
ili korisniki
tekst
76
[44] U posljednjem koraku e vas arobnjak upitati da dodijelite ime kontrolnom gumbu
Com_3
[45] Spremite nainjene promijene i testirajte obrazac
Dalje nas zanima mogunost pregleda svih korisnika i njihovih rauna sjetite se da svaki korisnik
moe imati vei broj rauna; potom pregled stanja rauna po broju rauna uz pregled prometa za taj
raun sortiran po datumima u silaznom nizu. U tom smislu kreirat emo nekoliko upita.
[28] Kreirajte upit koji e davati pregled svih korisnika(identifikacijski broj, ime, prezime,
naziv, mjesto, adresa i potanski broj) i njihovih rauna (sa saldom za svaki raun,
datumom otvaranja, vrstom rauna i brojem rauna)
[29] Nainite sortiranje korisnika po identifikacijskom broju u uzlaznom nizu (Ascending)
[30] Spremite upit pod nazivom upSviRacuni
[31] Kreirajte upit koji e prikazivati sve transakcije za neki raun sortirane po datumima u
silaznom nizu
[32] Spremite taj upi pod nazivom upSveTransakcije
Rezultati oba upita treba da daju samo pregled korisnika i njihovih rauna, tj.
transakcija bez mogunosti utjecanja na njih promijenite tip dobivenih zapisa iz
Dynaset u Snapshot. (vidi uvod u rad s MS Accessom str. 33)
Ponavljamo ve poznatu priu kreirat emo "runo" dva obrasca koja emo potom povezati u
jedan obrazac s podobrascem. Za prvi obrazac emo upotrijebiti upit upSviRacuni, a za drugi
upSveTransakcije. Prvi obrazac nazovite obPregled, a drugi podSveTransakcije. Iz samih naziva
vam je jasno koji obrazac e imati ulogu glavnog obrasca, a koji podobrasca. Spojite obrasce u
jedan obrazac. Glavnom obrascu i podobrascu preko svojstava tip podataka promijenite iz Dynaset
u Snapshot.
77
Red je da malo "uminkamo" dobiveni obrazac. Preko izbornika View ukljuite prikaz zaglavlja i
podnoja obrasca Form Header / Footer.
Mijenjamo
boju
pozadine
78
[40] Ponovite isto i s podobrascem.
[41] Oznaku podobrasca poveajte i oblikujte po elji, a tekst podSveTransakcije
promijenite u Pregled prometa na raunu br.
[42] Oznaku tekst okvira broj_racuna izbriite jednom kliknete na nju, pa "poznata" tipka
DELETE dolazi u akciju
[43] Pomaknite taj okvir u ravninu s oznakom podobrasca i oblikujte ga potpuno na isti nain
[44] Potpuno smanjite podnoje obrasca
[45] Spremite promjene
79
3.3 Izvjea (Reports)
Kao to smo rekli na poetku nae prie pri stvaranju baze podataka treba odrediti izlazne
informacije koje elimo dobiti. Ti izlazi se prikazuju na zaslonu monitora ili se ispisuju na papir.
Prikaz na zaslonu je najee u obliku forme kao to smo i vidjeli u naem zadnjem primjeru.
Forme se prema potrebi mogu ispisivati, ali najbolji nain za prikaz izlaznih informacija je
primjenom izvjea eng. Reports. Ovo pogotovo vrijedi u sluajevima kada informacije
pokrivaju vie zapisa i kada je potreban nekakav saetak. (ECDL)
Izvjea u biti predstavljaju oblik iznoenja informacija korisniku na njemu najprihvatljiviji i
najrazumljiviji nain, koji je kao takav pogodan za ispis. U velikom broju sluajeva izvjea su
najvaniji dio neke aplikacije.
Sam postupak izrade izvjea je vrlo slian izradi obrazaca. Iz tog razloga se neemo previe
zadravati na detaljima ve emo kroz par konkretnih primjera pokazati osnovne radnje pri njihovoj
izradi.
Napravit emo izvjee koje nam daje ispis svih transakcija za nekog korisnika za sve njegove
raune, kao i prikaz salda za svaki raun. Prvo emo kreirati upit koji e izvlaiti eljene
informacije.
80
1. korak
2. korak
3. korak
[12] Sljedei dijalog nudi mogunost sortiranja podataka po jednom ili vie polja u uzlaznom
ili silaznom nizu izaberite sortiranje po id_transakcije u uzlaznom nizu (Ascending)
ako bi eljeli vriti sortiranje u silaznom nizu dovoljno je nakon izbora polja kliknuti
na gumb Ascending i ono e se promijeniti u Descending
81
Slika 3-34 odreivanje sortiranja u izvjeu po eljenim poljima
[13] Dolazimo do klasinog dijaloga za izbor izgleda izvjea, tj. nain rasporeda elemenata
na stranici izvjea izaberite Align Left 2 (inae kada radite izvjea u ovom koraku
isprobate sve izglede i na osnovu pregleda u lijevom okviru zakljuite koji izgled najvie
odgovara prikazu vaih podataka)
82
Pod orijentacijom odreujemo da li e stranica pri ispisu biti uspravna (Portrait) ili
poloena (Landscape).
Opcija Adjust the field so all fields fit on a page osigurava da se sva polja na izvjeu
stanu u irinu jedne stranice.
[14] Sljedei korak Report Wizarda omoguava odabir stilova za budui izvjetaj nema
druge nego po pricipu probajte, pa izaberite to vam se svidi
[15] Zavrni korak arobnjaka vezan je samo uz dodjeljivanje imena kreiranom izvjeu
(radio buttons koja su vam na raspolaganju omoguuju pregled izgleda izvjea Preview
the report ili njegovo modificiranje u razvojnom modu Modify the report's design)
izvjeu dodijelite ime izPregledRaunaTransakcija
Oigledno niste zadovoljni dobivenim rjeenjem, pa emo nekoliko zahvata trebati napraviti
"runo" u razvojnom modu.
83
Vei broj elemenata na izvjeu moete istovremeno selektirati drei pritisnutu tipku
SHIFT pri njihovom oznaavanju.
Elementi se pomjeraju kao i na obrascima, a takoer na isti nain im mijenjamo i
dimenzije.
Nakon nainjenih promjena izvjee bi vam trebalo imati priblino sljedei izgled:
Kada su kreirani svi objekti baze (tablice, upiti, obrasci, izvjea,) nuno je kreirati i glavni
izbornik aplikacije, koji se u Accessu esto naziva razvodni obrazac ili razvodna ploa
84
(Switchboard). Na ovaj nain korisnicima baze osiguravamo jednostavnije koritenje i snalaenje u
aplikaciji.
Kreiranje glavnog izbornika aplikacije uglavnom se vri primjenom arobnjaka koji se naziva
Switchboard Manager. Do njega dolazite preko izornika Tools Database Utilities
Switchboard Manager.
85
Close zatvara dijaloki okvir
New za kreiranje nove stranice ili obrasca
Edit ureivanje selektirane stranice
Delete brisanje stranice
Make Default proglaavanje stranice osnovnom koja se prva pokree
[1] Kliknite na New i u dijalogu koji vam se pojavi upiite ime Obrasci za novu stranicu
[2] Ponovite postupak, samo sada upiite Izvjea
86
[7] S Close se vratite na prethodni dijaloki okvir
[8] Oznaite stranicu Obrasci Edit New
[9] Pod Text upiite Unos novih korisnika, a pod Command izabeite Open Form in Add
mode pod Form izaberite obrazac obPodaci
[10] Ponovite to isto samo pod tekstom upiite Otvaranje novih rauna; Command je ovaj
put Open Form in Edit mode i izaberite opet istu formu
Slika 3-42 kreiranje gumba za otvaranje obrasca za unos novog korisnika i otvaranje novih rauna
[11] Na isti nain kreirajte gumb koje e otvarati obrazac obPregled za pregledavanje svih
transakcija po odreenom raunu
87
[13] Vratite se na polazni dijalog klikom na gumb Close
[14] Kliknite na stranicu Izvjea Edit New
[15] Ponovno New kako bi kreirali gumb za ispis podataka o korisnicima i njihovim
raunima otvorili izvjee izKorisniciRauni
Cijeli glavni izbornik moete napraviti i bez primjene SwitchBoard Managera kao i
bilo koji drugi izbornik kojeg ste do sada radili najbolje "runo"
Prebacite se pod Forms i uoite da ste dobili novi obrazac naziva Switchboard rije je upravo o
glavnom izborniku aplikacije kojeg ste nainili Switchboard Managerom. Njega sada moete
ureivati po elji kao i bilo koji drugi obrazac.
Dobro, glavni izbornik aplikacije smo izradili, ali to jo uvijek nije dovoljno sve dok ne definiramo
tzv. inicijalne postavke kojima emo postaviti da upravo taj izbornik bude prvi kojeg e vidjeti
krajnji korisnik pri pokretanju aplikacije. Takoer je korisno da sam glavni prozor baze bude
skriven kako korisnik ne bi sluajno napravio promijene koje bi "sruile" aplikaciju ili dovele do
neeljenog funkcioniranja nekog njenog dijela. Pa krenimo i na taj korak.
88
[20] Pod Form / Page izaberite na glavni izbornik Switchboard (osiguravamo da se on prvi
pojavljuje)
[21] Iskljuite prikaz prozora baze Display Database Window
[22] Onemoguite korisnika da vri promijene na alatnim trakama i menijima iskljuite
opciju Allow Toolbar / Menu Changes
[23] Iskluite opciju Use Access Special Keys
[24] Sve ostale postavke ostavite nepromijenjene
[25] Potvrdite promijene OK
89