You are on page 1of 91

SADRAJ :

PREDGOVOR

1.

OSNOVNI POJMOVI O BAZAMA PODATAKA

1.1
1.2

RELACIJSKE BAZE PODATAKA


DIZAJNIRANJE BAZE PODATAKA

3
4

2.

UVOD U RAD S MS ACCESSOM

2.1
2.2
2.3
2.4
3.
3.1
3.2
3.3
3.4

TABLICE
RELACIJE U BAZI
UPITI
OBRASCI (FORMS)
PRIMJER BANKA (UPLATE / ISPLATE)
PROGRAMI PO.5E7$NI DOGAAJIMA UPOTREBOM MACRO NAREDBI
PARAMETARSKI UPITI
IZVJEA (REPORTS)
IZRADA GLAVNOG IZBORNIKA APLIKACIJE

12
19
28
39
49
58
66
80
85

PREDGOVOR

Ova knjiga je prevestveno namijenjena uenicima osnovne kole Klina Sela


u kojoj ja predajem izbornu informatiku. Moja preporuka je koritenje ove knjige
za uenike sedmih i osmih razreda, koji ele proiriti svoje znanje iz podruja rada
s bazama podataka.
Nadam se da e se njome posluiti i uiteljice i uitelji te da e svima, kojima doe
pod windowse, biti izvor usvajanja novih znanja i vjetina ili pomo za rjeavanje
nekih zadataka u ovoj domeni.
Knjiga je podijeljena u tri cjeline.
U prvoj sam naveo osnovne pojmove o bazama podataka.
Druga cjelina se bavi relacijskim bazama, odnosno MS Access-om.
Trea cjelina je jedan opsean primjer, koji moe biti od velike koristi za one
koji se ele ozbiljnije ukljuiti.
Autor

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:

Baze podataka podrane raunalom


Baze podataka bez raunalne potpore

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:
Baza podataka je skup datoteka s minimalnom zalihosti podataka organiziranih i
strukturiranih po nekom pravilu tako da daju korisne informacije o nekoj temi ili se
koriste u nekoj drugoj aplikaciji.

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:
1. Hijerarhijske baze podataka
2. Mrene baze podataka
3. Relacijske baze podataka
Redoslijed kojim su navedene ujedno predstavlja i tijek njihovog povijesnog razvoja. U okviru ovih
vjebi zanimaju nas samo relacijske baze podataka.
1.1

Relacijske baze podataka

Veina suvremenih sustava za upravljanje bazama podataka zasnovani su na relacijskom modelu


baze podataka. Taj model se sastoji od veeg broja meusobno povezanih datoteka koje su
strukturirane u obliku tablica. Kao i sve tablice i ove tablice u relacijskim bazama podataka se
sastoje od stupaca i redaka. Redci predstavljaju zapise (slogove), a stupci polja. Relacije se odnose
na veze izmeu podataka pohranjenih u razliitim tablicama.

ID_zaposlenika
1
3
4
6

zapis / slog

Prezime i ime struna sprema godina radnog staa


Markovi Zorana
SSS
12
Gusti piro
NSS
10
Frani Branko
SSS
5
Velimirovi ana
VSS
5

odjel
nabava
nabava
prodaja
marketing

polje

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).

1.2

Dizajniranje baze podataka

Raunalno podrana baza podataka trebali vam to???


Koji su presudni razlozi za prelazak na poslovanje s raunalom podranim bazama podataka,
preciznije za uvoenje programskog relacijskog sustava upravljanja bazama podataka kao to je MS
Access 2003? Navedimo samo neke:

Imate previe podataka u odvojenim datotekama to oteava manipulaciju tim podacima


Ti podaci vam trebaju za razne analize skupni podaci prodaje po kvartalima, trendovi
rasta cijena, to ako analiza, najbolje prodavan aranman u sezoni i sl.; drugim rijeima
potrebi su vam razliiti uvidi u podatke, ali vam je potrebno dugo vremena i prilino
komplicirano dolazite do njih
Potreba za dijeljenjem podataka izmeu vie korisnika uz spreavanje viestrukih unosa
(primjerice u poslovnici vae turistike agencije u Zagrebu rezervirana je soba za neki

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)

SMJETAJNI
KAPACITETI
(svi podaci)

REZERVACIJE

GOSTI

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 .

KORISNICI

Slika 1-1 Pojednostavljeni dijagram baze podataka


1

Laiki pristup za razliku od ovog postoje posebne metode pri projektiranju informacijskih sustava

Daljnje preporuke pri dizajniranju baze podataka [ECDL]:


1. Osiguravanje jedinstvenosti svakog zapisa svaka tablica treba imati jedinstveni
primarni klju ime spreavamo stvaranje dvostrukih zapisa
2. Neka svako polje bude jedinstveno ne smije biti ponavljanja podataka u tablici
3. Uinite polja funkcionalno zavisnim svako polje trebalo bi predstavljati podataka koji
se odnosi na zapis; ako ne onda je ili suvino ili pripada nekoj drugoj tablici
4. Osigurajte nezavisnost svakog polja promjena bilo kojeg polja u zapisu ne utjee na
niti jedno drugo u istom zapisu
5. Polja ne smiju sadravati izraune ili izvedene podatke primjerice u jedno polje
unosite cijenu proizvoda, a u drugom vam je sadrana stopa PDV a; stvarnu cijenu uvijek
moete izraunati iz cijene i stope PDV a
6. Podaci trebaju biti u najmanjim logikim jedinicama npr. upisujete odvojeno ime i
prezime klijenta kako bi mogli izvriti njihovo sortiranje po abecedi
Sistematini pristup dizajniranju i izradi baza podataka potedit e vas kasnije brojnih muka.

Baza podataka skup datoteka strukturiranih, organiziranih i povezanih po odreenom pravilu u


jedinstvenu cjelinu radi dobivanja eljenih informacija
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
Zapis (slog) jedan redak u tablici relacijske baze (informacije)
Polje jedan stupac u tablici relacijske baze (podaci)
Relacijski upravitelj bazom podataka (RDBM) aplikacijski software kojim kreiramo bazu
podataka i manipuliramo podacima u njoj
(MS Access)
SQL neproceduralni programski jezik za postavljanje upita RDBM - u

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?

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
Traka s padajuim izbornicima

Naslovna traka

Access Database
alatna traka

Okno zadataka

Statusna traka

Slika 2-1 Prozor MS Access - a

Moete krenuti od potpuno prazne baze ili otvoriti ve neku postojeu. Ako otvarate ve postojeu
bazu onda to moete uiniti na sljedee naine:
[1] Izbornik File Open
[2] Na Database alatnoj traci kliknete na ikonu Open

