Professional Documents
Culture Documents
MS ACCESS 2010
Projektovanje
baza podataka
i
aplikacija
Beograd 2011.
Autori: Slobodan Obradovi, Bojan Vujovi, Tijana Pandurov,
Biljana Vuini, Vesna Petkovi
Prvo izdanje
ISBN 978-86-7982-106-5
CIP Katalogizacija u publikaciji
Narodna biblioteka Srbije, Beograd
004.42ACCESS
004.65
ISBN 978-86-7982-106-5
1. , , 1955- []
a) "Access" b)
-
COBISS.SR-ID 187101964
Predgovor
U Beogradu, 2011.
AUTORI
1. Uvod u MS Access
MS Access je programski paket koji je sastavni deo grupe programa
MS Office. MS Access je u stvari relacioni sistem Officea za upravljanje
bazama podataka RSUBP (Relational Database Management System,
RDBMS). Do sada se, sa razvojem MS Officea, na tritu nalo nekoliko
verzija MS Accessa (verzije ... 97, 2000, XP, ...) od kojih je danas aktuelna
Access 2010.
MS Access 2010 je predvien je za:
tabele (tables),
upiti (queries),
obrasci (forms),
izvetaji (reports),
ugraene funkcije (built-in functions),
makroi (macros), i
moduli (modules).
Tabela (table) je osnovni objekat (svih relacionih sistema za upravljanje
bazama podataka a ne samo MS Accessa) koji slui za smetanje i memori-
sanje podataka. Baza podataka u MS Accessu moe da sadri maksimalno
do 32768 tabela od kojih maksimalno 2048 mogu biti istovremeno aktivne,
to jest otvorene. U toku rada mogua je i dinamika razmena podataka,
kao i direktno povezivanje sa drugim tabelama kreiranim u drugim aplikaci-
jama i sistemima za upravljanje bazama podataka. Access podrava primar-
ne kljueve (integritet podataka, jedinstvenost svake n-torke) i spoljnje klju-
eve (obezbeuje potpuni referencijalni integritet na nivou samog RDBMS-a,
ime su onemoguena nepotpuna brisanja i auriranja podataka).
Upit (query) je najee korien alat u radu sa relacionim bazama po-
dataka. MS Access 2010 omoguava:
grafiki, brz i komforan nain kreiranja upita na bazi primera (Design
- QBE),
postavljanje upita pomou strukturiranog upitnog jezika (SQL),
upotrebu arobnjaka za izradu upita, obrazaca i izvetaja (Wizard),
postavljanje upita nad najvie 16 tabela, i
formiranje rezultata upita kao tabele od najvie 255 kolona.
Access podrava postavljanje upita nad vie tabela (istovremeno) kao i
uspostavljanje veza - relacija izmeu tabela. Relacije mogu, a ne moraju, biti
trajne, tj. unapred zadane, ve se mogu kreirati u momentu kreiranja upita i
odnose se samo na taj upit. Rezultat upita je skup slogova (redova) (Recor-
dset) iji se sadraj moe menjati u zavisnosti od samog upita i promena
sirovih podataka u fizikim tabelama.
realni deo sveta (na primer: aparat, preduzee, radnik, raun, narud-
benica i sl.),
apstraktni pojam (mera, koliina, boja, zvanje, itd.),
dogaaj (narudbina, transport, upis studenata, i sl.) i
asocijacija (slubenik-firma, predmet-nastavnik).
Model realnog sistema formira se korienjem semantiki najbogatijeg
objektnog modela. U zavisnosti od softvera koji e se koristiti za implemen-
taciju takav model prevodi se najee u odgovarajui relacioni model ta-
bele, kao model za implementaciju.
Relacioni model je danas najpopularniji model baze podataka i to zahva-
ljujui pre svega sledeim osobinama:
Ime tabele-RADNIK
IDBR# BROD$ IME PLATA Imena atributa
5497 10 Aco 1000
5780 20 Boo 2200 Jedan slog, zapis, n-torka
5900 20 Slobo 900
govog poslovanja od znaaja su i ovi podaci, ali i mnogi drugi. Ako su pred-
met naeg posmatranja zaposleni u nekom kolektivu i ako je na posao da
odredimo plate radnika, onda broj njihovih cipela nema nikakvog znaaja
(nije relevantan). Ali ako tog istog zaposlenog posmatramo iz ugla nabavke
HTZ opreme onda je i broj cipela i veliina odela i te kako vana.
Iako su neki podaci vrlo vani za neke aplikacije, oni ponekad uopte ni-
su pogodni da budu atributi u nekoj relaciji. Takav primer je, recimo, radni
sta zaposlenog. Naime iako je vrlo bitan on se svaki dan menja, pa bi bilo
neophodno svaki dan aurirati bazu podataka. Mnogo je pogodniji recimo
datum zaposlenja kao podatak na bazi kojeg moemo, ako je to potrebno,
izraunati radni sta.
U bazi podataka ne treba da postoje podaci koji su vieznani. Na pri-
mer, brano stanje koje moe biti neoenjen, oenjen, razveden i udovac.
Jer ako je neko oenjen po trei put, onda on moe istovremeno biti i razve-
den i udovac. Takve podatke takoe treba iskljuiti iz baze, ako nisu neop-
hodni, jer nas mogu dovesti u zabludu.
Poto je relacija skup, a svaka tabela nije, definiu se sledei uslovi koje
tabela mora da zadovolji da bi bila relacija:
1. ne postoje duplikati vrsta tabele (odnosno, dve vrste moraju se razlikova-
ti bar u vrednosti jednog atributa koji na jedinstven nain opisuje tu vrstu
i zove se primarni klju),
2. redosled vrsta nije znaajan,
3. redosled kolona nije znaajan, ali je isti za sve vrste jedne tabele,
4. sve vrednosti atributa u relacijama su atomske, tj. nije dozvoljeno da at-
ributi budu relacije, odnosno da ima vie vrednosti.
Ako tabela zadovoljava uslov (4) tada je ona u Prvoj normalnoj for-
mi. Svaka relacija mora biti u prvoj normalnoj formi (1NF). Svi atributi
(kolone) unutar jedne tabele moraju imati razliita imena, ali u raznim
tabelama mogu imati ista imena.
Klju relacije (primarni klju) je takva kolekcija njenih atributa, koja za-
dovoljava sledee uslove:
Svi atributi po kojima se vri pretraivanje baze (sem primarnog kljua) zovu
se sekundarni kljuevi. Razlika izmeu primarnog i sekundarnih kljueva je u
tome to pri pretraivanju baze po primarnom kljuu dobijamo najvie jedan
zapis, ako takav zapis postoji, ili nijedan, ako ne postoji. Pri pretraivanju po
sekundarnim kljuevima dobijamo skup zapisa (recordset), jer vie objekata
moe imati istu vrednost za taj atribut.
Blank Database,
Blank web database i
Templates (uzori, abloni).
[1]
U Windows operativnom sistemu dovoenjem pokazivaa mia na neki objekat i pritiskom na radni,
najee levi, taster mia vri se izbor (oznaavanje, selekcija) nekog objekta.
[2]
Pritisak na radni taster mia predstavlja dogaaj koji se naziva klik (Click).
[3]
Pritisak na radni taster mia dva puta u kratkom vremenskom intervalu predstavlja dogaaj koji se
naziva dvostruki klik (Double click).
[4]
Pritiskom na alternativni, najee desni taster mia, dobija se brza lista, skup najee korienih
naredbi za izabrani objekat.
Slika 3.4 Radni prozor MS Accessa u kojem je korisniku odmah ponueno kreiranje
prve tabele u bazi.
Okno za
definisanje imena polja
i tipa podatka
(definisanje atributa)
Okno za opis
svojstava polja - opis
atributa
Slika 3.5 Kolone (atributi, polja, engl. fields) tabele definiemo pre svega preko
njihovih imena i tipova, ali i ostalih svojstava (Field Properties deo)
Text (slovni ili znakovni tip), koristi se kada podatak predstavlja niz
alfanumerikih znakova. Takav podatak je na primer ime i prezime,
adresa ili zanimanje radnika, broj telefona (sadri karaktere kao to
su "/" i "-" tako da ne moemo koristiti tip Number) itd. Slovni ili string
podatak moe biti svaki niz alfanumerikih i nekih od specijalnih zna-
kova. Broj znakova kod ovog tipa podatka je ogranien na 255.
Memo tip, je u principu slovni (alfanumeriki) tip, ali sa veom dui-
nom (na primer do 64 KB) a koristi se za unoenje opisnih podataka
(dijagnoza ili anamneza pacijenta, na primer). Ovakvi podaci se ne
mogu indeksirati, niti biti polja za primarni klju. Memo tip podataka
ima do 65 535 znakova.
Number (brojni tip), na primer visina linog dohotka ili duina neke
ulice, moe slino kao i u drugim programskim jezicima, da bude ce-
lobrojan (Byte, ako je duina 8 bita, Integer, ako je duina 16 bita i
Long Integer, sa duinom od 32 bita), ali i realan broj sa fiksnom ili
pominom decimalnom takom razne preciznosti koja zavisi od dui-
ne, to jest broja cifara. Tako je tip podataka Single realan broj do 7
dekadnih cifara, odnosno Double duine do 15 dekadnih cifara.
AutoNumber je numerika (Long Integer) vrednost, koju MS Access
automatski inkrementira za svaki novi zapis koji se doda u tabelu.
Pogodan je za primarni klju.
Date/Time (datumski i vremenski) tip podatka esto se koristi u in-
formacionim sistemima, jer je itav niz podataka vezan za vreme, za
neke rokove, bez obzira da li su iskazani danima, mesecima i godi-
nama ili satima, minutima i sekundama.
Date (datumski tip) je jedna celina, jedan podatak, iako u sebi sadri
tri numerika polja (za dan, mesec i godinu), meusobno odvojena
takom, crtom ili kosom crtom, a to zavisi od zemlje u kojoj e se
koristi. Za ovakav tip podatka vai i posebna aritmetika koja omogu-
ava korisniku da rauna vremenske intervale.
Time je vremenski tip podatka za koji vae ista pravila kao i za da-
tumski, s tim to se koriste razliiti postupci za obradu zasnovani na
razliitim aritmetikama: jedna aritmetika za datumski tip, a druga za
vremenski, jer godina ima 12 meseci, a mesec 28 (29), 30 ili 31 dan,
dok je za sat, minut i sekundu taj odnos 24:60:60, pa se i odgovara-
jue aritmetike shodno tome moraju razlikovati.
Yes/No (logiki tip), predstavlja podatak koji se koristi kod atributa
kod kojih je domen ogranien na dve vrednosti.
Currency je numeriki tip fiksnog formata sa etiri decimalna mesta.
Koristi se za atribute koji izraavaju novane vrednosti.
OLE objekti slue za uvanje podataka - dokumenata kao to su MS
Word ili MS Excel dokumenti, slike, zvuk i ostali tipovi binarnih poda-
taka kreiranih u drugim programima. OLE objekti mogu biti povezani
(linked) ili ugraeni (embeded) u polje Microsoft Access tabele. OLE
tip se ne moe proglasiti za polje kljua, niti ga moemo ukljuiti u in-
deks.
Hyperlink - polja hiperveza uvaju adrese HTML dokumenata
(HyperText Markup Language). Web adresa koja se uva u hyperlink
polju moe da se odnosi na neku Web stranicu na Internetu, ili na
stranicu koja se uva lokalno na raunaru ili mrei. Izbor miem polja
Hyperlink prouzrokuje pokretanje Web pretraivaa (browser) i pri-
kazivanje Web strane na koju smo se pozvali. Da bismo dobili novu
adresu hiperveze, treba izabrati komandu Insert - Hyperlink.
Attachment - daje nam mogunost da u bazu stavimo neki fajl direk-
tno, ne samo njegovo ime ili lokaciju. Jedan red u attachment polju
moe sadrati i vie ubaenih (ugraenih) fajlova. Mogunost direkt-
nog ubacivanja datoteka u bazu je vrlo korisna i laka za korienje,
u kojoj atributi idbr# (ifra, identifikacioni broj radnika) i ime ne mogu imati
vrednosti Null.
u kojoj atributi brod# (ifra odeljenja) i ime_od ne mogu imati vrednosti Null,
PROJEKAT (brproj# INTEGER NOT NULL,
imeproj TEXT(25) NOT NULL,
sredstva INTEGER);
u kojoj atributi brproj# (ifra projekta) i imeproj ne mogu imati vrednosti
Null.
[1]
Znak # je upotrebljen u ovom praktikumu kao oznaka da je dati atribut primarni klju,
inae nije implementiran u sintaksu SQL jezika. Ne treba ga pisati u Accessu.
Ovo je veza tipa 1:N (jedan prema vie), a ostvaruje se tako to se u ta-
beli RADNIK na strani vie (vie radnika) uvodi kao atribut spoljanji (strani)
klju brod$ koji predstavlja primarni klju u tabeli ODELJENJE. Kako neki
radnici ne moraju trenutno biti rasporeeni ni u jedno odeljenje, ova veza je
opcionalna na strani entiteta (tabele) RADNIK. Zbog toga atribut za vezu
(strani klju) u ovoj tabeli moe imati Null-vrednost. Tako tabela RADNIK
stvarno ima sledei izgled:
RADNIK <idbr#,kvalif, ime, posao, rukovodilac, dat_zap, premija, plata, brod$[1] >
6. Dodati novi atribut brod$, i dati mu ista svojstva koja ima istoimeni atribut
u tabeli ODELJENJE.
Ali, svi radnici rade na nekim konkretnim poslovima, projektima i pri to-
me jedan radnik moe raditi na vie projekata, a istovremeno na jednom pro-
jektu radi vie radnika. Dakle ovo je relacija M:N (vie prema vie). Da bismo
ostvarili ovu relaciju izmeu dva entiteta treba kreirati novu tabelu, nazovimo
je UEE, koja ima sloeni primarni klju (idbr#,brproj#) koji sainjavaju
primarni kljuevi iz tabela RADNIK (idbr#) i PROJEKAT (brproj#).
[1]
Znak $ je upotrebljen u ovom udbeniku kao naznaka da je dati atribut spoljnji klju,
inae nije implementiran u sintaksu SQL jezika.
[1]
Ako je strani, spoljnji klju deo sloenog primarnog kljua onda emo i njega oznaiti
znakom # kao to je to uinjeno u tabeli UEE.
toje u tabeli u kojoj je on primarni klju) ili objekta u kojem e biti prika-
zan (kartica Lookup).
Na prvoj kartici General podeavamo svojstva polja za odreeni tip po-
datka:
veliina polja (Field Size),
formatiranje (Format),
vrlo je korisno prokazati ulaznu masku, a ona mora biti saglasna sa vred-
nou koja je izabrana u polju veliina polja (Field Size). Access ima veliki
broj unapred definisanih maski za tekstualne podatke kao to su: telefonski
brojevi, brojevi socijalnog osiguranja, lozinke, razni formati za datume itd.,
(slika 3.10).
Slika 3.10 Access omoguava korisniku da bira ulaznu masku za svoje podatke
Slika 3.12 Poto je izvor podatka neka tabela u padajuoj listi se nude samo pos-
tojee vrednosti u tabeli pa je unos podataka brz, a podaci su uvek ispravni
Preuzimanje tabela
U radu sa bazama podataka, esto dolazimo u situaciju kada je potreb-
no preuzeti strukturu neke ve postojee tabele (sa ili bez podataka) iz dru-
ge baze podataka. Svi podaci koje raunar moe da organizuje u obliku ta-
bele, pa ak i tabele u datotekama za obradu teksta, mogu da se konvertuju
u tabele baze podataka. Jedna od mogunosti Accessa je i transformisanje
postojeih tabela baza podataka, radnih tabela i tekstualnih datoteka nap-
ravljenih u drugim Windows aplikacijama u Accessov .accdb format. Ovaj
postupak preuzimanja poznat je kao uvoz (Import)).
Unos podataka
Da bismo otvorili tabelu za unos podataka, u prostoru za objekte baze
(slika 3.16) potrebno je dvaput kliknuti na odgovarajuu tabelu. Drugi nain
je da se izabere odgovarajua tabela, a zatim izaberemo dugme otvori
(Open, ).
Na ekranu se pojavljuje formular za unos podataka, odnosno pojavljuje
se tabelarni prikaz (Datasheet) sa imenovanim poljima u koja se direktno
unose podaci. Podaci se unose u pripremljena polja vodei rauna o tipu
podataka. U tabelarnom prikazu su ve popunjeni redovi (n-torke, zapisi) sa
postojeim podacima i na kraju postoji jedan prazan red u koji se mogu uno-
siti podaci (novi zapis).
Ako pogreimo i unesemo podatak koji nije odgovarajueg tipa (tekst
umesto broja) ili ne zadovoljava postavljena ogranienja biemo upozoreni
na greku, koju moemo popraviti. Ukoliko smo u polju Validation Text upi-
sali odgovarajuu poruku ta poruka e biti prikazana na ekranu. Ukoliko ni-
smo sami definisali poruku sam Access e ispisati svoju, npr. The value you
entered is not valid for this field (Vrednost koju ste upisali nije prihvatljiva u
ovom polju).
Slika 3.18 Pronalaenje podatka ili dela podatka u tabeli ili koloni (polju)
Korienje opoziva
Za opoziv akcije ili izmene kao i u drugim Windows aplikacijama i u Ac-
cessu je na raspolaganju komanda i dugme opoziv (Undo). Komanda Undo
se nalazi u listi Edit. Postoji vie vrsta opoziva:
6. vrste spajanja su: prirodno spajanje, levo spoljnje spajanje ili desno
spoljnje spajanje, a biraju se dugmetom vrsta spajanja (Join Type), na-
kon ega se pojavljuje novi okvir za dijalog Join Properties (slika 3.23),
7. pretpostavljena vrsta spajanja je prirodno spajanje, opcija 1. Ukoliko ho-
emo spoljanje spajanje onda biramo opciju 2 ili 3,
8. izmeu entiteta RADNIK i PROJEKAT postoji relacija vie prema vie
(M:N), jer jedan radnik radi na vie projekata, a na jednom projektu radi
U sluaju da smo obrisali kolonu koja je primarni klju tabele (to mo-
emo samo iz Design Viewa, Datasheet View to ne dozvoljava), bie
nam postavljeno pitanje da li da program sam kreira primarni klju (slika
3.27). Ako se izabere opcija Yes dodaje se tabeli jo jedna kolona imena
ID tipa Autonumber. Ako ne elimo da imamo takav primarni klju, iza-
beremo opciju No i kreramo tabelu bez primarnog kljua.
sve izmene u strukturi tabele mogu se uraditi naknadno, pa tako ot-
vorimo novokreiranu tabelu u reimu projektovanja, izborom opcije De-
sign View. Dodamo primarni klju za polje idbr ovoj tabeli na ranje opsi-
sani nain.
AUTOR KNJIGA
NAPISALI
Uputstvo:
Kod kreiranja ove baze uslov je da jedan autor moe napisati vie knji-
ga, a jedna knjiga moe imati vie autora.
AUTOR (id_autor, ime, prezime, adresa, zvanje, ...)
KNJIGA (id_knjiga, naziv, izdava, datum_izdavanja, isbn, ...)
NAPISALI (id_autor, id_knjiga, ...)
VLASNIK
LOKACIJA
ZAKUPAC
lu RADNIK i miem izabrati ikonicu dodaj Add (da bismo ikonicu dodali),
nakon ega prozor Show table moemo zatvoriti (dugme Close). U slu-
aju da kreiramo upit nad vie tabela (o emu e kasnije biti rei), u
ovom koraku po opisanom postupku selektujemo sve tabele koje su nam
potrebne za kreiranje upita,
4. na ekranu ostaje prozor QBE podeljen na dva dela. U gornjem delu pro-
zora prikazane su tabele koje uestvuju u upitu, kao i veze (relacije) iz-
meu njih, ukoliko postoje (relacije se za sada ne vide jer smo selektova-
li samo jednu tabelu). U donjem delu moemo uoiti okvir (formular) za
postavljanje upita,
5. sada moemo prei na izbor atributa. Izgled prozora QBE je prikazan na
slici 4.2, a upit se formira na sledei nain:
8. rezultate upravo kreiranog upita moemo videti ako na liniji alata (tool-
baru) aktiviramo ikonicu , ili ako izaberemo opciju tabelarni prikaz .
Oba dugmeta stoje na trenutno aktivnoj kartici Design (Query Tools), na
levoj strani. Rezultati koje vraa upit prikazani su na slici 4.4,
11. da bismo sauvali upit potrebno je izabrati opciju sauvaj Save, ili zatvo-
riti prozor sa upitom. U oba sluaja pojavie se okvir za dijalog u koji tre-
ba uneti ime novokreiranog upita. Kada memoriemo ovaj upit (nazovimo
ga na primer qryZaposleni[1]), on e se na levom panelu rezervisanom
za prikaz objekata u bazi podataka pojaviti kao .
Slika 4.5 SQL kd koji generie Access kada kreiramo upit u QBE-u
(SQL View)
12. kada imamo memorisan upit uvek ga moemo izvriti na dvostruki klik ili
ako selektujemo dati upit i izaberemo ikonicu , ili pak modifiko-
vati, ako selektujemo dati upit i izaberemo ikonicu .
Rezultat upita je virtuelna, neimenovana tabela (slika 4.4), koju moemo
dalje obraivati alatkama koje nudi Access. Na primer, moemo je sortirati
(urediti) po nekom atributu (po rastuem ili opadajuem redosledu) ili pak
izdvojiti samo neke poslove od interesa.
PRIMER 2: Prikazati IME i POSAO svih radnika koji imaju platu ve-
u od 2000.
[1]
Uobiajena praksa kod imenovanja objekata u MS Accessu je dodavanje prefiksa koji oz-
naava o kom objektu se radi, pa se napred kao deo imena upita dodaje qry.
Napomena: Ako elimo da ispitamo da li je neka vrednost Null ili ne, nee-
mo koristiti operatore poreenja, ve iskaz IS NULL ili IS NOT NULL.
u poljima koja spajaju tabele. U veini sluajeva spajanje se vri preko polja
jedinstvenog primarnog kljua u jednoj tabeli, i polja spoljnjeg kljua u drugoj
tabeli (u relaciji jedan prema vie). Ako za neku vrednost primarnog kljua
jedne tabele u drugoj tabeli ne postoji ni jedan odgovarajui zapis, taj zapis
se ne pojavljuje u rezultatu upita. Access automatski pravi spojeve izmeu
tabela kada prethodno u prozoru Relationships uspostavimo relacije izmeu
tabela. To moemo uoiti na slikama prozora QBE, koji pri dodavanju vie
tabela u upit automatski dodaje i veze izmeu njih.
precizno definiemo ime te kolone. Puno ime polja sastoji se od imena tabe-
le i imena polja izmeu kojih se nalazi taka kao separator (RADNIK.BROD,
ODELJENJE.BROD). To moemo da uradimo na jedan od dva naina:
1. unesemo ime tabele iz koje je kolona koju elimo, zatim stavimo taku i
ime kolone (npr. RADNIK.IDBR). U sluaju da kreiramo upit nad jednom
tabelom ili upit u kome uestvuju kolone sa razliitim imenima, navoe-
nje tabele ispred imena kolone nije neophodno. MS Access po defaultu
(podrazumevano) generie SQL koji koristi potpunu kvalifikaciju imena
tabele i kolone.
2. dodelimo nadimak (ALIAS) tabelama i u nazivu kolone upisujemo taj na-
dimak alias, iza koga sledi taka i ime kolone (R.IDBR).
PRIMER 8: Prikai ime, posao i mesto radnika, koji rade u mestu
Dorol koristei aliase R za tabelu RADNIK i O za tabelu
ODELJENJE (slika 4.11).
SELECT R.IME, R.POSAO, O.MESTO
FROM RADNIK R INNER JOIN ODELJENJE O ON R.BROD=O.BROD
WHERE O.MESTO=Dorol ;
PRIMER 11: Prikazati imena svih odeljenja i imena radnika koji rade u
njima, ukljuujui i imena radnika koji su trenutno neras-
poreeni (ne pripadaju ni jednom odeljenju).
Postupak kreiranja upita iz primera 9. neemo opisivati jer je isti kao u
prethodnim primerima 7. i 8. Postupak kreiranja upita iz primera 10. je slede-
i:
2. promeniti tip veze izmeu ove dve tabele. Promena veze vri se tako to
desnim tasterom mia izaberemo liniju koja spaja ove dve tabele (slika
4.13), a zatim izaberemo JOIN PROPERTIES, kao to je prikazano na
slici 4.13,
3. otvorie nam se prozor za definisanje svojstava spajanja (slika 4.14),
4. u prozoru prikazanom na slici 4.14 izabrati opciju za LEFT OUTER JOIN
i potvrditi. SQL sintaksa koju je generisao Access imae sledei oblik:
SELECT ODELJENJE.IMEOD, RADNIK.IME
FROM ODELJENJE LEFT JOIN RADNIK ON ODELJENJE.BROD =
RADNIK.BROD;
Ako pogledamo skup rezultata koje je vratio ovaj upit moemo uoiti da
je kao ime odeljenja prikazao i Raunski centar, koji nema odgovarajuu
vrednost u tabeli RADNIK i da je umesto imena radnika u tom odeljenju vra-
tio Null-vrednost.
U odgovoru na upit iz primera 9 (kada smo u upitu koristili INNER JOIN)
Raunski centar nije bio ukljuen u skup rezultata koje vraa upit, jer nema
odgovarajui zapis u tabeli RADNIK. Takoe uoimo da je Access izostavio
kljunu re OUTER jer im postoji kljuna re LEFT, podrazumeva se da
INNER JOIN
LEFT
OUTER JOIN
RIGHT
OUTER JOIN
Slika 4.14 Prozor Join Properties (za izbor tipa spajanja tabela)
Kod kreiranja spoljanjih spojeva od izuzetnog je znaaja koju smo tabe-
lu proglasili levom, a koju desnom. U SQL-u leva tabela predstavlja
tabelu levo od kljune rei LEFT JOIN, a desna tabela desno od date klju-
ne rei. U QBE-u leva tabela postaje ona od koje poinjemo da prevlai-
mo spoj.
RIGHT OUTER JOIN vraa sve zapise iz tabele koju u spoju proglasimo
kao DESNU, bez obzira da li se odgovarajui zapisi nalaze u LEVOJ ta-
beli. Za zapise sa desne strane koji nemaju odgovarajui zapis sa leve, re-
zultat ima vrednost Null. Izrada ovakve vrste upita vri se po analogiji sa
prethodnom, osim to je potrebno kao svojstva spajanja (Join Properties)
izabrati opciju za RIGHT OUTER JOIN. SQL upit kojim se realizuje primer
11 je:
SELECT ODELJENJE.IMEOD, RADNIK.IME
FROM ODELJENJE RIGHT JOIN RADNIK ON ODELJENJE.BROD = RADNIK.BROD;
THETA JOIN
Ova vrsta spajanja povezuje podatke pomou operatora poreenja koji
nisu znak jednakosti (=). U Theta spojeve spadaju spojevi nejednakosti (<,
>, <=, >=, <>) koji se koriste kod upita za pronalaenje zapisa koji nemaju
neki odnos. Theta spojevi se primenjuju pomou kriterijuma Where, a ne
pomou rezervisane rei JOIN. Prozor QBE ne prikazuje Theta spojeve lini-
jama izmeu imena polja i Theta spojevi se ne pojavljuju u prozoru Relation-
ships. Ovakva vrsta spoja se kreira tako to primenimo kriterijum nejednako-
sti na jedno od dva polja iju nejednakost ispitujemo. Ovakva vrsta upita se
primenjuje u kombinaciji sa predikatom razliiti (DISTINCT).
a) b)
Slika 4.21 Rad sa nedefinisanim vrednostima
Napomena: Ovde treba uoiti razliku izmeu objekata koji nemaju premiju
(imaju Null-vrednost) i objekata koji imaju premiju, a vrednost premije moe
biti i 0 (radnici Pero i Miro u tabeli na slici 4.21 a).
Nz funkciju upotrebljavamo za dodeljivanje nule, stringa duine
nula (zero-length string, ""), ili druge specificirane vrednosti kada je
vrednost atributa upotrebljenog u nekom izrazu NULL. Na primer, mo-
emo pretvoriti Null-vrednost u neku drugu da bismo izbegli greke u
proraunu. Tako je, recimo, radnicima koji zbog prirode posla ne mo-
gu imati premiju (rukovodioci, direktor, ...) zgodno pridruiti premiju iji
je iznos 0, da bi potom bilo mogue izraunati prosene zarade svih
zaposlenih (plata +premija).
Sintaksa: Nz ([ varijabla], [vrednost_ako_je_Null])
Akcioni upiti
Akcioni upiti predstavljaju upite koji kopiraju, briu ili menjaju poda-
tke. U ovaj tip upita spadaju:
make table,
append,
update i
delete.
Append i make table upiti kopiraju, a update i delete menjaju ve pos-
tojee podatke. Ovi upiti su deo SQL jezika za manipulaciju podacima (DML,
Data Manipulation Language). Za potrebe vebanja ovih upita, u direktori-
jumu gde smo kreirali bazu podataka PREDUZECE.mdb, kreirati novu bazu
podataka, PREDUZECE1.mdb i u nju preuzeti (importovati) sve tabele osim
tabele RADNIK iz baze podataka PREDUZECE.mdb.
5. u okvir za dijalog (slika 4.25) potrebno je uneti ime nove tabele (nazva-
emo je isto RADNIK) u koju izvozimo podatke i izraziti elju da li ta ta-
bela treba da bude u tekuoj bazi podataka (Current database) ili nekoj
drugoj. U naem sluaju kreiraemo tabelu u drugoj bazi podataka, tj.
PREDUZECE1.accdb, koju smo kreirali za vebanje akcionih upita. U
sluaju da baza podataka u koju izvozimo podatke nije u istom direktori-
jumu kao izvorina baza, potrebno je pored imena baze kvalifikovati i
kompletnu putanju do nje, na primer: C:\baze\praktikum\vezbe\
PREDUZECE1.accdb,
prozoru ovaj upit ima izgled kao na slici 4.29, a SQL kd koji generie Ac-
cess je:
UPDATE RADNIK SET RADNIK.PLATA = PLATA*1.1
WHERE (((RADNIK.POSAO)="VOZA"));
SQL-specific upiti
U ovaj tip upita spadaju:
PRIMER 26: Prikazati IME, POSAO i PLATU radnika koji imaju isti
posao kao Slobo. Upit nazvati qryIstiPosao.
SELECT DISTINCT RADNIK.IME, RADNIK.POSAO, RADNIK.PLATA
FROM RADNIK
WHERE RADNIK.POSAO =(SELECT RADNIK.POSAO
FROM RADNIK
WHERE RADNIK.IME="Slobo");
Union upiti
Ova vrsta upita kombinuje polja (kolone) iz jedne ili vie tabela u jedno
polje ili kolonu u rezultatima upita. Pretpostavimo da u preduzeu postoje
dva mesta gde se realizuju projekti i da na svakom mestu postoji posebna
evidencija o ueu radnika na projektima, tj. postoje tabele UEE1 i
UEE2, koje imaju iste atribute kao i tabela UEE. Takoe pretposta-
vimo da postoji glavna filijala firme u kojoj se ti podaci objedinjuju u jedins-
tvenu tabelu UEE. Za ovakvu vrstu objedinjavanja podataka pogodno je
koristiti UNION upite, a postupak kreiranja je sledei:
1. u prozoru QBE izabrati Query->SQL Specific->Union. Access auto-
matski otvara SQL prozor, jer u QBE-u nije mogue kreirati UNION
upit,
2. u SQL prozoru otkucati sledei SQL kd:
SELECT * FROM UCESCE1
UNION
SELECT * FROM UCESCE2;
PRIMER 28: Nad tabelom RADNIK (polje IME ) kreirati indeks. Upit
nazvati qryIndeks.
CREATE INDEX ime_index
ON RADNIK ([IME]);
PRIMER 29: Modifikovati tabelu projekat dodavi joj kolonu ROK tipa
date. Upit nazvati qryRok.
PRIMER 32: Izbrisati indeks nad poljem IME u tabeli RADNIK. Upit
nazvati qryBrisiIndeks.
PRIMER 33: Kreirati tabelu RADNIK1 (sa istim atributima kao i tabela
RADNIK), a zatim je izbrisati. Upite nazvati
qryKreirajRadnik1 i qryIzbrisiRadnik1.
Parametarski upiti
Svi upiti opisani do sada imali su u klauzuli WHERE definisan uslov za
selekciju. Zbog toga ovi upiti uvek daju iste rezultate. Na primer, ako hoemo
da saznamo imena radnika u odeljenju broj 10, postaviemo uslov WHERE
BROD=10, ako hoemo imena radnika u odeljenju broj 20, postaviemo us-
lov WHERE BROD=20 itd. Ako pretpostavimo da u preduzeu postoji 100
odeljenja, morali bismo kreirati 100 upita da bi saznali imena radnika u sva-
kom odeljenju.
Naravno, mogue je kreirati samo jedan upit koji nam daje odgovor na
ovo pitanje. U ovom upitu traimo imena radnika, a podatke (parametre) o
odeljenju koje je od interesa unosimo u toku izvravanja upita. Na taj nain,
pomou samo jednog upita moemo dobiti imena radnika u bilo kom odelje-
nju. To su takozvani parametarski upiti.
Moemo kreirati parametarski upit koji zahteva da se unese i vie od je-
dnog parametra, na primer da se unesu dva datuma, a on vraa sve podatke
koji su izmeu datuma koji su uneti. Parametarski upiti najvie se upotreblja-
vaju u kombinaciji sa obrascima i izvetajima jer omoguavaju dinamiko
kreiranje izvetaja zasnovano na parametru koji je uneo korisnik.
2. atributi koji su nam potrebni su ime, radnik i kvalif, s tim to polje kvalif
nije potrebno da se vidi, pa treba iskljuiti polje show.
3. u polje criteria atributa kvalif uneti tekst [Unesite kvalifikaciju:]. Ovaj
tekst e se pojaviti prilikom izvravanja upita,
4. u Design View prozoru upit e izgledati kao na slici 4.32,
5. kada pokrenemo ovaj upit, pojavie se okvir za dijalog prikazan na slici
4.33.
Pass-through upiti
Ovaj tip upita alje komande direktno ODBC1 izvorima podataka, kao to
su na primer Microsoft FoxPro i Microsoft SQL Server, upotrebom komandi
koje prihvata server. Ovaj tip upita pogodan je za izvravanje stored proce-
dura (uskladitenih procedura) na serveru prijavljenom kao ODBC izvor po-
dataka.
4.5. Prikazati sve radnike iz odeljenja 30 ija je plata vea od 1000 evra.
4.7. Prikazati ime, posao i premiju za sve radnike koji ne primaju premiju.
1
ODBC predstavlja standardni protokol za pristup bazama podataka lociranim na database serverima,
kao to je na primer Microsoft SQL Server. Moemo instalirati ODBC drajver da bismo omoguili MS
Accessu da pristupi informacijama na nekom serveru.
4.28. U tabelu radnik uneti podatke o sledeem radniku: 5555, Milena, ana-
litiar, VSS, 5662, 1.1.2000, 3000, 1500, 10.
Kreiranje obrazaca
Da bismo kreirali novi obrazac potrebno je najpre iz trake sa alatkama
izabrati karticu Create i u njoj pronai deo koji se odnosi na obrasce
(Forms), slika 5.1.
Slika 5.2 Izgled obrasca nad tabelom ODELJENJE kreiranog pomou opcije
Form
Ukupan
broj za- Novi Filtriranje
Prvi zapis zapis Pretraga
pisa
Posled-
Prethod- Aktivan zapis nji zapis
Sledei
ni zapis
zapis
2. Pre ovog koraka smo mogli selektovati tabelu RADNIK u panelu sa obje-
ktima baze podataka (slika 5.4). U tom sluaju bi nam selektovana tabela
bila predloena u prvom koraku wizarda (odabir tabela i atributa). Ovo ni-
je obavezno i izvor podataka moemo definisati i u sledeem koraku.
Biranje
tabele za Form
Slika 5.4 Izbor tabele RADNIK nad kojom emo kreirati obrazac
3. Sada nam se otvara prozor Form Wizard (slika 5.5.) u kome biramo koja
e polja izabrane tabele/upita biti prikazana u obrascu. U delu raspoloi-
va polja (Available Fields) je lista svih polja izabrane tabele/upita. U de-
lu izabrana polja (Selected Fields) je lista polja koje smo izabrali. Dvos-
trukim klikom na odreeno polje ili selektovanjem polja i pritiskom na od-
govarajue dugme vrimo prebacivanje raspoloivih polja.
Izbor tabe-
le/upita
Izabrana
polja za
obrazac
Sva polja
izabrane
tabele/upita
[1]
Uobiajena praksa kod imenovanja objekata u MS Accessu je dodavanje prefiksa koji oz-
naava o kom objektu se radi. Tako emo imenu obrasca dodeliti prefiks frm, to je
skraenica od form, izvetaju rep, to je skraenica od report, tekstualnom polju
txt, padajuoj listi cmb, labeli lab i komandnom dugmetu cmd.
Slika 5.9 Form Wizard - izbor tabela i atributa nad kojima kreiramo obrazac
Slika 5.10 Form Wizard - izbor tabele prema kojoj gledamo podatke
Kretanje kroz
zapise tabele
ODELJENJE Kretanje kroz zapise
tabele RADNIK
Slika 5.15 Izgled obrasca koji sadri samo neke atribute (polja) iz tabele
uee
Obrazac koji smo kreirali pomou alata Form Wizard u reimu projekto-
vanja (Design View) ima izgled kao na slici 5.17.
Prozor koji se vidi u reimu projektovanja (slika 5.17.) predstavlja okvir
sa alatkama (Toolbox) i slui za postavljanje novih kontrolnih elemenata[1] u
obrazac.
[1]
Kontrolni elementi (kontrole) su objekti koje nudi Access za prikaz podataka iz tabela ili
upita (tekstualno polje, padajua lista) ili za dizajn (labele, okviri sa slikama).
Okvir sa
alatkama
Kontrole u obrascu
Na Accessovim obrascima i izvetajima postoje tri kategorije kontrolnih
objekata:
povezane kontrole (Bound) pridruene su poljima u izvoru podataka
za obrazac ili podobrazac. Izvor podataka moe da bude tabela ili
upit. Pridruene kontrole prikazuju i auriraju vrednosti elija podata-
ka u pridruenom polju trenutno izabranog zapisa. Najee pridru-
ene kolone jesu polja za tekst. U pridruenom OLE objektu moe da
se prikae sadraj grafikog objekta ili audio datoteke u talasnom ob-
liku. Dugmad za promenu stanja i polja za potvrdu mogu se pridruiti
poljima koja mogu da imaju samo dve vrednosti. Grupa opcionih du-
gmadi moe da se pridrui poljima sa numerikom vrednou. Sve
pridruene kontrole imaju labele koje prikazuju svojstvo Caption po-
lja. Labele moemo ureivati ili izbrisati bez uticaja na pridruenu ko-
lonu,
nepovezane kontrole (Unbound) prikazuju podatke koji ne zavise od
izvora podataka. Nepridrueni OLE objekti se koriste za dodavanje
crtea ili bit-mapirane slike na obrazac. Linije i pravougaonici dele
obrazac na logike celine i podraavaju okvire tampanog obrasca.
Nepridruena polja za tekst koriste se za unos podataka koji nisu
namenjeni auriranju nekog polja u izvoru podataka, ve imaju neku
drugu namenu, na primer za prihvatanje vrednosti koja e se koristiti
u izrazu. Neke nepridruene kontrole, kao to su nepridruena polja
pridrueni natpis (Caption), svoj poloaj na formi (gornji levi ugao), dimenzi-
je (irina i visina) itd. Objekat se moe uiniti nevidljivim (svojstvo Visible
(Yes/No)), nedostupnim (svojstvo Enabled (Yes/No)) itd. Objekti koji mogu
imati podatke (tekst, lista, padajua lista) mogu se povezati sa bazom radi
unosa ili prikaza. Objektima se mogu pridruiti neke procedure koje e se
obraivati kada se dese neki dogaaji (Event Procedure). Ove procedure
obavljaju neki zadatak kada se desi klik, dvostruki klik, kada se pomeri po-
kaziva mia ili je pritisnut neki taster na tastaturi.
Dodavanje labele
Da bismo uneli potrebne izmene u obrazac frmOdeljenjeRadnik, po-
trebno je uraditi sledee:
1. da bismo dodali tekstualno polje ili bilo koju novu kontrolu u obrazac pot-
rebno je proiriti povrinu obrasca, a zatim treba pronai odgovarajuu
alatku sa Controls panela,
2. selektovati Text Box i smestiti ga na radnu povrinu obrasca. On auto-
matski dobija ime Text6, koje emo promeniti u ime txtFunkcija,
3. kada smo dodali tekstualno polje u obrazac ono nije pridrueno ni jed-
nom izvoru podataka (Unbound). Da bismo ga povezali sa izvorom po-
dataka, tj. poljem FUNKCIJA iz tabele UEE, potrebno je selektovati
tekstualno polje i otvoriti prozor (time se otvaraju svojstva upravo za taj
objekat). Na kartici Data u polju Control Source pojavljuju se atributi ta-
bela na osnovu kojih je napravljen obrazac (slika 5.19). Biramo atribut
FUNKCIJA i time smo povezali objekat na obrascu da prikazuje odgova-
rajue podatke iz tabele.
Upotreba obrazaca
Obrasce treba kreirati tako da omoguavaju komforan rad krajnjem kori-
sniku. Jedna od vanih stvari u obezbeivanju komfornog rada jeste i redos-
led popunjavanja polja u obrascu. Veina obrazaca se projektuju kao simu-
lacija popunjavanja papira ili starog informacionog sistema na koji su opera-
teri navikli. Kontrole u obrascima imaju svojstvo Tab index koje olakava
kretanje kroz ove kontrole pomou tastera TAB ili ENTER. Pomou svojstva
Tab index mogue je svakoj kontroli dodeliti broj, koji predstavlja redosled
selektovanja kontrole u obrascu. Za prvi objekat koji elimo da bude aktivan,
postaviemo svojstvo Tab index na 0, za sledei 1 itd. Bolji nain je da kon-
troli, za koju elimo da bude poslednja aktivna, dodelimo Tab index 0, zatim
isti Tab index predzadnjoj, i sve tako do kontrole za koju elimo da bude pr-
va aktivna. Poto dve kontrole ne mogu imati isti Tab indeks, poslednja kon-
trola kojoj smo dodelili 0 ostae sa tim Tab indexom, dok e se ostali Tab
indexi automatski inkrementirati za 1. Na ovaj nain kontrola kojoj smo prvoj
dodelili Tab index 0, imae najvei Tab index i bie poslednja aktivna. Ko-
mandna dugmad osim miem mogu se aktivirati i pomou tastera ENTER, ili
preko definisanih preica. Ove preice predstavljaju brz nain da se izvri
akcija koju aktivira komandno dugme. Preica se definie u okviru svojstva
dugmeta Caption, dodavanjem znaka & ispred slova u natpisu dugmeta.
Kada se u radnom reimu obrasca pritisne kombinacija tastera ALT i datog
slova, komandno dugme e biti aktivirano, isto kao da smo na njega kliknu-
li.
8. Ispred toga polja dodamo labelu na kojoj pie Ukupan broj sati na
projektima:
9. Ako na glavnom obrascu izaberemo radnika iji je IDBR 5692, pritis-
kom na dugme UEE otvara se obrazac na slici 5.26., koji prika-
zuje uee ba tog radnika na projektima. Na ovom obrascu u slo-
bodan zapis moemo dodati radnika na jo neki projekat (na primer
100). Nee biti dozvoljeno dodati radnika na projekat na kome ve
radi (u ovom primeru 200 i 300), jer je atribut BRPROJ deo primar-
nog kljua tabele UCESCE zajedno sa atributom IDBR, a klju ne
moe imati duplikate.
12. Znai u levom delu prozora izaberemo Forms - All Forms, a zatim ob-
razac koji je potreban (frmRadnikUcesce). Nakon toga u srednjem
prozoru biramo objekat tog obrasca, a to je IDBR. Na kraju ovog pos-
tupka u delu za prikaz izraza dobija se
[Forms]![frmRadnikUcesce]![IDBR], ime je realizovano da podra-
zumevana vrednost za IDBR radnika u povezanom obrascu bude
ona koja je izabrana na glavnom.
Slika 5.30 Izbor akcije koja se deava nakon pritiska na komandno dugme
SELECT UCESCE.BRPROJ,UCESCE.IDBR,RADNIK.IME,
RADNIK.BROD, RADNIK.BRSATI, UCESCE.FUNKCIJA
o radnicima koji rade na bilo kom projektu, bez obzira koji je projekat ak-
tivan na obrascu,
4. da bi to eliminisali potrebno je uneti izvesne promene. Poto se obrazac
frmProjekatRadnik bazira na istoimenom upitu promenu emo uraditi na
upitu,
[FORMS]![frmPROJEKAT]![BRPROJ] .
6. nakon ovoga upit ProjekatRadnik dobija izgled u QBE-u kao na slici 5.34,
mo, VBA ili Visual Basic ili Visual C++. Ovi programski jezici takoe imaju
veliki izbor gotovih kontrolnih objekata poput ovih koji postoje u Accessu. U
tom sluaju Access se koristi samo kao sistem za upravljanje bazom poda-
taka (Relational Data Base Management System) u kome je logiki model
informacionog sistema, koji je dobijen projektovanjem, fiziki realizovan (fizi-
ki model IS).
Aplikacija, odnosno poslovna logika, direktno se pravi korienjem ala-
ta i mogunosti koje pruaju ovi programski jezici. Ovakve izvedbe aplikacija
imaju svojih prednosti, posebno u pogledu bezbednosti podataka, jer u tom
sluaju korisnik nema direktan pristup tabelama (i podacima), ve koristi
strogo propisane i kontrolisane postupke unosa i izmene podataka.
O ovim, a i drugim mogunostima upotrebe programskih jezika za pro-
gramiranje aplikacija baza podataka bie kasnije vie rei.
Kreiranje izvetaja
Ovde e biti dat kratak pregled ostalih mogunosti koje su date korisniku
za kreiranje izvetaja u MS Accessu:
trolu nad procesom kreiranja izvetaja ili iz nekog drugo razloga ova
opcija nam stoji na raspolaganju,
Blank Report prazan izvetaj. Opcija veoma slina prethodnoj sa-
mo to nas podrazumevano vodi u Layout umesto u Design View,
Labels vrlo korisna opcija kada je potrebno tampati pozivnice za
neki dogaaj na osnovu spiska gostiju koji se nalazi u bazi podataka.
Standardni formati pozivnica/kartica su ve ponueni, ali se te podra-
zumevane vrednosti mogu menjati po potrebi.
2. Jo jednom, od ponuenih opcija iz odeljka Reports izaberaemo opciju
Report Wizard zato to se koristi u najveem broju sluajeva.
3. Otvara se novi prozor gde u listi Tables/Queries biramo tabele koje e-
mo koristiti u izvetaju (slika 6.2). Najpre biramo tabelu ODELJENJE, jer
je ona u relaciji 1:N u odnosu na tabelu RADNIK, ali nije neophodno.
Atributi koji e
biti prikazani u
izvetaju
Padajua lista
za biranje izvora
podataka
taka najpre po prvoj tabeli (by ODELJENJE, slika 6.3 levo), ili po drugoj
(by RADNIK, slika 6.3 desno). Izaberemo opciju by ODELJENJE.
8. Napomena: Ovaj primer prvo uraditi biranjem opcije by ODELJENJE i
izvetaju dati ime repRadniciPoOdeljenjima.
Slika 6.3 Access nudi logina reenja za izgled izvetaja, vodi nas dalje i daje
mogunost povratka na prethodni korak radi promene izbora
11. Sledei okvir za dijalog, prikazan na slici 6.5, nudi izbor polja po kojim e
izvetaj biti ureen (sortiran). Kliknemo na Combo box, i u padajuoj listi
izaberemo polje po kome hoemo da izvetaj bude sortiran. U ovom pri-
meru se zahteva ureivanje po poslovima, pa izaberemo atribut POSAO.
12. Sledei prozor, koji je prikazan na slici 6.6, nudi mogunost izbora izgle-
da izvetaja (vizuelni prikaz). Kada se odluimo za neku od ponuenih
opcija pritisnemo dugme Next.
13. U sledeem prozoru biramo stil kako e izvetaj izgledati, slino kao kod
obrazaca. Naravno u poetku treba pustiti arobnjaka da radi to vie,
dok ne ovladamo svim opcijama. Dakle, treba prei na sledei korak pri-
Uoavamo da, iako sadre iste podatke, ova dva izvetaja (slika 6.7 i
slika 6.8) nisu identina. Naime, u drugom sluaju se za svakog radnika (ne-
potrebno) ponavljaju imena odeljenja i mesta u kojima rade.
Paleta kontrola Controls slina je kao i kod kreiranja obrazaca ali emo na
izvetajima vrlo retko upotrebljavati bilo ta osim Text Boxa i Labele.
zaglavlje BROD (header) sadri polje za unos teksta (Text box) u koji
se upisuje vrednost polja BROD,
odeljak Detail sadri vrednosti atributa vezane za odreeno odelje-
nje, a
podnoje BROD (footer) sadri sumu i procenat plata za pojedino
odeljenje.
Znai prvo e biti ispisano odeljenje 10 (BROD header); zatim ime, IDBR
i plata radnika iz odeljenja 10 (u odeljku Detail); a onda suma plata svih rad-
nika odeljenja 10, kao i koliko je to procenata od ukupne sume za plate rad-
nika iz svih odeljenja (odeljak BROD footer).
Poto je grupisanje uraeno po broju odeljenja, nakon podataka vezanih
za odeljenje 10, prelazi se na sledeu grupu podataka vezanu za odeljenje
20 i tako dalje redom.
PRIMER 4: U ve kreirani izvetaj repPlate dodati podatak o poslu
koji radnik obavlja.
Sortiranje i grupisanje
U prethodnom primeru uraeno je grupisanje po atributu BROD, koje je
generisao arobnjak. Naravno i to se moe uraditi u reimu projektovanja,
tako to na Design kartici, u Grouping & Totals delu biramo opciju Group
and Sort i na dnu Accessovog prozora dobijamo okvir kao na slici 6.16.
3. U polju za izbor tabele ili upita biramo upit qryIzvoz (slika 6.19.),
i izaberemo sva polja toga upita.
Ponekad je potrebno napraviti izvetaj koji nee prikazivati npr. sve po-
datke o radnicima, ve samo o radnicima koji rade u odreenom odeljenju,
ali jednom su potrebni podaci o radnicima jednog, drugi put o radnicima dru-
gog odeljenja, tako da za to treba omoguiti da se na osnovu izabrane vred-
nosti prikazuju odgovarajui podaci.
tampanje izvetaja
Krajnji cilj izrade izvetaja je obino njihovo tampanje na papiru. Kada
se zavri sa izradom izvetaja preporuuje se provera njegovog izgleda u
pogledu Print Preview.
Podeavanje margina izvetaja radi se izborom opcije Margins iz Page
Size dela Print Preview kartice. Ovo podeavanje se odnosi samo na aktivni
izvetaj, a ne i na druge izvetaje. Ako se potvrdi polje Print Data Only,
tampaju se samo podaci iz izvetaja, a izostavlja se sve to je u odeljcima
Report Header/Footer, kao i u Page Header/Footer.
Izrada aplikacija
Veba 9. Obrasci, izrada, izmena i upotreba obrazaca u mani-
pulisanju podacima.
Veba 10. Izvetaji za prikaz podataka iz tabela ili na bazi upita i
prikazivanje izraunatih veliina.
Veba 11. Reagovanje aplikacija na akcije.
Vebe i zadaci za samostalan rad
155
relacija izmeu tabela..................... 46 uvoz (Import) ................................... 34
relacije (Relationships) ................. 35 tabelarni prikaz (Datasheet) ...........37
relaciona baza podataka.............. 11 tabelarni prikaz (Table Datasheet)..44
relacioni model ............................... 12 Text Box .......................................114
relacioni sistem za upravljanje bazama THETA JOIN...................................64
podataka RSUBP.......................5 Toolbox .........................................112
Relational Data Base Management ugnjedeni upit (Subquery) .............86
Systam ..........................................5 ugnjedeni upiti ...............................64
Required........................................ 89 ugraene funkcije (Built-In-Functions)38
RIGHT OUTER JOIN ..................... 70 ugraivanje (Embending)..................5
select .............................................. 55 unakrsni, crosstab upit ....................55
SELECT ......................................... 56 Union upiti .......................................87
select upit ....................................... 55 unos podataka ................................39
SELF JOIN..................................... 64 unutranje spajanje.........................64
skrivanje kolona.............................. 43 Update.............................................84
sloeni klju .................................. 23 upit ..................................................55
sortiranje....................................... 144 akcioni .............................................. 55
sortiranje, ureivanje zapisa .......... 44 kreiranje ........................................... 55
Spajanje po jednakosti (INNER JOIN) parametarski..................................... 55
................................................... 65 parametarski..................................... 91
spajanje tabela ............................... 48 pronai duplikate (Find Duplicates
Spajanje tabela sa samom sobom Query Wizard) ............................. 33
(SELF JOIN) .............................. 70 select upitni blok............................... 55
spajanje tabele ............................... 64 SQL specific ..................................... 55
spoljnje spajanje............................. 64 unaksni crosstab .............................. 55
Spoljnje spajanje (OUTER JOIN)... 68 upit (Query).....................................55
spoljnji klju .................................... 13 upit na bazi primera ........................56
SQL (Structured Query Language) ...6 upit nad vie tabela .........................64
SQL specific ............................. 55, 88 upit sa izraunatim vrednostima .....73
StDev.............................................. 74 ureivanje, sortiranje zapisa ...........44
strani klju ...................................... 23 uvoz tabela (Import) .......................34
struktura relacionog modela..... 12, 14 Var...................................................74
Subquery ........................................ 86 VarP ................................................74
svojstva kontrola (Properties)...... 112 veza
svojstva obrazaca (Properties)..... 112 tip 1:1, 1:N i N:M............................... 46
System ID..........................................8 tipa 1:N (jedan prema vie), ............. 23
System.mdw ....................................8 veza, relacija izmeu tabela............46
Tab index..................................... 119 Visual Basic for Applications VBA.....5
tabela vrsta izvora reda, poreklo reda (Row
prirodno spajanje ..............................48 Source Type) .............................31
spajanje ............................................48 Where .............................................74
tabela WHERE.....................................60, 67
kreiranje, izrada ................................21 za LEFT OUTER JOIN ...................69
relacija izmeu tabela .......................46 zamrzavanje kolona ........................43
runo kreiranje tabele .......................18 zero-length string..........................78
tabelarni prikaz (Datasheet View)....29 enjanje podataka (Update) ...........84
tabelarni prikaz (Datasheet) .............37
156
Sadraj
1. UVOD U MS ACCESS ............................................................................................. 1
2. OSNOVNE KARAKTERISTIKE MS ACCESSA.................................................. 7
DATOTEKE MS ACCESS BAZA PODATAKA ................................................................................ 7
ELEMENTI MS ACCESS BAZA PODATAKA ................................................................................. 8
3. KREIRANJE BAZE PODATAKA........................................................................ 11
POJAM BAZA PODATAKA ........................................................................................................ 11
KREIRANJE BAZE PODATAKA .................................................................................................. 14
MOGUNOSTI IZRADE TABELA U MS ACCESSU ...................................................................... 17
IZBOR PRIMARNOG KLJUA .................................................................................................... 33
PREUZIMANJE TABELA I POVEZIVANJE SA POSTOJEIM TABELAMA ........................................ 34
UNOS PODATAKA.................................................................................................................... 37
UREIVANJE I IZDVAJANJE ZAPISA U TABELARNOM PRIKAZU ................................................. 44
KREIRANJE VEZA-RELACIJA IZMEU TABELA ......................................................................... 45
4. UPITI ....................................................................................................................... 54
IZRADA SELECT UPITA ............................................................................................................ 54
UPITI NAD VIE TABELA I UGNJEDENI UPITI .......................................................................... 63
RAD SA NULL-VREDNOSTIMA I UPOTREBA NZ FUNKCIJE ........................................................ 76
AKCIONI UPITI ........................................................................................................................ 79
SQL-SPECIFIC UPITI ................................................................................................................ 85
PARAMETARSKI UPITI ............................................................................................................. 90
5. OBRASCI ................................................................................................................ 96
KREIRANJE OBRAZACA ........................................................................................................... 96
KORIENJE PROZORA ZA PROJEKTOVANJE OBRAZACA ........................................................ 107
IZMENA OBRAZACA U REIMU PROJEKTOVANJA ................................................................... 112
UPOTREBA OBRAZACA ......................................................................................................... 117
IZRADA OBRAZACA NA BAZI UPITA ....................................................................................... 122
6. IZVETAJI............................................................................................................ 130
KREIRANJE IZVETAJA .......................................................................................................... 130
OPIS IZGLEDA PROZORA ZA PROJEKTOVANJE I NJEGOVIH ODELJAKA .................................... 141
157
KREIRANJE IZVETAJA POVEZANIH SA OBRASCEM IZRADA IZVETAJA NA OSNOVU
PARAMETARSKOG UPITA ................................................................................................ 146
158