[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
otvorit e vam se okno zadataka New File:

sa standardne alatne trake

Slika 2-2 Izgled okna zadataka New File

Znaenja naredbi iz tog okna su sljedea:


Stvara novu, potpuno praznu
bazu
Stvara HTML stranicu za
pristup bazi podataka
Stvara novi Access projekt
temeljen
na
postojeim
podacima
Stvara novi Access projekt s
novim podacima
Stvaranje baze iz ve postojee

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
Interesantno je da se otvorena baza u MS Accessu ne treba spremati na ve uobiajeni nain, ve e
cjelokupnu bazu sa svim nainjenim promjenama Access automatski spremiti (naravno pod istim
imenom i na istu lokaciju kako je kreirana). Ukoliko cijelu bazu elite premjestiti ili spremiti na
drugu lokaciju trebate je prvo zatvoriti u Accessu, a potom preko Windows Explorera izvriti
eljenu akciju kopiranja ili premjetanja. Preko File Save tj. Save As ili klikom na ikonu
s
Database alatne trake vrite samo spremanje pojedinih objekata u bazi tablice, upiti, obrasci,
izvjea, moduli, Prema tome, MS Access baza podataka e se sastojati od manjeg ili veeg
broja objekata:

Tablice (Tables) osnovni graevni elementi svake relacijske baze podataka, a


namijenjeni su skladitenju podataka
Upiti (Queries) koriste se za postavljanje pitanja o podacima u bazi izvlaenje
eljenih informacija iz baze
Obrasci (Forms) moemo rei da predstavljaju suelje prema korisniku slue za
interakciju korisnika s RDBM om
Izvjea (Reports) prikazuju eljene informacije u obliku pogodnom za ispis
Stranice (Pages) vezano uz rad s bazom preko interneta prikazuje Web stranice za
rada s bazom preko interneta
Makroi (Macros) procedure koje olakavaju izvoenje stalno ponavljanih ili vrlo
sloenih radnji
Moduli (Modules) korisnikove programske funkcije pisane u VBA programskom jeziku
(Visual Basic for Applications)

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):

Alatna traka baze podataka

Aktivni dio prozora


Traka s objektima

Slika 2-3 Izgled prozora baze

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:
gumb za otvaranje selektiranog objekta u izvrnom (korisnikom) modu, a
njegov izgled se moe mijenjati ovisno o tipu izabranog objekta
gumb za otvaranje objekata u dizajn modu (razvojnom modu) u modu u
kojem ih moete mijenjati
gumb za stvaranje novih objekata otvorit e vam dijaloki okvir za
izbor naina kreiranja novog objekta
brie selektirani objekt
izbor naina prikaza u aktivnom dijelu prozora

Ne mijeajte Access Database alatnu traku s alatnom trakom baze podataka


Svaka Access datoteka (baza) ima ekstenziju .mdb
Postoji razlika izmeu kontrolnih gumbi prozora baze i kontrolnih gumbi
MS Access prozora

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

[1] Stvorite novu bazu podataka File New Blank Database...


[2] Otvorit e vam se dijaloki okvir za spremanje baze (uoite razliku s ostalim aplikacijama iz
obitelji MS Office pri otvaranju odmah odabirete ime i lokaciju budue baze podataka)
[3] Za lokaciju odaberite va USB key; kreirajte novi folder kojeg ete nazvati
primjeri_Access, a u njega spremite bazu pod nazivom vj_1 klikom na gumb Create (ili s
ENTER)

ovdje upisujete
ime nove baze

Slika 2-4 Odreivanje lokacije za novu bazu

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

Slika 2-5 Kreiranje tablice u razvojnom modu

[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

Slika 2-6 izgled dijalokog okvira Table

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)...
[9] Unesite dalje redom podatke prikazane donjom tablicom:
Field Name
Ime
Prezime
Telefon
Grad
Adresa
e - mail
fax

Data Type
Text
Text
Number
Text
Text
Text
Number

Description

Telefonski broj (kuni, na poslu ili mob)

Broj faxa

[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)

s oba naina oznaeno


polje postavljate za
primarni klju

Slika 2-7 Postavljanje primarnog kljua

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

Slika 2-8 Dijalog za spremanje tablice

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.

Slika 2-9 Izgled prozora baze podataka s kreiranom tablicom

[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
oznaka trenutno oznaenog zapisa

oznaka mjesta za novi unos

traka s navigacijskim gumbima

Slika 2-10 Izgled tablice u izvrnom modu

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).
[16] Otvorite tablicu u razvojnom modu oznaite tablicu kliknete na ikonu
[17] Promijenite tip podataka poljima Telefon i fax u Text
[18] Spremite nainjene promjene
[19] Ponovno otvorite tablicu u izvrnom modu i izmijenite podatke za telefon i fax
[20] Unesite podatke za jo nekoliko osoba
[21] Spremite tablicu
Numeriki tip podataka (Number) emo koristiti za polja koja se iskljuivo mogu
tretirati kao brojevi (nad njima se mogu vriti matematike operacije)!

Povratak na prvi zapis

Povratak na prethodni
zapis

Sljedei zapis

Skok na
zadnji zapis

Unos novog zapisa

Ukupni
broj zapisa

Slika 2-11 Navigacijska traka

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:

Slika 2-12 Dijalog za potvrdu brisanja zapisa

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.
[22]
[23]

Otvorite tablicu u Design modu


U prvo polje ispod polja fax upiite Datum roenja i za tip podataka izaberite Date /
Time, a format neka bude General Date

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]
[25]

koji e se pojaviti pored


U kartici General kliknite na Input Mask i potom na gumb
tog svojstva
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

Slika 2-13 dijalog za definiranje korisnikih ulaznih maski

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.
[26]
[27]

Spremite nainjene promjene u tablici


Otvorite tablicu i unesite nekim osobama datume roenja uoite kako vam ulazna
maska tono diktira oblik unosa spremite unesene podatke

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.

Slika 2-14 Izgled tablice nakon novih unosa

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, )

Veze koje stvarate u relacijskim bazama podataka mogu biti:


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
Ime
Prezime
Grad
Adresa
o e mail
o fax
o datum roenja

1:n
# ID_kontakta

TELEFON
#ID_telefona
Tel_broj

Slika 2-15 model entiteti veze nae baze

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:
o Nacrtate sve entitete koji ine vau bazu
o U njima navedete svojstva koja ih opisuju
o Primarni klju oznaite s znakom ljestve #
o Svojstva koja su obavezna oznaite sa znakom
o Svojstva koja su opcionalna oznaite sa znakom
o Za vrstu veze upotrebljavajte sljedee oznake (1:1 za one to one; 1:n za one to many i n:n
za many to many vezu); vodite rauna s koje strane ide n kod 1:n veze
o Vezu koja ne mora dati ni jedan rezultat oznaite isprekidanom linijom (npr. osoba ne mora
imati telefon), a vezu koja obavezno daje neki rezultat oznaite s punom linijom
o Ispod linije koja oznaava vezu navedite klju po kojem su entiteti povezani
[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)
na Access Database alatnoj traci. Otvorit e
Veze se kreiraju klikom na gumb Relationships
vam se dijaloki okvir u kojem odreujete to ete povezivati u ovom sluaju mi emo se
ograniiti samo na tablice:

Za stvaranje
veza meu
tablicama

Za stvaranje
veza meu
upitima

Za stvaranje
veza izmeu
tablica i upita

Slika 2-16 Dijalog za odreivanje objekata za stvaranje veza

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
stvorili vezu

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.
[4] Ukljuite sve tri opcije
[5] Kliknite na gumb Create kako bi stvorili vezu
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!

[6] Spremite napravljene veze


[7] Zatvorite prozor s vezama
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)

Slika 2-19 Unoenje podataka u vezane tablice

[10] Spremite nainjene promjene u tablici Tab_osoba

23

[11] Otvorite sada tablicu Tab_telefon u izvrnom modu imat ete prikaz slian ovom na slici
ispod:

Slika 2-20 izgled tablice Tab_telefon

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.
[12] Otvorite tablicu Tab_telefon u razvojnom modu
[13] Kliknite na polje koje predstavlja strani klju (ID_kontakta)
[14] Prebacite se u karticu Lookup i promijenite Display Control iz Text box u Combo box
automatski e vam se otvoriti nova svojstva za oblikovanje
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

Slika 2-21 Odabir izvora podataka koji e se prikazivati

[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

Slika 2-22 Rezultat promijene pogleda meu tablicama

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).

Skicirajte novi model entiteti veze


Kreirajte novu tablicu koju ete nazvati Tab_vrsta_tel_broja u kojoj e vam
polje id_vrste_tel_broja biti primarni klju, a vrsta_tel_broja polje s tekstualnim tipom
podataka duljine 15 znakova
U tablicu Tab_vrsta_tel_broja redom unesite podatke mob; kuni; posao
U tablici Tab_telefon dodajte polje koje predstavlja strani klju id_vrste_tel_broja
(vodite rauna kojeg tipa podataka to polje treba biti u toj tablici)
Sada kada ste kreirali novu tablicu i u Tab_telefon dodali strani klju preostaje nam jo uspostaviti
nove veze.
[25] Preko izbornika Tools Relationships otvorite prozor relacija

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

Slika 2-23 Dodavanje nove tablice u relacijski prostor za stvaranje veza

[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)

Slika 2-24 Izgled relacijskog prostora nakon nainjenih promjena

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.
[31] Otvorite tablicu Tab_telefon u razvojnom modu i kliknite na polje id_vrste_tel_broja
[32] U kartici Lookup napravite promijene prema donjoj slici:

Slika 2-25 promjena pogleda meu tablicama

[33] Prebacite se u karticu General i pod Caption stavite naziv vrsta_telefona


[34] Spremite nainjene promjene i potom tablicu otvorite u izvrnom modu
[35] Popunite podatke za vrstu telefona i potom spremite nainjene promjene

Combo box za izbor


vrste telefona

Slika 2-26 Izgled tablice Tab_telefon nakon promijenjenog pogleda

[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:
Select Queries (Upiti izdvajanja) samo selektiraju podatke i izdvajaju ih po
korisnikovim kriterijima
Action Queries (Akcijski upiti) mogu mijenjati podatke u tablicama umetati nove,
mijenjati ili brisati ve postojee
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).

Upiti nam slue za dohvaanje i manipulaciju informacija koje su sastavljene od


cijelog ili dijela skupa zapisa jedne ili vie tablica. Time nam pruaju razliite
poglede na isti set podataka.

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.
1) Otvorite bazu podataka upiti_vj3
2) Iz trake objekata u prozoru baze izaberite Query

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

Mrea upita za odreivanje


polja i kriterija koji tvore upit

Slika 2-27 Kreiranje upita preko Design pogleda

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.
9) Postavite zamjensko ime Kontakt broj za polje ID_kontakta i Telefon za polje
id_vrste_tel_broja
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.
10) Zamijenite mjesta stupcima s poljima Ime i Prezime
Korisno bi bilo da imamo ukljueno sortiranje po prezimenima i imenima.
11) Pod polja Prezime i Ime ukljuite uzlazno sortiranje (Ascending)

Slika 2-28 Sortiranje po polju Prezime

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:

Slika 2-29 Izgled mree upita nakon popunjavanja svih podataka

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.
12) Spremite upit pod imenom Up_Zg_mail_mob
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
774
> 774
< 774
>=774
<= 774
<> 774
Like "Da*"
"Zagreb" Or "Dubrovnik"
between 1/6/1978 And
1/8/1978

Znaenje
Podatak koji je jednak broju 774 (isto kao = 774)
Podaci koji su vei od 774
Podaci koji su manji od 774
Podaci koji su vei ili jednaki od 774
Podaci koji su manji ili jednaki od 774
Svi podaci koji su razliiti od 774
Svi podaci koji poinju s Da
Zagreb ili Dubrovnik
npr. svi roeni izmeu 1. lipnja 1978. i 1. kolovoza
1978.

U tablici Tab_osoba namjerno stavite datum roenja za tri osobe da bude


izmeu 1. srpnja, 1981. i 1. rujna, 1981.
Spremite tablicu i potom nainite upit koji e izdvojiti sve osobe roene u tom periodu
Za polje ID_kontakta koristite zamjensko ime Kontakt broj
Napravite silazno sortiranje po prezimenima i imenima osoba koje zadovoljavaju taj kriterij
Spremite upit pod nazivom Up_period_ro

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.

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:
1) Da li upitom elite korisniku omoguiti da samo pregledava odreene podatke Select
Query
2) Da li upitom korisniku elite omoguiti da utjee na te podatke (mijenja ih, brie, dodaje
nove itd.) Action Query
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:
13) Otvorite upit Up_Zg_mail_mob u razvojnom modu

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

Promjena tipa zapisa u Snapshot


onemoguava korisniku da utjee
na podatke

Slika 2-31 Promjena tipa snimljenog zapisa u upitu

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.

Slika 2-32 Ukljuivanje retka za izraune u mrei upita

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

Slika 2-33 Odreivanje izrauna po nekom polju

Testirajte upit (preko ikone Run


) i potom ga spremite pod nazivom Up_ukupno_telefona.
Opis osnovnih ugraenih funkcija prikazan je u donjoj tablici:
Tablica 2-1 Ugraene Access funkcije

Funkcija
Group By
Sum
Avg
Min
Max
Count
First
Last
Expression
Where

Opis
Grupiranje rezultata upita po dotinom polju
Izraunava sumu svih vrijednosti u dotinom polju i prikazuje
rezultat u upitu
Daje prosjenu vrijednost svih vrijednosti nekog polja
izvlai minimalnu vrijednost u polju
izvlai maksimalnu vrijednost u polju
pobrojava koliko zapisa zadovoljava postavljeni kriterij
vraa samo prvi zapis koji ispunjava postavljeni kriterij
vraa samo zadnji zapis koji ispunjava postavljeni kriterij
elite stvoriti polje za sloeni izraun
Ukazujete Accessu da elite polje upotrijebiti za definiranje uvjeta,
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.

Slika 2-34 Izbor tipa upita

'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:
Field: Osoba:[Tab_osoba.Prezime]&" "&[Tab_osoba.Ime]
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

6OLND  0UHD NULQRJ XSLWD

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)!
Upotrebom funkcije Where osiguravate da se pretraivanje vri po postavljenom kriteriju, ali da se
to polje ne prikazuje u rezultatu upita.
22) Testirajte upit i potom ga spremite pod nazivom Up_ukupno_mob
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)

otvara objekt u izvrnom (korisnikom) modu

otvara objekt u razvojnom (design) modu


navigacijska traka za kretanje meu

zapisima

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.

3) to je primarni, a to strani klju? Navedite i engleske nazive.


4) Na koji nain se uspostavljaju veze meu tablicama?
5) Koje su tri vrste veza u relacijskim bazama podataka i kako ih oznaavamo?
6) Jedna vrsta veze od te tri nije direktno doputena. O kojoj je rije i kako taj problem
rjeavamo?
7) Upiti za izdvajanje se nazivaju?
8) Upiti kojima korisnik na neki nain utjee na podatke nazivaju se?
9) Kakve vrste zapisa mogu nastati kao rezultat upita?
10) Redak za izraune u mrei upita ukljuujete preko izbornika?
11) Redanje kriterija u istom retku mree upita odgovara njihovom povezivanju kojim logikim
operatorom?
12) Kriteriji koji se nalaze u razliitim redcima mree upita odgovaraju njihovom povezivanju s
kojim logikim operatorom?
13) Jedan od ta dva logika operatora suuje izbor podataka. O kojem je rije?
14) Jedan od ta dva logika operatora proiruje izbor podataka. O kojem je rije?
15) Kako se naziva operator &?
16) Za koji tip podataka je vezana njegova upotreba?
17) Field: Kolegij: [Tab_prof.profesor]&" "&[Tab_kolegij.naziv_kolegija] to
dobivamo kao rezultat ove operacije?
18) Izvrni (korisniki) nain rada nam slui za kreiranje objekata (DA / NE)?
19) Korisnik radi s objektima baze iskljuivo u razvojnom nainu rada (DA / NE)?
20) Koja je uloga navigacijske trake?
21) Access automatski sprema cijelu bazu podataka (DA / NE)?
22) Koju ekstenziju dobivaju MS Access datoteke?

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

Slika 2-36 Veze izmeu tablica, upita i obrazaca

Obrasce je mogue napraviti na tri naina:


Upotrebom arobnjaka za obrasce (Form Wizard)
Alatima za automatsku izradu obrazaca (AutoForm) slino arobnjaku, ali bez pitanja
Runom izradom najbolji nain koji nam daje najveu slobodu pri izradi obrazaca

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.
[3] Napravite brzi dvoklik na Create form by using wizard
[4] Otvorit e vam se dijalog Form Wizard koji vas kroz nekoliko jednostavnih koraka vodi do
gotovog obrasca u prvom koraku iz padajue liste izaberite tablicu Tab_vrsta_tel_broja
i iz nje izaberite oba polja za buduu formu

Birate iz jedne
ili vie tablica
ili upita

Prebacuje
samo jedno
polje

Prebacuje sva
polja tablice
ili upita
Slika 2-37 Dijalog arobnjaka za izradu obrazaca

[5] Izaberite sva polja iz te tablice

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

Slika 2-38 Koraci u stvaranju obrazaca primjenom arobnjak za obrasce

Sada nam preostaje kreirati i drugi obrazac na potpuno isti nain, ali ovaj put iz upita
Up_svi_telefoni.
[9] Otvorite arobnjak za izradu obrazaca
[10] U prvom koraku iz padajue liste izaberite upit Up_svi_telefoni i sva polja iz tog upita
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 .
[11] Izaberite Obrazac s podobrascima, a nain prikaza po tablici Tab_osoba
[12] Izgled podforme odreujete u treem koraku izaberite tabularni prikaz
[13] Sljedei korak je ve poznati izbor stila obrasca (uzorak pozadine, vrsta fonta, boja slova )

41

[14] U posljednjem upisujete naziv za obrazac i njegov podobrazac Osnovne informacije i


telefon

Slika 2-39 Izbor naina prikaza podataka na buduem obrascu

Slika 2-40 Izrada forme s podformom upotrebom arobnjaka za izradu formi

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.
[15] Pokrenite obrasce Ob_vrste_tel i Osnovne informacije u korisnikom modu.
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
Slika 2-41Promjena irine text boxu

[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

Slika 2-42 Promjena poloaj text boxa na obrascu

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

Slika 2-43 Promjena irine obrasca

43

[22] Na slian nain poveajte veliinu podobrasca telefoni


[23] Spremite sve nainjene promijene

Slika 2-44 Promjena dimenzija podobrascu

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.
[24] Otvorite obrazac Osnovne informacije u razvojnom modu
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.
[25] Otvorite dijalog za promjenu svojstava podobrasca telefoni
[26] Promijenite svojstva Scroll Bars iz Both u Neither i Navigation Buttons iz Yes u No na
ovaj nain smo iskljuili navigacijsku traku, te horizontalnu i vertikalnu traku za pomicanje
[27] Ako vam nije ukljuena opcija automatske promijene veliine uinite to

44

[28] Spremite nainjene promjene i otvorite obrazac u korisnikom modu

3.
4.
5.
6.

1. Promijenite osnovne podatke za nekoliko osoba.


2. Promijenite broj telefona nekim osobama.
Promijenite vrstu telefona nekim osobama npr. kuni u posao
Dodajte novi broj telefona za jednu nasumce izabranu osobu
Izbriite jedan zapis podatke za jednu osobu.
Razmislite na koji nain jo moete napraviti obrazac koji e vriti istu funkciju sjetite se da
se obrasci mogu izraivati direktno i iz tablica

[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
Gotov obrazac bi vam trebao imati izgled kao na slici ispod:

Slika 2-45 Izgled obrasca za pregled, unos i promijenu kontakt informacija

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

Slika 2-46 Izgled gotovog obrasca

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

Za selekciju
objekata na
obrascu

Za automatsko
pokretanje
arobnjaka pri
jednostavnim
radnjama

Kreiranje fiksnog
teksta labela
za oznaku
tekstualnih polja,
naziva obrazaca
ili kao napomene

Stvaranje text
boxa (tekstualno
polje) u njih je
mogue upisivati
podatke ili
mijenjati
postojee

Stvaranje
okvira (Framea)
kojim se vie
objekata
grupira po
nekom pravilu

Izrada
gumba za
skretanje on
/ off gumb

Radio button
gumb za odabir
opcija koje se
meusobno
iskljuuju (samo
se jedna moe
odabrati)

Check box
gumb za odabir
veeg broja
opcija
istovremeno (ne
iskljuuju jedna
drugu)

Combo box
padajui
kombinirani popis
vrijednosti uz
mogunost izbora
ponuenih i
dodavanja novih

Stvara listu
nepromijenjeni
popis
vrijednosti bez
mogunosti
dodavanja
novih

Umetanje slike
moe biti i iz
same baze
podataka

Stvaranje
nepovezanog
okvira (Unbound
Frame) za
prikaz objekata
nainjenih u
nekoj drugoj
aplikaciji

Prekid stranice
kod
Vezani okvir
prevelikih
prikazuje podatke obrazaca koji se
iz same baze
ne mogu
podataka
prikazati samo
na jednom
ekranu

Za kreiranje
akcijskih
gumbi i (npr.
Delete Record)

47

Obrasci s vie
kartica
svaka kartica
se moe
sastojati od
vie objekata

Stvaranje
podobrasca na
postojeem
obrascu

Crtanje linija na
obrascu

Crtanje
pravokutnih
oblika na obrascu

Otvara popis
ostalih objekata
koje moete
iskoristiti za
kreiranje
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:

evidencija stanja
i transakcija

BANKA
upit

RAUNI

KORISNICI

TRANSAKCIJE

informacije

Slika 3-1 Pojednostavljeni model baze podataka

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.
b.
c.
d.
e.
f.

Isplata na alteru
Isplata po raunu br.
Bankomat (koji)
Naknada za izdane ekovne blankete
Naknada za voenje tekueg rauna
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:

Slika 3-2 Dijagram entiteti veze za bazu podataka transakcija

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
Data Type
(tip
podataka)

Field Size
(veliina
polja)

ime_korisnika

AutoNumb
er
Text

Long
Integer
30

prezime_korisnika

Text

naziv korisnika
JMBG
MBR
mjesto
adresa
post broj
id_vrsta_korisnika

Field Name (naziv


polja)

# id_korisnika

Required
(zahtjevano)

Indexed
(indeksirano)

Input mask
(ulazna
maska)

Validation
rule (pravilo
provjere)

Yes(No
Duplicates)
-

30

Text
Text
Number
Text
Text
Number

40
13
Integer
30
40
Long Int

Yes
Yes
Yes

Yes
-

Number

Long Int

Yes

Yes
(Duplicates
OK)

tabVrstaKorisnika
Field Name (naziv
polja)

Data Type
(tip
podataka)

#id_vrsta_korisnika

Number

vrsta_korisnika

Text

Field Size
(veliina
polja)

Required
(zahtjevano)

Long
Integer
30

Indexed
(indeksirano)

Input
mask
(ulazna
maska)

Validation
rule
(pravilo
provjere)

Yes (No
Duplicates)
-

tabVrstaRacuna
Field Name (naziv
polja)

Field Size ili


Data Type
Format
Required
(tip podataka) (veliina polja (zahtjevano)
ili oblik)

Indexed
(indeksirano)

Long
Integer
35

Yes (No
Duplicates)
-

#id_vrsta_racuna

Number

vrsta_racuna

Text

Yes

Input mask
Validation
(ulazna
rule (pravilo
maska)
provjere)

51

tabRacuni
Field Name (naziv
polja)

Field Size ili


Data Type (tip
Format
podataka)
(veliina polja
ili oblik)

Required
(zahtjevano)

Indexed
(indeksirano)

Input mask Validation


(ulazna
rule (pravilo
maska)
provjere)

#broj_racuna

Number

Long Integer

Yes (No
Duplicates)

datum otvaranja

Date and
Time

Short Date

Yes

Yes

saldo

Currency

Standard

id_korisnika

Number

Long Integer

Yes

id_vrsta_racuna

Number

Long Integer

Yes

Yes
(Duplicates
OK)
Yes
(Duplicates
OK)
Yes
(Duplicates
OK)

tabTransakcije
Field Name (naziv
polja)

Data Type (tip


podataka)

Field Size
(veliina polja)

Required
(zahtjevano)

Indexed
(indeksirano)

Input mask
(ulazna
maska)

Validation rule
(pravilo
provjere)

#id_transakcije

AutoNumber

Long Integer

Yes (No
Duplicates)

opis_transakcije

Text

45

datum_transakcije

Date/Time

Short Date

uplata
isplata

Currency
Currency

Standard
Standard

broj_racuna

Number

Long Integer

Yes

[2]

Yes
Yes
(Duplicates
OK)

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]
[4]
[5]

Kreirajte upit iz tablica tabKorisnici (sva polja) i tabRacuni (sva polja)


Spremite upit pod imenom upKorisniciRacuni
Otvorite novi obrazac u razvojnom modu (Create form in Design view)

[6]
[7]

Kliknite na gumb Properties


Form Design alatne trake
U otvorenom dijalogu pod karticom Data kao izvor (Record Source) izaberite prethodno
stvoreni upit upKorisniciRacuni
Ukljuite listu polja (Field List) View Field List ili klikom na istoimenu ikonu sa

[8]

alatne trake Form Design

Slika 3-4 Dijalog svojstava obrasca izbor izvora podataka s kojim e se povezati obrazac

53

[9]
[10]

Iz liste polja metodom Drag'n' Drop na povrinu obrasca odvucite redom sva polja osim
polja id_korisnika iz tablice tabRacuni
Prema potrebi poveajte veliinu obrasca, a raspored polja neka vam bude kao na slici
ispod

Slika 3-5 Poetni izgled obrasca

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]
[12]
[13]

Prvo smanjite text box u kojem e se nalaziti prikazan identifikacijski broj korisnika
Promijenite njegovu oznaku (Label) u ifra korisnika: najjednostavnije brzim
dvoklikom na postojeu oznaku i potom tekst mijenjate kao bilo koji tekst u Wordu
Promijenite dimenziju toj oznaci i poravnajte je s ostalima

11. korak

13. korak
12. korak

[14]

Promijenite oznake id_vrsta_korisnika u Vrsta korisnika: i id_vrsta_racuna u Vrsta


rauna:

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:

Slika 3-6 Promjena naziva 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]
[16]

Napravite desni klik na tekstualni okvir u kojem pie id_vrsta_korisnika izaberite


Change To Combo Box
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)

[17]

Ponovite postupak s tekstualnim okvirom u kojem pie id_vrsta_racuna

Slika 3-8 Izbor izvora podataka za combo box i prikrivanje prvog stupca pripadne tablice

[18]

Spremite obrazac pod nazivom obNoviKorisnik_Raun

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]
[20]

Desni klik na tekstualni okvir broj_racuna i iz pop up izbornika izaberite Special Effect
efekt sa sjenom
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.
[21]
[22]
[23]
[24]
[25]

[26]
[27]

Otvorite novi obrazac u razvojnom modu


Otvorite njegov dijalog svojstava i pod karticom Data pod Record Source izaberite
tablicu tabTransakcije
Iz liste polja (Field List) povucite na obrazac sva polja izuzev polja isplata
Spremite obrazac pod nazivom obPrvaTrans
Od ova dva obrasca elimo nainiti jedan obrazac s podobrascem glavni obrazac e
nam biti obNoviKorisnik_Raun, a podobrazac obPrvaTrans otvorite obrazac koji
e predstavljati glavni obrazac u razvojnom modu
Smanjite mu prikaz tako da se vidi i glavno prozor baze
Pod Forms naite obrazac koji treba predstavljati podobrazac i odvucite ga na povrinu
glavnog obrasca

Samo odvuete i
obrazac postaje
podobrazac na
otvorenom obrascu
u razvojnom modu

Slika 3-9 Stvaranje podobrasca iz ve postojeeg obrasca

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

Slika 3-10 povezivanje glavnog obrasca i podobrasca

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.
3.1

Programi poNUHWDni dogaajima upotrebom Macro naredbi

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

6OLND  SULPMHU GRJDDMHP SRNUHWDQLK SURJUDPD

Da bismo kreirali okida moramo postaviti i odgovoriti na dva osnovna pitanja:


1) to e se dogoditi?
2) Kada se treba dogoditi?
Primjerice:
1) to e se dogoditi? zaprimit e se rezervacija sobe
2) Kada se treba dogoditi? nakon klika na gumb Potvrdi rezervaciju
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.
[29]

Otvorite obrazac obNoviKorisnik_Racun u razvojnom modu i ostavite ga tako

[30]

U prozoru baze kliknite na objekt Macros potom na ikonu New


traci baze. Otvorit e vam se Macro editor kao na slici ispod.

na alatnoj

Slika 3-12 Izgled Macro editora

[31]
[32]

Iz padajueg izbornika izabirete naredbu u ovom sluaju SetValue


Pod Comment upisujete komentar uz pojedinu naredbu upiite postavlja saldo na
vrijednost prve uplate

Trebate jo definirati akcijske argumente. Da bi ih ispravno definirali potrebno je samo slijediti


upute u desnom okviru od argumenta. Klikom na svaki argument u tom podruju se prikau
osnovne informacije o tom argumentu i nainu na koji se moe popuniti njegova vrijednost.
Ukoliko vam upute nisu dovoljne pritiskom na funkcijsku tipku F1 dobit ete dodatnu pomo u vezi
vaeg problema. Meutim, ovdje je sve jasno poetni saldo (nalazi se na glavnom obrascu) koji
je inicijalno postavljen na nulu, nakon izvrenja prve uplate koja se upisuje u podobrascu, treba
poprimiti upravo tu vrijednost.
[33]

Kliknite na gumb s tri tokice (Build button) pored argumenta Item otvorit e vam
se Expression Builder

60

Odreujemo naredbu za
akciju

Po potrebi upisujemo
komentar
Okvir s informacijama

Definiramo akcijske
argumente koji odreuju
rezultat akcije

Build button

Slika 3-13 Postavljanje naredbi akcija i njihovih argumenata u Macro editoru

[34]

[35]

[36]

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)
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
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]

[37]

Potvrdite izbor i zatvorite Expression Builder

esta je praksa da se nakon nekakve naredbe ispie potvrda o uspjenosti njezinog izvoenja
naredba MsgBox.
[38]
[39]
[40]
[41]

Kliknite ispod naredbe SetValue i iz padajue liste izaberite naredbu MsgBox


U komentar upiite ispisuje potvrdnu poruku o uspjeno izvrenoj transakciji
Pod argument Message upisujete poruku koja e se prikazati korisniku Transakcija
izvrena!
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.
[42]

Spremite macro pod imenom macPrvaTrans

61

Naredbe se izvravaju
od vrha prema dnu

Slika 3-14 Viestruke naredbe u Macro editoru

Slika 3-15 Spremanje macroa

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]
[44]
[45]
[46]
[47]
[48]
[49]
[50]
[51]
[52]
[53]

Spomenuti obrazac vam je jo uvijek otvoren u pozadini klikom na njega uinite ga


aktivnim
U alatnoj traci kliknite na ikonu za kreiranje kontrolnog gumba (akcijskog gumba)
Ucrtajte gumb na eljenom mjestu na obrascu
Zatvorite arobnjaka koji vam se pojavi klikom na gumb Cancel
Desnim klikom na gumb otvorite njegov dijalog svojstava
U kartici Format pod Caption upiite Potvrda transakcije ovim ste odredili tekst
koji e biti ispisan na gumbu
Prebacite se na karticu Event i izaberite dogaaj On click iz padajue liste izaberite
prethodno kreirani makro macPrvaTrans
Zakljuajte polje saldo kako ga korisnik ne bi mogao mijenjati
Preko svojstava glavnog obrasca u kartici Data postavite Data Entry na Yes
Spremite nainjene promijene
Zatvorite dijalog svojstava i spremite nainjene promijene na obrascu (CTRL + S)

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

[42]

Tablicu tabVrstaKorisnika otvorite u korisnikom modu i unesite sljedee vrijednosti:


a.
b.
c.
d.

[43]

Graanin (id = 100)


Poduzee (id = 200)
Obrtnik (id = 300)
Dioniko drutvo (id = 400)

U tablicu tabVrstaRacuna:
a.
b.
c.
d.
e.

Tekui (id = 4400)


iro (id = 5500)
Poslovni (id = 6600)
Devizni (id = 7700)
tednja (id = 8800)

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.
[44]
[45]

Otvorite obrazac obNoviKorisnik_Racun u razvojnom nainu rada


Otvorite svojstva podobrasca i u kartici Data promijenite Data Entry iz No u Yes

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

4
2

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.
[48]
[49]
[50]
[51]
[52]
[53]
[54]

Otvorite arobnjaka za izradu obrazaca


Selektirajte sva polja iz tablice tabKorisnici, a iz tablice tabRacuni izostavite polja
saldo i id_korisnika
Prihvatite ponueni izgled obrasca s podobrascem
Za podobrazac izaberite tabularni izgled
Glavnom obrascu dajte ime obPodaci, a podobrascu podRacuni
Kliknite na radio button Modify the form's design
Promijenite nazive pojedinih oznaka i na podobrascu iskljuite navigacijske gumbe tako
da vam obrazac izgleda priblino kao na slici ispod

Slika 3-18 izgled gotovog obrasca

[55]
[56]

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
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]
[2]
[3]

Otvorite bazu podataka u kojoj se nalazi spomenuti upit (vjeba br. 3)


Pod polje grad u redak Criteria upiite [Upiite grad po kojem elite vriti pretragu:]
Pod polje vrsta telefona u retku Criteria upiite [Definirajte vrstu telefona:]

1
Zamijenite pisani stalni kriterij
s parametarskim kriterijem

2
Nakon pokretanja upita upiite
eljenu vrijednost kriterija

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.
[1]
[2]
[3]
[4]
[5]

Otvorite bazu podataka nainjenu u vjebi 4 (obrasci)


Kreirajte novi obrazac bez primjene arobnjaka Create form in Design view
Alatom text box nainite jedan nevezani (Unbound) tekstualni okvir
Naslovite ga Grad:
Alatom combo box kreirajte jedan kombinirani okvir u kojem ete sljedei upute
arobnjaka kreirati tri samostalna unosa mob; kuni; posao
Upisujete
vrijednosti
za Combo
Box

Oznaka koju
e nositi
Combo Box

[6]
[7]
[8]

[9]
[10]

Combo box nazovite Vrsta telefona


Alatom za kontrolni gumb (Command Button) nainite jedan upravljaki gumb na
obrascu
Otvorit e vam se arobnjak iz kojeg u prvom koraku izabirete kategoriju razno
(Miscellaneous) potom pod akcijom izaberite pokreni upit (Run Query)
upGradTel
U sljedeem koraku umjesto slike izaberite tekst i upiite Pretraga
Posljednji korak odreuje naziv kontrolnog gumba kojeg e koristiti Access za
oznaavanje ovog gumba upiite Com_1

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

Kreirate jednostavni obrazac i


ostavite ga otvorenog u
pozadini

2
upit

Slika 3-19 Povezivanje parametraskog upita s obrascem

Cilj nam je povezati parametarski kriterij s odgovarajuim objektima na obrascu obPretraga.


Takav upit emo pozivati preko kontrolnog gumba Pretraga. Nakon to kliknete na Build pojavit
e vam se graditelj izraza u kojem kroz nekoliko jednostavnih koraka dolazite do eljenog rjeenja.
S lijeve strane vam se nalaze objekti svaki objekt koji na sebi ima znak plusa otvara se
dvoklikom, a ostali jednim klikom.

[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
vaoj bazi
Dok je eljeni
obrazac u
pozadini
otvoren
kliknite na
Loaded Forms
i izaberite ga

Kada ste
gotovi kliknite
na gumb OK

U sredinjem
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]
[16]
[17]
[18]
[19]
[20]

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
Ponovite postupak s poljem Vrsta_tel_broja kojeg ete povezati s Combo boxom
Vrsta_tel na obrascu obPretraga
Spremite nainjene promjene u upitu upGradTel
Jo bi bilo zgodno ukloniti navigacijske gumbe s obrasca uklonite ih preko dijalokog
prozora Properties obrasca Navigation Buttons No
Pokrenite obrazac obPretraga i pod Grad upiite ibenik, a pod vrsta telefona kuni
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

Uobiajeno emo parametarske upite oznaavati pupImeUpita preimenujte upit upGradTel


koristei ovu konvenciju. Nakon preimenovanja upita i ponovnog pokretanja istog obrasca za
pretragu nakon klika na gumb Pretraga pojavit e vam se poruka o greci.

Slika 3-22 Poruka o pogreci zbog referenciranja na nepostojei objekt

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.

Slika 3-23 Pridijeljena procedura kliku na kontrolno gume

Problem moete rijeiti i na drugi nain, bez mijenjanja procedure dovoljno je


izbrisati postojei gumb i arobnjakom kreirati novi koje e upuivati na upit s
novim imenom

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.
[1]
[2]
[3]
[4]

Otvorite novi upit u razvojnom modu


Za njegovo kreiranje koristite tablice tabKorisnici i tabRacuni
Uzmite sva polja iz tablice tabKorisnici, a iz tablice tabRacuni izostavite id_korisnika
Pod Criteria polja broj_racuna upiite (stvaramo parametarski kriterij):
[Unesite broj rauna:]

[5]

Spremite upit pod nazivom pupPoBrojuRacuna

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]
[7]
[8]
[9]
[10]
[11]
[12]
[13]

Kreirajte novi obrazac iz parametarskog upita pupPoBrojuRacuna bilo runo ili


arobnjakom
Spremite obrazac pod nazivom obUnosTransakcija
Kreirajte novi obrazac upotrebom svih polja iz tablice transakcija koristite arobnjaka,
a za tip obrasca izaberite Columnar
Spremite obrazac pod nazivom podTransakcije
Spojite ta dva obrasca u jedan na nain da vam glavni obrazac bude
obUnosTransakcija, a podobrazac podTransakcije
Poveite ih po polju broj_racuna
Na podobrascu promijenite svojstvo Data Entry pod karticom Data iz No u Yes
Promijenite neeljene oznake tekstualnih okvira ili kombiniranih okvira

U ovom dijelu obrazac bi vam trebao izgledati priblino kao na slici ispod:

Kreirano alatom
Rectangle

Slika 3-24 Izgled obrasca obNovaTransakcija nakon nekoliko zahvata

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]
[15]
[16]
[17]

Ucrtajte akcijski gumb na eljenom mjestu na glavnom obrascu


Iskljuite arobnjaka klikom na gumb Cancel
Preko dijaloga Properties promijenite natpis (Caption) na gumbu u Potvrdi
transakciju
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:
saldo = saldo + uplata isplata
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.
[18]
[19]
[20]
[21]

Kreirajte macro koji e izvravati prethodno opisanu akciju


Spremite macro pod imenom macPotvrdaTransakcije
Spremite promijene na obrascu
Probajte unijeti jednu transakciju za broj rauna koji sigurno postoji

Kreiranjem macroa kao i u prvom sluaju (SetValue; MsgBox; StopMacro) ovdje


e stvarati probleme, jer postoji mogunost da se jedna te ista transakcija potvrdi
vie puta stvaramo krivi saldo. Mogunost viestruke potvrde treba na neki
nain eliminirati!
[22]

Ponovite jednu te istu transakciju i uoite spomenutu pogreku

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:

DA

NE

SetValue
MsgBox
(Transakcija je vec
izvrena!)

StopMacro

(saldo = saldo +uplata


- isplata)

MsgBox
(Transakcija izvrena)

SetValue
(Yes za
kontrolnu kucicu)

Slika 3-26 Slijed izvoenja macroa macPotvrdaTransakcije

[23]
[24]
[25]
[26]
[27]
[28]

Na obrascu obNovaTransakcija ucrtajte jedan check box


Kao oznaku mu postavite Transakcija izvrena:
Pod svojstvima u kartici Other u Name upiite Trans_izvrsena
Zatvorite dijalog svojstava check boxa
Ponovno otvorite Macro editor preko svojstava kontrolnog gumba Potvrdi transakciju
Ukljuite stupac Conditions preko izbornika View

Slika 3-27 ukljuivanje stupca uvjeta u Macro editoru

[29]
[30]
[31]

Iznad prve naredbe SetValue umetnite dva retka kao to bi ih umetnuli u Excel tablicu
Umjesto postojee naredbe StopMacro koja je trenutno posljednja postavite SetValue
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]
[33]

Kako check box moe poprimiti samo dvije vrijednosti Yes i No, to emo u Expression
upisati Yes predefinirano je bilo na No
U prvi prazni redak pod Condition upiite
[Forms]![obNovaTransakcija]![Trans_izvrsena]

[34]
[35]
[36]

Pod Action izaberite MsgBox kojem ete kao poruku upisati Ova transakcija je ve
izvrena!, a kao tip staviti Warning!
U retku ispod (drugi dodani) pod Condition stavite to podrazumijeva prenoenje
istog uvjeta kao za naredbu prije
Kao naredbu izaberite StopMacro

Slika 3-29 macro macPotvrdaTransakcije

75

[37]
[38]
[39]
[40]

Spremite promjene na macrou


Iskljuite navigacijske gumbe i trake za pomicanje na glavnom obrascu
Spremite nainjene promjene
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.
[41]
[42]
[43]

Otvorite obrazac obPodaci u razvojnom nainu rada


Ucrtajte kontrolni gumb na eljenu poziciju
Slijedite upute arobnjaka prema donjim slikama

1
Biramo akciju
koju
dodjeljujemo
gumbu
otvori obrazac

Biramo
obrazac kojeg
elimo otvarati
gumbom

Odreujemo
nain na koji
e se otvarati
obrazac

Biramo izgled
gumba
postojee slika
ili korisniki
tekst

76

[44]
[45]

U posljednjem koraku e vas arobnjak upitati da dodijelite ime kontrolnom gumbu


Com_3
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]

[29]
[30]
[31]
[32]

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)
Nainite sortiranje korisnika po identifikacijskom broju u uzlaznom nizu (Ascending)
Spremite upit pod nazivom upSviRacuni
Kreirajte upit koji e prikazivati sve transakcije za neki raun sortirane po datumima u
silaznom nizu
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.

Slika 3-30 Promijena tipa zapisa iz dinamikog u nepromijenjivi (Snapshot)

77

Red je da malo "uminkamo" dobiveni obrazac. Preko izbornika View ukljuite prikaz zaglavlja i
podnoja obrasca Form Header / Footer.

Slika 3-31 ukljuivanje zaglavlja i podnoja obrascu

[34]
[35]
[36]
[37]
[38]
[39]

Proirite zaglavlje glavnog obrasca


Napravite desni klik miem na povrini tog zaglavlja i iz skonog izbornika izaberite
Properties
U kartici Format pod Back Color izaberite boju pozadine koju elite
Alatom za oznake
ucrtajte oznaku po sredini zaglavlja i napiite tekst PREGLED
TRANSAKCIJA NA RAUNIMA
Tekst i pozadinu oznake oblikujte po elji oblikovanje ovaj put izvrite preko alatne
trake oblikovanja (oznake oblikujete slino tekst okvirima
u Wordu)
Desnim klikom na povrinu podruja Detail dobivate skoni izbornik iz kojeg ponovno
izabirete Properties promijenite boju pozadine tog podruja

Mijenjamo
boju
pozadine

78

[40]
[41]
[42]
[43]
[44]
[45]

Ponovite isto i s podobrascem.


Oznaku podobrasca poveajte i oblikujte po elji, a tekst podSveTransakcije
promijenite u Pregled prometa na raunu br.
Oznaku tekst okvira broj_racuna izbriite jednom kliknete na nju, pa "poznata" tipka
DELETE dolazi u akciju
Pomaknite taj okvir u ravninu s oznakom podobrasca i oblikujte ga potpuno na isti nain
Potpuno smanjite podnoje obrasca
Spremite promjene

Slika 3-32 izgled gotovog obrasca obPregled

[46]

Promijenite izgled i ostalih obrazaca

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.
[1]
[2]
[3]

[4]
[5]

Kreirajte upit iz tablica tabKorisnici, tabRacuni i tabTransakcije


U upit redom stavite sva polja iz tih tablica
Pod
kriterij
polja
id_korisnika
iz
tablice
tabKorisnici
upiite
tabRacuni.id_korisnika (kako bi izvukli sve raune koji pripadaju jednom
korisniku)
Pod kriterij polja broj_racuna upiite tabTransakcije.broj_racuna (kako bi
izvukli transakcije na isti raun)
Spremite upit pod imenom upSviPodaci

Izvjea emo izraivati primjenom arobnjaka i eventualno dobiveno rjeenje modificirati u


razvojnom modu.
[6]
[7]
[8]
[9]
[10]

[11]

Prebacite se u traci objekata na izvjea Reports


Napravite brzi dvoklik na Create report by using wizard
U prvom koraku izaberite prethodno stvoreni upit upSviPodaci
Odaberite sva polja osim polja id_korisnika iz tabRacuni i broj_racuna iz
tabTransakcije
U drugom koraku susreete se s dijalokim prozorem u kojem se moe mijenjati nain
prikaza vaih podataka u desnom okviru imate pregled opeg izgleda budueg
izvjea ostavite ponuenu opciju
Trei korak nudi dodatnu mogunost grupiranja podataka po jednom ili vie polja ako
ukljuite dodatno grupiranje odmah ete vidjeti promjenu na pregledu opeg izgleda
obrasca u desnom okviru dodatno grupiranje neemo vriti preite na sljedei
korak bez ikakvih zahvata u ovom koraku Next

80

1. korak

2. korak

3. korak

Slika 3-33 Prva tri koraka izrade izvjea primjenom arobnjaka

[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)

Slika 3-35 izbor izgleda izvjea

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]
[15]

Sljedei korak Report Wizarda omoguava odabir stilova za budui izvjetaj nema
druge nego po pricipu probajte, pa izaberite to vam se svidi
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

Slika 3-36 Izgled dijela izvjea dobivenog arobnjakom za izradu izvjea

Oigledno niste zadovoljni dobivenim rjeenjem, pa emo nekoliko zahvata trebati napraviti
"runo" u razvojnom modu.
[16]
[17]
[18]
[19]

Otvorite obrazac u razvojnom modu


Izbriite tekstualne okvire JMBG i MBR
Promijenite veliinu slova svim tekstualnim okvirima i njihovim oznakama na 12pt
Promijenite boju pozadine oznakama i tekst okvirima preko alatne trake oblikovanja

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.
[20]
[21]

Promijenite boju slova svim oznakama i tekst okvirima po izboru


Promijenite tekstove u oznakama koji nisu korisniki
id_vrsta_korisnika: u vrsta korisnika:

prilagoeni

(npr.

Nakon nainjenih promjena izvjee bi vam trebalo imati priblino sljedei izgled:

Slika 3-37 izgled gotovog izvjea

[22]
[23]
[24]

Napravite izvjee koje e prikazivati podatke o korisnicima i njihovim raunima


koristite tablice tabKorisnici i tabRacuni
Kao stil izaberite Bold
Dodijelite mu ime izKorisniciRauni

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.
3.4

Izrada glavnog izbornika aplikacije

Kreiranje glavnog izbornika aplikacije uglavnom se vri primjenom arobnjaka koji se naziva
Switchboard Manager. Do njega dolazite preko izornika Tools Database Utilities
Switchboard Manager.

Slika 3-38 ukljuivanje arobnjaka za izradu glavnog izbornika aplikacije

Otvorit e vam se sljedei dijalog:

Slika 3-39 Izgled upravitelja glavnog izbornika

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]
[2]

Kliknite na New i u dijalogu koji vam se pojavi upiite ime Obrasci za novu stranicu
Ponovite postupak, samo sada upiite Izvjea

Imamo tri stranice koje su za sada potpuno prazne potrebno ih je urediti.


[3]
[4]

Kliknite na Main Switchboard (Default) Edit


Budui da se ta stranica prva pokree dodat emo na nju dvije stavke jednu koja e
sluiti za otvaranje stranice za pristup obrascima, a drugu za otvaranje stranice kojom
pristupamo izvjeima kliknite na gumb New u otvorenom dijalogu

Slika 3-40 Kreiranje nove stavke na polaznoj stranici glavnoj izbornika

[5]
[6]

Ponovite postupak za drugu stranicu Izvjea


Svaki glavni izbornik podrazumijeva da ima i gumb za izlaz iz aplikacije kliknite na
New kao tekst upiite Izlaz iz aplikacije, a pod naredbom odaberite Exit Application

Slika 3-41 kreiranje gumba za izlaz iz aplikacije na glavnom izborniku

86

[7]
[8]
[9]
[10]

S Close se vratite na prethodni dijaloki okvir


Oznaite stranicu Obrasci Edit New
Pod Text upiite Unos novih korisnika, a pod Command izabeite Open Form in Add
mode pod Form izaberite obrazac obPodaci
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

[12]

Jo je potrebno kreirati gumb koje e nas vraati na glavnu stranicu:

87

[13]
[14]

Vratite se na polazni dijalog klikom na gumb Close


Kliknite na stranicu Izvjea Edit New

[15]

Ponovno New kako bi kreirali gumb za ispis podataka o korisnicima i njihovim


raunima otvorili izvjee izKorisniciRauni

[16]
[17]

Opet kreirajte gumb za povratak kao i u prethodnom sluaju


Zatvorite Switchboard Manager

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.
[18]
[19]

Izbornik Tools Startup


U dijalogu za odreivanje inicijalnih uvjeta pokretanja aplikacije pod Application Title:
upiite naziv aplikacije koji e se pojavljivati u gornjem lijevom kutu naslovne trake
Accessa Banka uplate / isplate

88

[20]
[21]
[22]
[23]
[24]
[25]

Pod Form / Page izaberite na glavni izbornik Switchboard (osiguravamo da se on prvi


pojavljuje)
Iskljuite prikaz prozora baze Display Database Window
Onemoguite korisnika da vri promijene na alatnim trakama i menijima iskljuite
opciju Allow Toolbar / Menu Changes
Iskluite opciju Use Access Special Keys
Sve ostale postavke ostavite nepromijenjene
Potvrdite promijene OK

Slika 3-43 Izgled dijaloga za promijenu inicijalnih postavki aplikacije

Objasnit emo i ostale vanije opcije iz ovog dijaloga:


Menu bar izbor dodatne trake s padajuim izbornicima koja bi se odmah pojavljivala pri
otvaranju aplikacije (potrebno je posebno kreirati)
Allow Full Menus zajedno s Allow Default Shortcut Menus iskljuivanjem ovih opcija
onemoguavate prikaz svih izbornika
Allow Built in Toolbars onemoguavanjem ove opcije postii ete da Access samo prikazuje
alatne trake koje ste vi kreirali, dok e sve ugraene alatne trake biti iskljuene
Display Status Bar iskljuivanje / ukljuivanje statusne trake
Application Icon izbor slike ili ikone koja e se prikazivati u gornjem lijevom kutu naslovne
trake (trebate znati gdje je slika / ikona pohranjena, tj. putanju do nje)

Slika 3-44 Izgled glavnog izbornika aplikacije

89

You might also like