skola accessa

Upload: blacksnakeze

Post on 06-Jul-2015

643 views

Category:

Documents


8 download

TRANSCRIPT

Uvodna re ................................................................................................................................3 as 1 - Istorija, razvoj i karakteristike programa ..............................................................4 Baze u Accessu ..................................................................................................................4 Microsoft Access ................................................................................................................4 Objekti baze .......................................................................................................................4 Tabele..................................................................................................................................4 Upiti .....................................................................................................................................5 Forme (formulari, obrasci ili maske za unos i pregled)..............................................5 Izvetaji ..............................................................................................................................6 Data Access Pages ............................................................................................................6 Makroi i VBA.......................................................................................................................7 Rezime asa 1....................................................................................................................7 as 2 - Pokretanje programa, pripremne radnje, kreiranje prve tabele ........................8 Planiranje osnove..............................................................................................................9 Planiranje tabela................................................................................................................9 Tabela 'itaoci'...................................................................................................................9 Tabela 'Knjige' .................................................................................................................10 Tabela 'Biblioteka' ...........................................................................................................10 Tabela 'Poslovanje' .........................................................................................................11 Rezime asa 2..................................................................................................................11 as 3 - Kreiranje tabele (nastavak)....................................................................................12 Rezime asa 3..................................................................................................................14 as 4 - Povezivanje tabela ...................................................................................................15 Primer................................................................................................................................18 Rezime asa 4..................................................................................................................19 as 5 - Unoenje prvih zapisa .............................................................................................20 Rezime asa 5..................................................................................................................21 as 6 - Kreiranje elektronskih obrazaca - formi...............................................................22 Prva forma - itaoci........................................................................................................22 Rezime asa 6..................................................................................................................24 as 7 - Kontrole u formi .......................................................................................................25 Doga aji (eng. Events)......................................................................................................26 1. Makro program ...........................................................................................................27 2. VBA program...............................................................................................................27 Rezime asa 7..................................................................................................................28 as 8 - Pretraga u formi; komandna tabla aplikacije ......................................................29 Forma 'Knjige'..................................................................................................................29 Pretraga ............................................................................................................................30 Komandna tabla ..............................................................................................................32 Izgled komandne table...................................................................................................32 REZIME ASA 8 ...............................................................................................................34

1

as 9 - Funkcije komandne table, kreiranje izvetaja.....................................................35 Prvi izvetaj......................................................................................................................36 REZIME ASA 9 ...............................................................................................................38 as 10 - Izvrni moduli aplikacije .......................................................................................39 Kreiranje modula (forme) ..............................................................................................39 Podforma (podmaska ili podobrazac) ..........................................................................41 Forma sa podformom .....................................................................................................42 Doga aji i programi na modulu ....................................................................................43 Filtriran izvetaj...............................................................................................................44 Dodatne napomene.........................................................................................................45 REZIME ASA 10.............................................................................................................45 as 11 - Dodatno ure enje programa................................................................................46 Kompresija i arhiviranje programa ..............................................................................49 REZIME ASA 11.............................................................................................................49 as 12 - Zavrne radnje ure enja programa....................................................................50 Pozdravni ekran...............................................................................................................53 Zatita baze - Da li je mogue napraviti da naa baza bude samostalan program? ..........................................................................................................................53 Rad programa sa dve ili vie radnih stanica mree .................................................54 REZIME ASA 12.............................................................................................................54 as 13 - Zavrne napomene ................................................................................................55

2

Uvodna reNa ideju kolege Dragana Grbia, pokrenuli smo kolu Praktikuma, poinjui sa kolom Accessa. Cilj ovog kursa je da poetniku omogui brzo savladavanje Accessa korienjem jednog dela njegovih mogunosti i prednosti nad ostalim programima za upravljanje bazama. Trudiemo se da termin "brzo" ne predstavlja i kuso, ve da kola bude sveobuhvatna i kvalitetna uz smernice za dalje napredovanje. Tako e, termin brzo ovde znai da se NEE koristiti arobnjaci (Wizards), sem na jednom mestu. esto mi postavljaju pitanje: "Koju knjigu preporuujete za Access?". Na ovo pitanje sam do sada najee slegao ramenima ili sam preporuivao vie knjiga iz raznih izvora. Neki autori odu preiroko, pa se u knjizi od 1200 strana i sami izgube. Da li je u pitanju ekonomski interes u vidu gabarita knjige ili previe nebitnih detalja, svejedno. Drugi autori objave sjajnu knjigu na engleskom jeziku koja "umenou" prevodica i njegovom tenjom da prevede to vie stranih izraza na srpski jezik izgubi na kvalitetu, jer hteli da priznamo ili ne, mnogi korisnici raunara vladaju dobro engleskim jezikom i veliki broj pojmovo je nedvosmislen kada je reen iskljuivo na engleskom jeziku. Nedavno je CET objavio (a Praktikum prikazao) sjajnu i kompletnu knjigu koja temeljno "pretresa" Access 2000, Specijalno izdanje - Vodi kroz Access 2000autora Rogera Jenningsa, te mogu nju preporuiti. Nivo knjige je poetni/srednji. Za praenje kursa preporuujem verziju Accessa 2000. Ako se ipak opredelite za verziju 97, pojedina mesta gde se opisuju opcije koje postoje samo u Accessu 2000 posebno e biti napomenuta uz nain kako se ista operacija moe izvesti i u Accessu 97. kola Accessa e, nadam se, biti razumljiva (i u obimu kraa), pa vas molim da se javite sa primedbama i sugestijama kako bismo kroz revizije mogli da je napravimo jo boljom, te da nam ne zamerite na eventualnim slovnim grekama. Dinamika objavljivanja lekcija bi trebala da bude na svake dve nedelje po jedna, to neu obeati, jer se ona pie volonterski i u slobodnom vremenu. Ono to mogu da obeam je kompletnost i razumljivost. Verujem da se najbolje ui ako program savladate sami. Ovakav nain uenja je veoma spor, pa predlaem da vam ova kola bude samo jedna smernica za dalji napredak. elimo vam ugodan boravak na Praktikumu i puno uspeha u savla ivanja mastodonta Accessa! Za Praktikum na Webu, Branislav Mihaljev

3

as 1 - Istorija, razvoj i karakteristike programaBaze podataka su svojevrsne organizovane "elektronske kartice", kolekcija informacija vezanih za odre eni subjekt, namenu ili pojavu, kao to su praenje narudbina kupaca, vo enje stanja magacina ili odravanje muzike kolekcije u prividnom tabelarnom izgledu.

Baze u AccessuZa razliku od drugih programa za rad sa bazama podataka kod kojih se svaka tabela nalazi u posebnoj datoteci (najee dbf tipa), kompletna Access baza se nalazi u tano jednoj datoteci (datoteka ima ekstenziju MDB, odnosne MDE ili ADP). O razlikama izme u ovih tipova datoteka emo kasnije rei neto vie. Bazu podataka ne ine samo organizovane tabele kao nosioci podataka, ve je to kompletan program koji moe proraunavati, filtrirati podatke, tampati izvetaje itd. Programe slinog tipa moete najee sresti u preduzeima, bankama, potama, arhivama, i praktino reeno - svuda.

Microsoft AccessMicrosoft Access je program za rad sa bazama podataka firme Microsoft. Aktuelna verzija nosi oznaku 2000, dok je i prethodna verzija 97 u irokoj upotrebi. Za Microsoft Access proizvo a tvrdi da je najpodavaniji program za rad sa bazama podataka svih vremena, sa desetinama miliona prodatih kopija. Access 2000 je ovog asa najnovija, esta verzija i dolazi u paketu Microsoft Office 2000 Professional, a sam program je imao tri 16-bitne verzije i tri 32-bitne verzije. U trenutku objavljivanja ovog asa, u pripremi je verzija Accessa za MS Office 10 ija beta verzija je ve u rukama probranih testera. U poetnim verzijama nesavren, program je danas prerastao u najozbiljnijeg konkurenta za razvoj aplikacija kod kojih je osnova baza podataka. Dok se nekada programirala svaka operacija nad bazom, u Accessu je veina stvari automatizovana i uz oslanjanje na usluge operativnog sistema se esto do gotove, jednostavne baze, dolazi koristei iskljuivo rad sa miem bez napisane ijedne linije programskog koda. U Accessu se svaki podatak ili polje tretira kao objekat koji ima skup osobina, te kaemo da je Access objektna baza podataka i da se formiranje baze naziva objektno programiranje baze. U narednim lekcijama proi emo put od samog poetka do kraja kreiranja jedne upotrebljive baze podataka, prilago avajui je pri tom svojim specifinim potrebama. U toku kursa emo razvijati aplikaciju za poslovanje jedne biblioteke, koja bi se uz minorne izmene mogla prilagoditi videotekama i CD klubovima. Za praenje kursa neophodno je predznanje u radu sa operativnim sistemom Windows verzije 95, 98 ili Me, odnosno Windowsom NT ili 2000, poznavanje termina koji se koriste i u drugim programima (npr. meni, taster, klik, selektovanje, prevlaenje, minimizovanje, maksimizovanje, radna povrina, itd).

Objekti bazeRazvijena baza podataka u Accessu se sastoji od sledeih elemenata, tj. objekata: tabele, upiti, maske i izvetaji; a moe sadrati: Data Access strane, makroe i/ili VBA module (Visual Basic for Application programski jezik za programiranje operacija u Office aplikacijama).

Tabele

4

Tabele su nosioci podataka. Podaci se mogu nalaziti iskljuivo u tabelama. Svaka tabela se sastoji od kolona i redova, dok se presek kolone i reda naziva polje. Polje moe biti sledeeg tipa: tekst, broj, datum/vreme, logiko polje, memo polje (polje u koga se moe uneti tekst proizvoljne veliine), polje za unos brojeva u novanom formatu, posebno polje u kome se automatski po zapoetom unosu sloga inkrementira broj (polje AutoNumber), hiperlink polje (pokaziva na adresu na Internetu), OLE objekt polje (polje sa objektom povezanim iz drugog programa) i Look Up polje (polje iji prikazani sadraj se nalazi u drugoj tabeli). Pri kreiranju baze podataka veoma je bitno postaviti tip polja, jer su brzina rada, organizovanost podataka i veliina same baze u direknoj vezi sa ispravno postavljenim tipom polja. Npr. za datum tipa 01/01/2001 tip polja emo postaviti na Date/Time (datum/vreme); za iskljuivo numerike vrednosti postavljamo tip polja na Number; za kombinovani alfanumeriki unos tip polja postavljamo na Text kod koga se predvi a maksimalni broj karaktera u unosu, itd. Baza podataka moe (esto i treba) da sadri vie tabela koje se preko relacija me usobno povezuju. Npr. itaoce emo drati u jednoj tabeli, knjige u drugoj, a iznajmljivanja/vraanja knjiga u treoj. Relacije se uspostavljaju samo me u istovetnim podacima, a najee izme u ifara (npr. ifru italaca u tabeli itaoci_osnovni_podaci i ifru italaca u tabeli izdavanje_knjiga valja me usobno povezati relacijom jedan prema vie - jedan italac moe uzeti vie knjiga, ali se jedna knjiga ne moe nalaziti kod vie italaca istovremeno). Na ovaj nain se izbegava viestruki unos podataka za itaoca pri svakoj njegovoj poseti biblioteci, a mogunost greaka pri unosu adrese ili naziva itaoca je praktino anulirana.

Upiti

Upiti su posebni pregledi kojima se postavlja neki upit nad tabelom i koji izdvajaju podatke za pregled na ekranu ili tampanje putem izvetaja. Npr. ukoliko elimo pregled svih narudbina ostvarenih posle meseca januara u kriterijum za upit emo upisati >31.01.2000. Sem izdvajanja podataka postoje i posebni upiti koji mogu kreirati tabelu koristei drugu tabelu ili vie drugih tabela nad kojom je postavljen upit, odnosno mogu brisati podatke iz postojee tabele tako e po nekom kriterijumu. Postoje i drugi koje emo tako e kasnije razmotriti. Za sada ih samo nabrojimo: Update upit (proraunava podatke i rezultat upisuje u polje tabele, npr. ukupno=cena*koliina upisuje rezultat u polje ukupno), Union upit, Crosstab upit (proraun nad prividnom matricom) i Append upit koji dodaje slogove u postojeu tabelu. Upiti mogu filtirati podatke ne samo iz jedne tabele ve se to moe initi iz vie tabela ili ak iz jednog ili vie drugih upita. Tako e mogu istovremeno filtrirati podatke po vie kriterijuma.

Forme (formulari, obrasci ili maske za unos i pregled)

5

Forma je samo "pogled" na tabelu u oveku prihvatljivijem izgledu. Nad formiranom tabelom koja sadri podatke o nekom itaocu formiramo masku za unos koja ima izgled papirnog obrasca - kartice, te manipulant ne mora da poznaje rad sa Accessom, nego samo koristi elektronske obrasce (maske) i unosi podatke putem tastature, ba kao to je to ranije inio olovkom. Forma za unos podataka moe sadrati slike, komandne tastere (pritiskom na njih se aktivira neka komanda kao to je tampanje trenutne kartice ili prelaz na drugu formu), moe sadrati logika polja predstavljena putem prekidaa, moe sadrati podformu itd. Forma ne mora da sadri niti jedno polje za unos ili prikaz podataka. Ona jednostavno moe biti pozdravni ekran vae aplikacije sa prigodnim tekstom i slikom, koje se sama posle isteka nekog vremenskog intervala zatvara. Takve forme mogu uzeti oblik pozdravne slike koja se pojavljuje prilikom starta nekog veeg programa, kao to se to doga a u programima paketa Microsoft Office.

Izvetaji

Izvetaji su elektronski oblik klasinih papirnih obrazaca koje moemo gledati na ekranu ili tampati na papir. Podaci prikazani u izvetaju mogu biti izvedeni iz tabela ili iz upita (filtrirani podaci). Dizajniranje izvetaja je veoma slino dizajniranju formi. Kada budete savladali dizajniranje formi (odnosno maski ili elektronskih obrazaca, kako vie volite), gotovo ste ovladali dizajniranjem izvetaja. Dizajniranje i kreiranje izveaja je najzgodniji deo posla - vaa baza je gotova i ispravno radi, stupa na scenu vaa mata i kreativnost uz potovanje tipografije slaganja dokumenata. Tipografija i pravila slaganja slubenih dokumenata su davno definisane stvari. Ako uspete da na ete neku knjigu ija je tematika tipografija, a napisana je u vremenu dok nisu postojali raunari, obavezno je proitajte. Kod nas ipak postoji malo vie slobode nego na zapadu. Navodno, slubena dokumenta bi trebala da se piu Courier fontom (dakle nalik pisaoj maini), veliine 12 uz levo uravnanje. Postavlja se pitanje - pa emu onda raunari?

Data Access Pages

6

Spona izme u baze i Internet Explorera je izvedena pomou Data Access Strana. Za razliku od Accessa 97, gde se pogled na podatke iz baze moe izvesti eksportovanjem podataka u HTML kod, Data Access strane u Accessu 2000 predstavljaju dinamiku vezu izme u baze i HTML koda. U razvijenoj aplikaciji kojoj se pristupa preko Internet Explorera moete pristupati podacima u tabelama MDB baze, menjati ih ili pregledati. Za intranet okruenje je vama na volji da li ete bazi pristupati kroz front-end deo ili preko Data Access strana i Internet Explorera. aplikacije

Makroi i VBA

Makroi i VBA predstavljaju dva naina za programiranje baze podataka pisanjem programa. esto se javlja potreba za formiranjem funkcija koje ne postoje u Accessu, ili se grupe funkcija moraju vezati u jedan sklop, te se za razvijanje i automatizovanje baze podataka mora pristupiti pisanju programa. Makroima se iz konanog skupa funkcija i naredbi automatizuje rad baze; me utim, njihovo korienje se u novijim aplikacijama izbegava, jer se puna sloboda i funkcionalnost ostvaruju tek u VBA. Makroi, zapravo, postoje iskljuivo zbog kombatibilnosti sa prethodnim verzijama Accessa. O programiranju emo mnogo vie i detaljnije govoriti kasnije, jer predstavlja najvaniji deo funkcionalne aplikacije.

Rezime asa 1Access je moan i intuitivan program za rad sa bazama podataka. Poto je izuzetno rasprosranjen, njegovo poznavanje moe predstavljati kljunu osobinu za savladavanje rada sa bazama podataka i kasniji napredak ka SQL Server bazama, bazama na Webu i slino, odnosno ka nivou poznavanja (jo bolje: znanja) koji poslodavci dobro plaaju. Sa objektima baze emo se upoznati detaljno na narednim asovima kreiranjem aplikacije, a ve na sledeem asu emo obraditi startovanje programa i kreiranje prve tabele. as 2 - Pokretanje programa, pripremne radnje, kreiranje prve tabele

7

as 2 - Pokretanje programa, pripremne radnje, kreiranje prve tabeleMicrosoft Access se pokree kao i svaki drugi program u Windowsu - klikom (odnosno dvoklikom) na ikonu programa.

Posle pozdravnog ekrana aplikacije, pojavljuje se ekran na kome moete birati jednu od tri opcije: kreirati novu bazu (Blank database), iskoristiti jedan od arobnjaka za automatizovano kreiranje baze biranjem jednog od predefinisanih tipova baza (Access database wizards, pages, and projects) ili otvoriti ve postojeu bazu (Open an existing file). Poto kreiramo novu aplikaciju, biramo prvu opciju Blank database.

Posle klika na OK, sledi prvo iznena enje - program trai da snimimo datoteku, iako jo nita nismo radili! Kod programa za rad sa bazama podataka integritet podataka je na prvom mestu. To znai da svaki podatak koji unesete, izmenite ili obriete trenutno zapisuje na disk, a naredba Save pri tom nema isto znaenje kao u drugim programima. Aktiviranjem naredbe Save snima se oblik prozora u kome radite, a ne sami podaci! Otuda zahtev za snimanjem datoteke ne predstavlja iznena enje, ve razumnu pojavu. Ime datoteke e biti Biblioteka, a direktorijum u kojem je snimamo neka bude proizvoljan - a najbolje namenski, kreiran upravo za nau bazu.

8

Posle kreiranja datoteke, pojavljuje se prozor baze (u statusnoj liniji prozora e pisati Biblioteka: Database) sa komponentama nabrojanim u prvom asu (Tables, Queries, Forms, Reports, Macros i Modules).

Kreiranje baze poinje od kreiranja tabela i stoga polazimo loginim redosledom.

Planiranje osnoveIzgradnja kue poiva od temelja. Izgradnje baze poinje od osmiljavanja tabela i njihovog povezivanja. Za kreiranje programa Biblioteka za poetak emo osmotriti celine - podatke koje treba grupisati u zasebnim tabelama. Svaka biblioteka ima svoje itaoce. Prva tabela e se stoga zvati itaoci. Sama biblioteka ima svoje podatke kao to su adresa, telefon, ime direktora i slino. Druga tabela e se zvati Biblioteka. Sama biblioteka ne bi bila to to jeste da nema knjiga. Za knjige je karakteristian inventarni broj, naslov knjige, autor itd. Trea tabela e se shodno tome zvati Knjige. Interakcija izme u biblioteke i italaca se ogleda u izdavanju i vraanju knjiga i plaanju lanarine. etvrtu tabelu emo kreirati iz aktivnosti interakcije biblioteke i italaca (etvrta tabela - Poslovanje), a zapis o lanarini emo ipak uvati u tabeli itaoci. Zato zasebne tabele? Jednostavno - zbog izbegavanja dupliranja podataka. Podaci kao to su telefon, adresa, ime i prezime, datum uplate lanarine za itaoca su jedinstveni i ne postoji niti jedan razlog da se oni ponavljaju. Ako bi pak kreirali samo jednu tabelu, u nju bi morali da unosimo ime i prezime itaoca (njegovu adresu, broj telefona, datum plaanja lanarine...) i naslov knjige za svako izdavanje i vraanje (sa njegovim autorom, godinom izdanja, izdavaem...), te bi ovim nepotrebno duplirali podatke. Jo gore: veoma su mogue greke u kucanju - nikad ne bismo bili naisto koliko je knjiga koji italac proitao, odnosno koliko knjiga uopte postoji u biblioteci. Tabeli itaoci emo na kraju pridruiti i univerzalni identifikacioni broj, broj koji e se upisivati u tabelu Poslovanje. Sem toga, tabeli knjige emo pridruiti tako e nezavisan univerzalni identifikacioni broj, nalik ono to smo ranijih godina vi ali po bibliotekama - inventarni broj. Operatoru u biblioteci je mnogo lake da na vau karticu upie broj knjige koju ste uzeli, umesto da pie pun naslov knjige.

Planiranje tabelaPoto smo stvorili sliku o potrebnom broju tabela i njihovoj nameni, moemo prei na sledei korak definisanje tabela. Broj tabela smo ve utvrdili i on iznosi etiri (itaoci, Biblioteka, Knjige i Poslovanje). Za svaku tabelu valja definisati polja i adekvatne tipove podataka koji se mogu u njih unositi:

Tabela 'itaoci'Naziv polja ID_Citalac Prezime_Ime Tip polja Number Text Podvrsta / veliina polja Integer (*) 35 u isto polje upisujemo i ime i prezime Adresa Text 30 broj karaktera je restriktivno postavljen, ovo se kasnije moe poveati po potrebi; ukljuuje naziv ulice i broj kue Mesto Text 30 ukljuuje potanski broj i naziv mesta Telefon Text 15 tip je tekst zbog interpunkcije Komentar

9

formata xxx / AAA-BBBB Dat_rodj Date Short Date (**) potrebno za statistiku obradu starosne strukture italaca Dat_upisa Date Short Date tako e potrebno za statistiku obradu Dat_clan Date Short Date datum plaanja lanarine; potreban za uvid u finansijsko poslovanje i obavetavanje italaca o isteku lanarine Napomena Memo (***)

(*) Integer je tip polja Number koji omoguava upis brojeva od -32.767 do 32.767 a kako identifikacioni broj ne moe ii u minus smatramo tip polja 0 do 32.767; ako e biti vie italaca od tog broja, stavljamo tip Long Integer za brojeve od 0 do 2.147.483.648 (**) Short Date predstavlja prikaz datuma u obliku dd/mm/yy (***) Memo je tip polja koji ne uzima fiksnu memoriju ve zavisi od broja ukucanih karaktera

Tabela 'Knjige'Naziv polja ID_Knjiga Tip polja Number Podvrsta / veliina polja Long Integer Komentar Bie mnogo knjiga, treba nam vie od 32.767 Autor Naslov Izdavac God_Izd Zanr Text Text Text Date Text 30 40 30 yyyy 1 format godine sa etiri cifre usvojiemo oznake kao: f - fantastka, p - poezija i sl. Status Text 1 konvencija:

r - raspoloziva, n - nije vraena z - nije za izdavanje...

Tabela 'Biblioteka'Naziv polja Naziv Adresa Mesto Telefon Direktor Tip polja Text Text Text Text Text Podvrsta / veliina polja 50 40 35 15 30 Komentar

10

Tabela 'Poslovanje'Naziv polja ID_Zapis ID_Citalac ID_Knjiga Dat_izd Dat_vr Tip polja Autonumber Number Number Date Date Integer Long Integer Short Date Short Date datum izdavanja datum vraanja Podvrsta / veliina polja Komentar

Rezime asa 2Ovim smo definisali tabele i tipove podataka. Mesta za reorganizaciju ima jo uvek, na primer moemo kreirati tabelu izdavaa, izdvojiti ih u zasebnu tabelu i njih povezati u tabelu knjiga preko ifre izdavaa. Tako e moemo kreirati zasebnu tabelu mesta i u nju upisati sva mogua okolna mesta iz kojih se mogu pojavljivati itaoci. Ove dve tabele namerno neemo kreirati kako biste stekli uvid u prednost odvajanja srodnih podataka u zasebne tabele. Na sledeem asu emo "zasukati" rukave i krenuti na posao kreiranja tabela.

as 3 - Kreiranje tabele (nastavak)

11

as 3 - Kreiranje tabele (nastavak)Trei as se neposredno nadovezuje na drugi, a obra uje kreiranje tabela. Definisane etiri tabele emo prevesti u Accessu razumljiv oblik i pri tome se upoznati sa moguim tipovima podataka. U prozoru baze strana Tables je ve selektovana.

U vrhu ekrana prozora baze se nalaze tri tastera: Open (otvara postojeu tabelu za pregled), Design (izmene u strukturi tabele) i New (kreiranje nove tabele).

Biramo taster New. Od opcija koje se pojavljuju u sledeem prozoru dijaloga koristiemo drugu - Design View.

Sve opcije u ovom prozoru imaju sledea znaenja:

Datasheet View otvara nedefinisanu tabelu sa univerzalnim poljima u koje se mogu unositi podaci, a Access e pokuati sam da postavi tip polja na osnovu unetih podataka; Design View predstavlja pogled na tabelu u prozoru se dizajn. U ovom prozoru zadajemo nazive kolone i adekvatne tipove podataka koji se mogu nalaziti u kolonama, odnosno definiemo broj kolona i tipove podataka; Table Wizard je arobnjak koji e na osnovu vaih odgovora na postavljena pitanja kreirati tabelu; Import Table slui za unos podataka iz ve postojee tabele ili baze. Ovim se podaci kopiraju iz ulazne tabele u novokreiranu tabelu; Link Table postavlja preicu koja pokazuje na drugu tabelu iz otvorene baze sa kojom trenutno radimo ili druge Access baze. Ovim se podaci ne kopiraju niti premetaju, ve se uspostavlja relacija na povezanu (linkovanu) tabelu. Poto smo selektovali opciju Design View i potvrdili izbor klikom na taster OK, otvara se prozor za dizajniranje tabele.

12

Na slici, kolona obeleena brojem 1 predstavlja naziv kolone, broj 2 je tip kolone, a broj 3 je komentar koji se pojavljuje u statusnoj liniji Accessovog prozora. U Field Name preseka prve kolone i reda upisaemo (pratei plan koji smo napravili na prolom asu) tekst ID_Citalac. U drugoj koloni istog reda ukucaemo Number. U koloni broj 3 istog reda staviemo komentar Jedinstveni broj itaoca. Primetimo da se na delu ekrana iznad kojeg pie Field Properties pojavila tabela sa razliitim stavkama. Ako ste ispravno radili, na ekranu ete imati prikaz slian kao na ovoj slici:

Jo jednom da objasnimo ta smo uinili. Zapoeli smo kreiranje tabele i nazivu prve kolone smo dodelili tekst ID_Citalac. Tip polja, kako smo ranije isplanirali, je Number. To znai da e u polje moi da se ukucavaju iskljuivo numerike vrednosti, a sam tip polja emo postaviti na Integer. Na slici, ispod teksta Field Properties, na kartici General prva opcija je "veliina" (odnosno pod-tip) polja. Ovu vrednost emo promeniti na Integer. Postavimo i ostale osobine kao na slici:

Primetimo da je na slici aktivno polje sa datumom. Ovde smo iskoristili osobinu Input Mask ("maska" za unos u polje), koju smo postavili na 00.00.00. To nalae operateru/bibliotekaru da datum ukucava iskljuivo kao 6 cifara - dve za dan, dve za mesec i dve za godinu (2000. godina se ukucava kao 00). Osobine koje se mogu postaviti za polje Number su odozgo na dole sledee:

Field Size - veliina, odnosno tip polja Format - nain na koji e ukucani brojevi biti prikazani Decimal Place - broj decimala u cifri. Vrednost postavljamo na nula, poto identifikacioni broj nema smisla sa decimalama Input Mask - "maska" za unos brojeva. Ako u ovo polje postavimo vrednost 00000, korisnik e morati da unese tano pet cifara za identifikacioni broj itaoca (npr. 00023) Caption - tekst koji se pojavljuje kao naziv kolone u pogledu za unos podataka (mi smo trenutno u dizajn-pogledu)

13

Validation Rule - pravilo koje se mora ispotovati pri unosu. Vrednost smo postavili na >0 kako se ne bi mogli uneti negativni brojevi. Validation Text - tekst koji se pojavljuje kao upozorenje kada korisnik pogrei pri unosu Required - odre uje da li je unos neophodan ili ne. Vrednost postavljamo na Yes. Indexed - da li je polje indeksirano ili ne. U indeksiranom polju pretraga je bra. No Duplicates u zagradi znai da se ne smeju pojaviti (ukucati) dve iste ifre za dva razliita itaoca. Sledei i poslednji vaan korak je postavljanje primarnog kljua. Primarni klju je jedno ili vie polja preko kojih e tabela biti povezana sa drugim tabelama, preko koje e se podaci indeksirati i izbei mogunost dupliranih unosa. U tabeli itaoci primarni klju emo postaviti na polje ID_Citalac. Pozicionirajmo kurzor na red u kome nalazi tekst ID_Citalac. Kliknimo na ikonu kljua na toolbaru:

Izgled reda tabele ID_Citalac e biti sada ovakav:

Ostaje nam jo da snimimo tabelu. Iz menija File odaberimo opciju Save. U novootvorenom dijalogu upiimo tekst Citaoci (bez slova u njemu!).

Ovim je prva tabela kreirana i snimljena. Na slian nain emo kreirati i ostale tabele. Moete preuzeti spakovanu datoteku baze Biblioteka.MDB sa kreiranim tabelama (veliina oko 13 kB), ako vam je ovaj deo do sada poznat ili ako vam veba negde zapne.

Rezime asa 3Upoznali smo se sa dijalogom Design View pri kreiranju tabele. Videli smo kako se definiu polja tabele, kako se daju posebne osobine polja i kako se definie primarni indeks. Ovo je kritino vana operacja u fazi gradnje baze podataka, jer od osobina svakog polja kasnije e zavisiti i ponaanje drugih dijaloga pri definisanju drugih elemenata baze. Na sledeem asu povezaemo tabele i tako uspostaviti relacije me u njima. as 4 - Povezivanje tabela

14

as 4 - Povezivanje tabelaNa ovom asu iskoristiemo postojee, ranije kreirane tabele i povezaemo ih me usobno u relacije. Punu snagu Access ostvaruje iz relacionih tabela (otuda naziv relacione baze podataka). Iz relacionih tabela podatke je lako filtrirati i na njih primeniti razne kriterijume bez obzira iz koliko tabela podaci potiu. Ako analiziramo spisak polja i strukturu tabela iz drugog asa videemo da me usobnog povezivanje tabela nema mnogo. Praktino, ima ih dva i oba se nalaze u tabeli Poslovanje. Polje ID_Knjiga bi valjalo povezati sa istoimenim poljem iz tabele Knjige i polje ID_Citalac sa istoimenim poljem iz tabele Citaoci. Zato ne koristimo "naa" slova u nazivima tabela i polja kada ih ve imamo? Zato to, na alost, jo uvek postoje korisnici raunara koji koriste YUSCII set karaktera. U osnovi, u YUSCII setu karaktera samo PRIKAZ naih slova je ispravan, raunar slova tretira po kdu. Kd tzv. naih slova u YUSCII setu karaktera odgovara znakovima [{]}\|`~@^, od kojih se veina u Accessu koristi kao posebni, specijalni karakteri sa odre enim znaenjem. Npr. slovo '' u YUSCII setu karaktera odgovara kdu karaktera '[' to za Access predstavlja ogradu naziva entiteta i nikako se drugaije ne moe koristiti (osim jo za ispis unutar tekstualnih poruka). Vraamo se u Access i prozor baze. Selektujemo tabelu Poslovanje i kliknemo na taster Design. Sada se otvara ve poznati dizajn-pogled tabele. Kliknimo u polje Number reda ID_Knjiga. Primetiemo da je polje "drop-down" tipa, odnosno da sadri listu za izbor koja se moe videti klikom na strelicu na dole ili pritiskom na taster F4.

Ono to emo sada uiniti je da polja ID_Knjiga i ID_Citalac ograniimo na sadraj tabela Knjige i Citaoci. Tip polja Number reda ID_Knjiga promenimo na Lookup Wizard... Ovo je prvi, a verovatno i poslednji arobnjak koga emo koristiti, bez obzira na to to verovatno ni u jednom programu nema vie pomonih procedura koje Microsoft naziva arobnjacima nego u Accessu. Pokree se procedura koja e na osnovu naih odgovora na postavljena pitanja formirati relaciju umesto nas:

15

Na prvo pitanje odgovaramo sa prvom opcijom jer elimo da se u tabeli Poslovanje na mesto broja knjige pojavljuju samo vrednosti iz tabele knjiga, odnosno samo smisleni inventarni brojevi (biranjem druge opcije u koloni ID_Knjiga mogli bismo da kucamo bilo koji inventarni broj, pa i onaj nepostojei). Klikom na Next (ili sa tastature ALT+N) sledi drugi korak:

U ovom koraku biramo tabelu iz koje e se uzimati podaci, odnosno odre ujemo "izvorinu" tabelu. Dalje, u treem koraku odre ujemo kolonu (polja) koja e biti "izvor" podataka:

Preostala dva koraka nisu neophodna i ve sada moemo kliknuti na taster Finish. etvrti korak je "kozmetiki" i ovde odre ujemo irinu kolone koje e se prikazivati na ekranu:

U poslednjem koraku moemo uticati na naziv kolone, a kako nam naziv ID_Knjiga ve odgovara, kliknuemo na taster Finish:

16

Ovim je kreirana prva tzv. relacija tabela Poslovanje i Knjige. Tabelu Poslovanje treba istom procedurom povezati sa tabelom Citaoci, to ete pratei prethodni postupak sami uraditi. Polja koja se povezuju nose isto ime u obe tabele: ID_Citalac. Jo jednu, veoma bitnu, stvar moramo napraviti da bi ova veza funkcionisala kako valja: operateru se mora onemoguiti da u polja ID_Knjiga i ID_Citalac upisuje proizvoljne vrednosti, odnosno one vrednosti za koje ne postoji odgovarajua ifra u tabelama Knjige i Citaoci. Otvorimo ponovo tabelu Poslovanje u dizajn-pogledu. Selektujmo red ID_Knjiga klikom mia. Ispod teksta Field Properties postoje dva tzv. taba - General i Lookup. Klikom na tab Lookup otvara se lista osobina za polja iji sadraj se gleda iz druge tabele. Na ovoj listi za polja ID_Knjiga i ID_Citalac tabele Poslovanje osobinu Limit To List postavimo na vrednost Yes.

Snimimo i zatvorimo tabelu. Ovim smo ograniili sadraj polja ID_Citalac i ID_Knjiga na sadraj druge dve relevantne tabele - Knjige i Citaoci. Pored ovih Lookup relacija napraviemo jo i prave relacije izme u tabela. Iz menija Tools biramo opciju Relationships.... U prazan prozor koji se pojavi, dodaemo tabele koje emo povezati. Spisak postojeih tabela dobija se klikom na taster Show Table.

17

Dodajmo redom tabele: Citaoci, Poslovanje i Knjige. Iz tabele Citaoci prevucimo polje ID_Citalac u tabelu Poslovanje na polje ID_Citalac. U prozoru koji se pojavi, podeavamo osobine ove relacije.

Na slici, obeleeno brojem 1 su tabele koje e biti povezane. Polja koja su me usobno povezana su obeleena brojem 2. Pod brojem 3 su opcije koje e definisati ponaenje ciljne tabele u zavisnosti od promene podataka u izvorinoj tabeli. Ove opcije emo sve ukljuiti jer e one omoguiti da se, ukoliko se npr. promeni inventarni broj knjige u tabeli Knjige, ova promena reflektuje na tabelu Poslovanje.

PrimerAko je italac sa ifrom 15 zaduio i razduio knjigu sa inventarnim brojem 26, ove promene e ostati zapisana u tabeli Poslovanje i taj podatak moe posluiti u vo enju statistike o itanosti knjige i broju proitanih knjiga za itaoca. Tako e, ukoliko se knjiga oteti, moe se na osnovu istorije izdavanja knjige utvrditi ko je od italaca iznajmljivao tu knjigu i tako eventualno pronai krivca za oteenje. U momentu kada se knjizi iz raznih razloga promeni njen inventarni broj, ili se knjiga rashoduje, ova promena se nee odraziti na tabelu Poslovanje, ukoliko pomenute opcije sa slike obeleene brojem 3 nisu ukljuene. U naem sluaju bismo rashodovali knjigu 26 i na mesto njenog broja postavili drugu knjigu, pa bismo dobili sasvim pogrene podatke o izdavanju knjige i itaocima koji su knjigu iznajmljivali. Ukljuenjem opcija pod Enforce Referential Integrity e se promene podataka u tabelama Citaoci i Knjige automatski reflektovati na tabelu Poslovanje. Na slici pod brojem 4 oznaen je tip relacija. U naem sluaju One-to-many znai da knjiga moe imati jedinstven broj, da se ta knjiga moe vie puta izdati, te da jedan italac u isto vreme moe uzeti vie knjiga. Sem ove relacije postoji jo dva tipa relacije. Druga je One-to-one to bi znailo da jedan italac moe uzeti samo jednu knjigu. Ova relacija bi bila primenljiva u, recimo, "Sega" klubovima, gde biste jednom lanu dozvolili da iznajmi jednu konzolu za igranje. Trea vrsta relacija je Many-to-many. Ova relacija se upotrebljava u sluajevima kada postoji osobina zajednike pripadnosti. Za primer, recimo da dva radnika zadue dva kompleta alata bez posebne zajednike pripadnosti. Obojica su tada vlasnici i jednog i drugog kompleta alata. Pod brojem 5 na slici je oznaen taster Join Type.... Klikom na taster ili preicom ALT+J otvara se dijalog sa tri opcije:

Prva opcija e dozvoliti pojavljivanje knjiga u tabeli Poslovanje samo za one inventarne brojeve koji ve postoje u tabeli Poslovanje. Biranjem druge opcije u tabeli Poslovanje e moi da se "pojave" svi inventarni brojevi knjiga. Treom opcijom bismo dozvolili (slino prvoj) pojavljivanje inventarnih brojeva knjiga samo onih koji ve postoje u tabeli Poslovanje. Praktino prva i trea opcija nemaju nekog smisla u naem sluaju. Stoga odabiramo drugu opciju i potvr ujem izbor klikom na taster OK. Tako e potvrdimo i promene osobina relacija jo jednim klikom na taster OK.

18

Pratei postupak u kome smo kreirali relaciju izme u tabela Citaoci i Poslovanje gde smo povezali polja ID_Citalac, poveimo i tabele Knjige i Poslovanje. Nakon obavljene operacije imaemo izgled relacija kao na sledeoj slici.

Konano zatvorimo prozor relacija i odgovorimo potvrdno na postavljeno pitanje kojim snimamo nae promene na relacijama tabela.

Moete preuzeti spakovanu datoteku baze Bibl_02.MDB sa kreiranim tabelama (veliina ZIP datoteke je oko 15 kB), ako vam je ovaj deo do sada poznat ili ako vam veba negde zapne.

Rezime asa 4Na ovom asu, prepunom raznih opcija, povezali smo tabele sa nadom da smo dobro predvideli konaan model baze podataka. Nakon ovih akcija, svaka kasnija izmena je sve tea i tea to dublje ulazimo u razvoj baze. Plastino reeno, slina stvar je i sa vodovodnim cevima koje se nalaze ispod kue koje moramo promeniti nakon to je postavljen krov, jer smo utvrdili da je prenik cevi neodgovarajui te da dolazi da pada pritiska. Vodovod e i dalje raditi, ali sa smanjenim pritiskom - to e poveati vreme ekanja da se kada napuni kao i vau nervozu. Ovim asom zavrava se pria o dizajniranju tabela. Na sledeem asu emo testirati nau osnovu unoenjem podataka direktno u tabele, te se taj as moe raunati kao me ukorak. Tako e uz ovaj as moete preuzeti aktuelnu arhivu u razvoju baze.

as 5 - Unoenje prvih zapisa

19

as 5 - Unoenje prvih zapisaPre nego to pre emo na kreiranje formulara za rad sa podacima, iskoristiemo priliku da unesemo podatke direktno u tabele. Nain na koji Access smeta podatke u tabele je naizgled veoma jednostavan, a njegovo razumevanje je veoma vano za kasnije dizajniranje formulara i izvetaja. Otvorimo Access i bazu podataka na kojoj radimo. Pre imo na tab Table. Od etiri tabele koje smo kreirali (Biblioteka, Knjige, Citaoci, Poslovanje) otvorimo za unos tabelu Citaoci. Tabela se "otvara" za unos jednim klikom na naziv tabele i zatim klikom na taster "Open" ili jednostavno dvoklikom na naziv tabele. Hint: Dvoklik na naziv tabele uz pritisnut taster CTRL otvara tabelu u dizajn-pogledu. Popunimo prvi slog tabele sledeim podacima:

Prezime_ime Adresa Mesto Telefon Dat_rodj Dat_upisa Dat_clan

Petrovi Petar Nemanjina 15 21000 Novi Sad 021/123-456 27.03.72 01.01.00 (00 ovde skraeno oznaava 2000. godinu!) 01.01.00

Otvorimo zatim tabelu Knjige i unesimo, tako e, jedan slog:

ID_Knjiga Autor Naslov Izdavac God_izd Zanr Status

1 Grupa autora Korak po korak - Microsoft Office 2000 Microsoft Press 1999 n (Nauna literatura) u (U upotrebi)

Poto postoji barem jedan slog u obe tabele moemo otvoriti i treu tabelu - Poslovanje, kako bismo itaocu "iznajmili" knjigu. U polje ID_Zapis ne upisujemo nita, uostalom Access to nee dozvoliti, jer smo to polje definisali kao AutoNumber. To polje Access sam popunjava inkrementirajuim brojem. Primetimo da kada zaponemo unos u polje ID_Citalac, u polju ID_Zapis e pisati 1. Dakle, popunimo prvi slog tabele Poslovanje sledeim vrednostima:

ID_Citalac ID_Knjiga Dat_izd Dat_vr

1 (italac sa ifrom broj 1) 1 (knjiga pod inventarnim brojem 1) 01.11.00 05.11.00

Sve to operater - bibliotekar treba da radi je da unese ifru knjige i itaoca, kao i datum izmene. Moemo na ovom mestu ii i korak dalje - recimo da se u polju Dat_izd kao unapred ponu ena vrednost na e tekui datum. Time bismo dodatno rasteretili operatera unosa datuma.

20

Zatvorimo tabelu Poslovanje. Uz pritisnut taster CTRL dvokliknimo miem ponovo na tabelu Poslovanje (za izmenu dizajna tabele). Kliknimo na red u kome pie Dat_izd i upiimo u vrednost osobine Default Value (osnovna vrednost) funkciju: =Date(). Snimimo i zatvorimo tabelu. U trenutku kada smo zapoeli unos u tabele Knjige i Citaoci, verovatno ste primetili znak + na levoj strani sloga. Klikom na taj znak Access prikazuje kaskadnu tabelu za koju je direktno vezana tabela sa kojom operiemo, odnosno prikazuje slog ili grupu slogova koji su u relaciji sa slogom otvorene tabele. Za tabelu Citaoci klikom na znak + dobija se tabela Poslovanje gde su slogovi u me usobnoj direktnoj relaciji:

Sa slike moemo videti da je italac sa ifrom 1 iznajmio knjigu sa inventarnim brojem 1. Ovo je zgodan nain za testiranje ispravnosti relacija i tabela pre nego to se pre e na dizajniranje ostalih elemenata baze, naroito kada operiemo sa vie tabela. Postavlja se pitanje kako emo razduiti itaocu knjigu kada je bude vratio? To moemo izvesti na dva naina: ili emo obrisati slog u tabeli Poslovanje za itaoca i knjigu koji vie nisu u vezi (i pri tome iskopirati taj slog u pomonu tabelu za statistiku obradu) ili emo ostaviti taj slog u tabeli, a knjige koje se pojavljuju u padajuoj listi tabele Poslovanje, ID_Knjiga nekako ograniiti samo na raspoloive knjige. Na sledeem asu emo iskoristiti polje Status tabele Knjiga i u njega upisivati status knjige, a taj parametar emo iskoristiti za ogranienje liste raspoloivih knjiga. Tako e emo kreirati i ostale formulare (neki ih zovu i obrascima, ablonima, formama).

Moete preuzeti spakovanu datoteku baze Bibl_03.MDB sa kreiranim tabelama (veliina ZIP datoteke je oko 17 kB), ako vam je ovaj deo do sada poznat ili ako vam veba negde zapne.

Rezime asa 5Na ovom asu smo u bazu uneli prve "ive" sadraje i pokazali kako se moe videti kaskadna tabela podaci koji su u relaciji sa slogom tabele. Kao to ete videti na sledeem asu, ovo nije optimalan nain za unos podataka, ali je dobro da znate kako ponekad moete uneti ili promeniti podatke direktnim unosom u samoj tabeli. as 6 - Kreiranje elektronskih obrazaca - formi

21

as 6 - Kreiranje elektronskih obrazaca - formiForme, maske, elektronski obrasci ili formulari su neki od naziva koji su odomaeni za englesku re Forms. Elektronski obrasci predstavljaju ekvivalent papirnim obrascima, a koriste se za unos podataka u elektronske, raunaru razumljive, baze podataka. Prednost elektronskih obrazaca nad papirnim je viestruka: unos podataka moe biti delimino kontrolisan, u odre enim poljima se mogu unapred ponuditi vrednosti (recimo tekuim datumom) dok se pojedina polja mogu popuniti automatski proraunom jedne ili vie unetih vrednosti u druga polja. Na ovom, estom asu, dajemo naoj aplikaciji "opipljiviji" izgled - kreiramo maske za unos podataka. Pre osmiljavanja izgleda elektronskih obrazaca (u daljem tekstu: formi) valja uzeti na uvid papirne obrasce sa kojima su operatori do sada radili. U principu, nama je svejedno kako emo ih dizajnirati dok god potujemo odre ena pravila, ali na taj nain bismo olakali operaterima prilago avanja na nov nain rada. Osnovna pravila kojih se treba drati su da se ne koriste bljetave boje i ukrasni fontovi. Nae kreativne sposobnosti za ukraavanje emo ostaviti za neko drugo mesto. Operateru koji esto provodi i vie godina na istom radnom mestu e biti vrlo zamorno da gleda u aren ekran i da ita kitnjasta slova po ceo dan. Raspored polja koji se popunjava mora biti logian i ravnomerno uravnat. Tako e valja predvideti da se kompletan unos moe obaviti sa tastature, dakle, BEZ korienja mia. Kada se jednom usvoji ova navika unos moe predstavljati pravo zadovoljstvo uz veliku utedu u vremenu. Za operativne sisteme Windows familije postoji ogroman broj programa u kojima se pojavljuju odre ene forme. Ukoliko ste poetnik, predlaem da pogledate neke od njih i subjektivno ih ocenite. Pri ocenjivanju uzmite u obzir dva kriterijuma: izgled i nain rada kod prvog unosa i isto to pri duem vremenskom korienju. Ukoliko je ocena za prvi i drugi sluaj priblino ista, moete rei da je programer dobro dizajnirao formu.

Prva forma - itaociPod pretpostavkom da je tabela Citaoci dobro organizovana, moemo prei na kreiranje prve forme. Pre imo na karticu Forms. U prozoru baze postoje tri tastera: Open (otvara za rad postojeu formu), Design (otvara za izmenu dizajna postojeu formu) i New (kreiranje nove forme). Biramo taster New i dobijamo sledei izbor:

Od ponu enih opcija prvog koraka dat je izbor (sa znaenjem):

Design View - dizajniranje forme "od nule" bez upotrebe arobnjaka; sve opcije moramo samo podesiti; Form Wizard - arobnjak koji na osnovu odgovora na postavljena pitanja deo opcija postavlja automatski, te sam raspore uje polja za unos; AutoForm: (Columnar, Tabular, Datasheet) kreira formu bez ikakvih pitanja na osnovu tabele koju odaberemo; podopcije predstavljaju nain na koji e polja za unos biti raspore ena na formu; Chart Wizard - arobnjak koji kreira formu sa grafikonom na njoj (koristi se uslugama Microsoft Excela koji pri tome mora biti instaliran); PivotTable Wizard - arobnjak koji iz podataka iz tabele kreira izvedenu tabelu (tako e zahteva Microsoft Excel); Markiramo opciju Design View klikom mia i otvaramo padajuu listu za izbor tabele u koju e se podaci upisivati (Citaoci), odnosno na osnovu koje e se formirati polja za unos. Klikom na taster OK otvara se prazna forma i prozor sa nazivima polja koja se nalaze u tabeli Citaoci:

22

U prozoru sa listom polja kliknimo prvo na ID_Citalac i uz pritisnut taster SHIFT na Napomena. Ovim selektujemo sva polja iz tabele Citaoci koju emo zatim prevui na prazan prostor forme, odnosno ispod odeljka Details:

Primetimo da se u prvoj koloni nalazi komentar identian nazivu polja tabele, a da se u drugoj koloni nalaze polje za unos. Tako e, pri ovoj operaciji Access sam postavlja veliinu polja za unos na istu vrednost. Prozor sa spiskom polja (Field List) sada moemo zatvoriti. Prvo to emo uraditi jeste da promenimo veliinu polja za unos. Kliknimo na formu u prazan prostor u odeljku Details kako bismo deselektovali izbor polja (trenutno su sva selektovana i svaka izmena u obliku e se odnositi na sva polja). Klikom desnim tasterom na prvo polje - ID_Citalac otvara se skraeni meni, sa kojeg biramo poslednju opciju Properties = Osobine.

Prozor sa osobinama polja ima pet kartica na kojima su grupisane osobine polja. S leva na desno nazivi i sadraji kartica su sledei:

Format - nain na koji e na ekranu biti prikazano polja i koje e osobine uzeti u smislu oblika, veliine, vrste fonta, boje, itd; posebne osobine na ovoj kartici su: - Visible - polje e biti vidljivo ili ne - Display When - polje e biti vidljivo na ekranu, na odtampanom papiru ili na oba - Scroll Bars - vertikalni/horizontalni kliza postoji ili ne - Can Grow/Can Shrink - u zavisnosti od sadraja polje se moe/ne moe automatski poveati/smanjiti Data - na ovoj kartici se podeava izvor podataka, mogunost njegove izmene, kontrola unosa podataka u polje, osnovna vrednost i nain ponaanja filtera nad poljem Event - na svakoj operaciji nad poljem aktivira se odre eni doga aj (Event) koji moe pokrenuti program; u narednim lekcijama emo neke od doga aja iskoristiti za automatizovanje rada Other - ostale osobine polja koje ne spadaju niti u jednu od preostale etiri grupe; neke od osobina emo koristiti u naoj bazi All - sve osobine sa ostale etiri kartice se nalaze na ovoj kartici.

23

Vratimo se na karticu Format i u osobinu Width polja ID_Citalac upiimo vrednost 1cm. Dok smo na istoj kartici, promenimo vrednost Special Effect iz Sunken u Flat (u maniru novih programa korisniki interfejs je ravan). Sada kliknimo na labelu polja ID_Citalac (prva kolona na formi) i promenimo vrednost osobine Caption u ID italac:.. Za sva ostala polja i labele postupak definisanja veliine i naziva je isti, stoga ove promene izvedimo do kraja po sopstvenim afinitetima. Na kraju snimimo formu (File/Save As...) pod imenom frmCitaoci.

Jednostavna forma kakvu smo dobili moe posluiti za unos, izmenu i brisanje zapisa tabele Citaoci. Ovoj formi emo dati konani oblik na sledeem asu postaviemo tastere za navigaciju i polja za pretraivanje. Na kraju ovog asa naveemo tastere, odnosno kombinacije tastera, koji e posluiti u manipulaciji podacima sa forme:

taster TAB SHIFT+TAB END HOME CTRL+END CTRL+HOME F2 ENTER ESC CTRL+F4

znaenje sledee polje prethodno polje poslednje polje sloga prvo polje sloga poslednje polje poslednjeg sloga prvo polje prvog sloga editovanje sadraja polja sledee polje ponitavanje unosa sloga zatvara formu

U modu editovanja polja taster ENTER ESC znaenje Kraj editovanja, skok na naredno polje Ponitavanje unosa u polje

Rezime asa 6Na ovom asu smo napravili prvu formu, to je osnovni element za redovni unos podataka. Videli smo kako se kontroliu detalji kakav je sadraj dijaloga za dizajniranje pri izradi forme. Konano, dali smo napomenu o navigaciji kroz formu. as 7 - Kontrole u formi

24

as 7 - Kontrole u formiNa ovom asu nas oekuje nastavak rada sa formama. Videemo ta su standardne kontrole na formi i kako se one mogu zameniti alternativnim. Za krajnjeg korisnika je prihvatljivije da na ekranu ima taster na kome pie "Obrii zapis", nego da pamti proceduru "klika na vertikalnu povr sa leve strane forme na kojoj se nalazi strelica na desnom i zatim pritisak na tastaturi na taster Delete". Na formu emo, sem alternativnih kontrola, postaviti polja za pretragu i dati joj konaan izgled. Tako e emo se upoznati sa VBA (Visual Basic for Applications) programima i napisati jednostavne module koji e odgovarati na doga aje koje korisnik izazove. U verziji Accessa 2000 i dalje postoji stari makro jezik, koji je prisutan zbog kompatibilnosti sa ranijim verzijama. Makro jezik se izbegava jer je nedovoljno fleksibilan, odnosno za neke funkcije je neupotrebljiv. Svaka novokreirana forma sadri standardne kontrole: kontrole za navigaciju i selektovanje sloga. Kontrolama za navigaciju korisnik se kree kroz slogove napred i nazad; skae na prvi i poslednji ili se pozicionira na novi slog za novi unos:

Ova slika je preuzeta iz forme Citaoci. Sleva na desno, u ovom navigacionom baru, stoji:

Record: - slog ili zapis Taster za skok na prvi slog tabele Taster za skok na prethodni slog tabele Polje sa relativnim numerikim indikatorom tekueg sloga tabele Taster za skok na sledei slog tabele Taster za skok na poslednji slog tabele Taster za skok na novi slog of 1 - ukupan broj slogova, odnosno zapisaU polje sa indikatorom tekueg sloga se moe ukucati broj i nakon pritiska na Enter forma e prikazati redni broj sloga koji ste uneli u ovo polje. Upotreba ove grupa kontrola tastaturom je nepraktina, stoga se za navigaciju kroz slogove tabele koriste preice sa tastature opisane u prethodnom asu. Navigacija ovim kontrolama je esto nepraktina, jer relativni broj ne mora uvek da ima veze sa stvarnim identifikacionim brojem knjige ili itaoca. Druga kontrola je predstavljena vertikalnom "traftom" na levoj strani prozora forme (slika levo). Klikom levog tastera mia na bilo koji deo njene povrine, Accessu nalaemo da selektuje ceo slog nad kojim se mogu primeniti standardne operacije: Cut, Copy i Delete. NAPOMENA: Sa tastature, preica CTRL+A selektuje sve slogove!

Alternativne kontrole se mogu realizovati na vie naina - mogu biti u obliku tastera, povrine, hiperlinkova ili praktino bilo ega drugog (fotografije na primer) i korisniku poetniku mogu odmah biti shvatljive jer se oblikom i tekstom na srpskom jeziku nedvosmisleno definiu. Najee se koriste kontrole u obliku tastera na kome je napisano neto poput Obrii slog. U daljem tekstu prvo emo ukloniti standardne kontrole i postaviti tastere za navigaciju. Otvorimo formu u dizajn pogledu (selektujte formu frmCitaoci i kliknite na taster Design). Desnim tasterom kliknimo na kvadrati u levom gornjem uglu forme i selektujmo Properties.

25

Pre imo na karticu Format i postavimo sledee osobine i vrednosti: Scroll Bar Record Selectors Navigation Buttons Auto Center Border Style Caption Neither No No Yes Dialog itaoci Klizai se nikada nee videti Bez selektora sloga Kontrole za navigaciju se nee videti Forma se po otvaranju pojavljuje na sredini ekrana Veliina forme ne moe da se menja Upiimo u naslovnu liniju forme tekst "itaoci"

Od tastera za navigaciju, postaviemo samo taster za skok na novi slog i taster za zatvaranje forme. Taster za brisanje sloga neemo postaviti, kako ne bismo doli u situaciju da program napravi greku ako se trai pregled istorije izdavanja knjige, kada bi knjigu dodelio nepostojeoj ifri itaoca. Od polja za pretragu postaviemo dva polja: jedno za pretragu po ifri i drugo za pretragu po prezimenu i imenu. Otvorimo formu frmCitaoci u modu za izmenu dizajna. Proverimo da li na ekranu postoji toolbar (linije sa ikonama) pod nazivom Toolbox. Ako ne postoji, kliknimo desnim tasterom mia na bilo koju ikonu na postojeem toolbaru i u listi koja se pojavi ukljuimo Toolbox.

U ovom toolbaru se nalaze ikone koje predstavljaju kontrole koje se mogu postaviti na aktivnu formu. Upotreba mia i ovakvih ikona znatno skrauje postupak dizarniranja, te je njihova upotreba ovde poeljna. Najpre emo povui donju ivicu forme nadole, kako bismo napravili mesto za budue tastere:

Kliknimo miem na ikonu tastera iz toolbara i zatim na prazno mesto na formi u njenom donjem delu:

Otvara se prozor jednog od arobnjaka, koji e umesto vas postaviti odgovarajui VBA (Visual Basic for Applications) program i sliku odnosno tekst na taster. Rad sa ovim arobnjakom je prilino trivijalan i uz malo poznavanje engleskog jezika dovee do eljenog rezultata. Me utim, iako ovakav nain rada najvie odgovara poetnicima, mi emo krenuti drugim putem i preskoiti arobnjaka kako bi se upoznali sa VBA. Na ekranu koji se pojavio pritisnimo taster Cancel. Sada smo dobili formu sa jednim nefunkcionalnim tasterom na kome pie neto poput Command1.

Doga aji (eng. Events)Svaka korisnika akcija nad formom signalizira da se aktivira odre eni program vezan za doga aj, ako takav uopte postoji. Doga aja ima dosta i oni pokrivaju sve mogue aspekta rada sa objektima u Accessu. Za primer, pri otvaranju forme aktiviraju se tri doga aja: OnOpen, Onload i OnActivate, dok se etvrti doga aj aktivira i po uitavanju forme i pri davanju fokusa formi: OnGotFocus. Za svaki od tih doga aja u odgovarajui rubriku kartice Properties moemo postaviti program.

26

Princip rada je sledei: kada (za primer) korisnik klikne miem na odre eni taster na formi, Access provera da li postoji VBA program/makro za taj doga aj i izvrava ga. Ukoliko ne postoji, ne deava se nita. U naem sluaj kada pre emo u mod za rad sa formom Citaoci na kojoj je taster Command1, levi klik miem na taster nee inicirati nijedan program - jer on jo nije napisan. Ovom tasteru emo promeniti naziv u Zatvori masku; napraviemo da se klik na taster moe proizvesti sa tastature (ALT+Z) i napisati vrlo jednostavan program koji e zatvoriti formu. U dizajn modu forme Citaoci kliknimo desnim tasterom mia na taster Command1 i otvorimo karticu osobina (Properties). Pre imo na tab All i popunimo polje Caption sledeim sadrajem:&Zatvori masku

Konano, pritisnimo taster Enter sa tastature. Primetimo da se naziv tastera na formi promenio iz Command1 u Zatvori masku, a slovo Z je podvueno. Znak & nalae Accessu da se slovu iza njega dodeljuje mogunost pristupa sa tastature u kombinaciji sa tasterom ALT. To znai da korisnik moe pristupiti ovom tasteru i ostvariti klik na njega bilo gde da se kurzor nalazi pritiskom kombinacije ALT+Z. Ovom tasteru na formi smo dodelili preicu na tastaturi; potrebno je jo i da postavimo odgovarajui program, to emo uini na jedan od dva naina.

1. Makro programPre imo sada na karticu makroa i kliknimo na taster New. Otvara se prozor u kome piemo makro. U prvo polje, pod Action upiimo Close. Polja Object Type i Object Name ostavimo prazna. Pod Save upiimo (ili ako je ve upisano, ostavimo) re Prompt). Zatvorimo makro i pri tome ga snimimo pod imenom Zatvori. Ovim smo napravili makro koji, kada se aktivira, zatvara aktivnu formu (onu koja je u fokusu). Da smo u Object Type i Object Name upisali naziv neke druge forme koja je otvorena, mogli bi da je zatvorimo bez obzira da li ima fokus ili ne, da li je skrivena ili vidljiva. Vratimo se na formu Citaoci i otvorimo je u pogledu za izmenu dizajna. Kliknimo na novokreirani taster i otvorimo karticu osobina (Properties). Pre imo na tab Event i prona imo u listi doga aj On Click. Ako postavimo kurzor u to polje, videemo da ja polje padajueg tipa sa strelicom na dole. Kliknimo na strelicu i iz liste u kojoj postoje dve stavke ([Event procedure] i Zatvori) odaberimo stavku Zatvori. Ovim smo tasteru pridruili makro koji se aktivira klikom mia na njega. Sem na klik mia, ovaj taster se moe "pritisnuti" na vie naina: preicom ALT+Z sa tastature (koju smo ranije definisali); davanjem fokusa tasteru i pritiskom na ENTER ili razmaknicu (spacebar). Pogledajmo kako taster radi: pre imo u pogled za rad sa podacima i kliknimo na taster. Dobiemo upozorenje da je promenjen izgled i nain rada forme, te da izmene nisu snimljene. Snimimo ih pritiskom na taster Yes. Konano otvorimo (dvoklikom mia) formu ponovo i kliknimo na taster Zatvori formu. Forma se zatvara i sa ovim tasterom smo zavrili rad to se makroa tie.

2. VBA programUkoliko smo se odluili da umesto makroa koristimo procedure jezika VBA (ovde bi re "preporuka" trebalo da bude zamenjena sa reju "obaveza"), postupiemo na sledei nain. Otvorimo formu u dizajn pogledu, selektujmo taster Zatvori formu i na kartici osobina prona imo za njega doga aj On Click. Otvorimo padajuu listu i iz nje odaberimo prvu opciju - [Event Procedure]. Na desnoj strani tog polja pojavljuje se mali taster sa tri take na njemu. Kliknimo na njega. Otvara se prozor Visual Basic Editora u kome piemo odgovarajue VBA programe. Na ekranu ete dobiti sledee:Option Compare Database ------------------------------Private Sub Command1_Click() End Sub

"Private Sub Command1_Click()" ovde znai da podproceduru koristi samo aktivna forma, da se ona aktivira na klik (Click) na na taster 'Zatvori formu' (Command1). Sav program za ovaj doga aj se smeta izme u klauzula 'Sub' i 'End Sub'.

27

Pozicionirajmo se izme u klauzula Private... i End i pritisnimo jedanput taster Tab ili, umesto toga pritisnimo dva puta razmaknicu kako bi uvukli red sa programom. Uvlaenje se koristi kako bi program bio itljiviji i uredniji. Razliita uvlaenja koristite za odvojene delove podprograma. Dva-tri razmaka su dovoljna da bi se stekao pregled (recimo) gde celina poinje i gde se zavrava. Upiimo ovde sledee:DoCmd.Close

Primetimo da se posle take iza DoCmd (to znai "Izvri komandu") otvara lista sa moguim naredbama koje mogu slediti. Sve drugo, osim toga to je u listi, nee imati nikakvu funkciju i program e prijaviti greku. Zatvorimo prozor VBA, sninimo formu i pre imo u pogled za rad sa podacima. Klinimo na taster Zatvori formu i forma e se zatvoriti. Jo jednom skreemo panju da je bolje da koristite VBA umesto makroa, ma kako oni izgledali laki za pisanje. Makroi u verziji Accessa 2000 postoje samo zbog kompatibilnosti sa ranijim verzijama; lako je mogue da ih ve u narednoj verziji nee biti uopte. Sem toga, VBA je u stvari proireni Basic, koji je nastao sa idejom da se komande izdaju na gotovo istom engleskom jeziku. Samim tim, sa poznavanjem engleskog jezika, olakano je savladavanje VBA programa. Potujui prethodno opisanu proceduru, dodajmo jo jedan taster na formu i promenimo mu naziv u &Dodaj novog. Za ovaj taster, na doga aj On Click postavimo sledei program:DoCmd.GoToRecord acActiveDataObject, , _ acNewRec ID_Citalac.SetFocus

NAPOMENA Obratite panju na donju crticu u prvom redu ovog listinga. Ona tu postoji samo zato to ceo tekst klauzule u makrou nije stao u jedan red. Kada god elite da preseete jedan red makroa (npr. zbog bolje itljivoasti ili, kao ovde, da bi se sauvao izgled stranice) moete primeniti ovaj trik. Prvi red zahteva da se pre e na novi slog aktivne forme, dok se u drugom redu fokus premeta sa taster Dodaj novog na polje ID_Citalac. Taster Dodaj novog se moe aktivirati i sa tastature kombinacijom tastera ALT+D. Moete preuzeti spakovanu datoteku baze Bibl_07.MDB sa kreiranim tabelama (veliina ZIP datoteke je oko 41 kB), ako vam je ovaj deo do sada poznat ili ako vam veba negde zapne.

Rezime asa 7Poeli smo da pravimo ozbiljne promene detalja u naoj aplikaciji. Pokazali smo kako se izvodi tipina promena ponaanja forme time to emo ukinuti standardne i dodati sopstvene kontrole. Ovo nas dovodi na prag jedne nove teme, a to je automatizacija procesa kroz programiranje doga aja u jeziku VBA. Na sledeem asu emo prei na formu knjige i kreiraemo glavni radni ekran sa komandnom tablom (Switchboard).

as 8 - Komandna tabla aplikacije

28

as 8 - Pretraga u formi; komandna tabla aplikacijeNa ovom asu emo ukratko prei preko forme 'Knjige' sa akcentom na pretragu. Proceduru opisanu u asu broj 7 moemo jednako primeniti i na ovu formu, s tim da postupak kreiranja polja za pretragu koji e biti opisan u ovom asu, moemo uz neznatne izmene primeniti i na formu 'Citaoci'. Drugi deo asa je posveen komandnoj tabli (engl. Switchboard) iz koje se mogu aktivirati ostale forme i izvetaji. Sline komandne table se mogu videti u primerima baza koje se instaliraju uz Microsoft Office 2000.

Forma 'Knjige'Za efikasno praenje kreiranja forme Knjige predlaem da pogledate as 6 na kome je opisana procedura kreiranja forme Citaoci. Osim ulazne tabele, sva podeavanja veliine, izgleda i naina ponaanja objekata moemo primeniti i na ovu formu. Da ne bismo istu proceduru opisivali dva puta, kreirajte formu pod nazivom frmKnjige. Za ulazne podatke postavite Record Source na tabelu Knjige. Rasporedite polje za odgovarajue ulazne podatke i zatim postavite tastere &Dodaj novu i Zatvori masku sa odgovarajuim VBA programom. Iako smo pomenuli makro jezik i ma kako lak on izgledao za jednostavne operacije, predlaem da zaboravite da postoji i da punu panju obratite na jezik VBA. Ovo je veoma vaan korak i uspenim kreiranjem forme frmKnjige potvr ujete sebi da ste savladali dosadanje gradivo. Formu frmKnjige otvorite u pogledu za izmenu dizajna i otvorite meni View i opciju Tab Order.... Ovde se moe podesiti redosled po kome e se kurzor kretati kada korisnik pritisne taster Tab ili Enter. Smisleno je da se kurzor premesti na sledee polje, a ne da se podaci popunjavaju odozdo na gore ili nekim drugim redosledom. Obratite panju na spisak polja i zatim pritisnite taster Auto Order. Access e pokuati da pore a polja loginim redosledom, a ako ne primetite razliku pre apliciranja ove operacije i posle nje, to znai da je redosled dobar.

Obratite panju da Access ponekad zna da omane: ako su vam polja u dve ili vie kolona, rezultat e biti neizvesan, u zavisnosti od vae namere - da li e se popunjavati prva kolona, pa zatim druga ili naizmenino obe. Naalost, premalo polja imamo da bismo pokazali na primeru, ali e ovo biti nedvosmisleno jasno kada budete doli u situaciju da kreirate jednu mamutsku formu. Spustite objekte na formi tako da prvi objekat (ID_Knjiga) bude odmaknut od vrha barem dva centimetra. U toolbaru Toolbox prona ite i kliknite na taster sa linijom i zatim neposredno iznad polja ID_Knjiga.

Postavljenu liniju "uhvatite" za desnu stranu i izduite je na irinu forme.

29

Uloga ove linije je najvie da bude ukras - ona logiki odvaja (budua) polja za pretragu i sadraj tabele.

PretragaPolje za pretragu se obino postavlja kao Combo polje, tj. kao padajua lista sa mogunou direktnog unosa ili uz izbor iz ograniene liste podataka. Kucanjem teksta ili brojeva u ovo polje, Access pokuava da dopuni ostatak sadraja kojeg korisnik trai. Zato Combo polje, a ne obino? Jednostavno zato to ono ima neke osobine koje obino polje nema (opciju Limit to List ili On Not In List). Postavimo jedno polje za pretragu knjiga po kljuu ID_Knjiga. Prvo kliknimo na ikonu Combo polja i zatim na formu:

Ako imate instalirane "arobnjake", pokrenue se jedan od njih koji e vas provesti kroz proceduru postavljanja parametara za Combo polje na osnovu odgovora na ponu eni izbor. Ovu proceduru moete kasnije upotrebiti. Za sada emo je preskoiti, kako biste mogli da shvatite ta se iza nje krije. Pritiskamo taster Cancel, otvaramo karticu osobina za Combo polje i postavljamo sledee osobine i vrednosti (klikom na svaku sliku dobijate sliku u punoj veliini):

30

Zatim kliknimo na Combo polje (Nadji_knjigu) i predvidimo doga anja:

ako korisnik unese ifru knjige koja postoji, forma prikazuje traenu knjigu, brie se sadraj polja Nadji_knjigu i skae se na ifru knjige; ako korisnik unese ifru koja ne postoji ili unese tekst u ovo polje, izbor se ponitava, presree se poruka o greci koju Access generie, izdaje se poruka o greci i fokus se vraa na Combo polje Nadji_knjigu Da bismo ispunili ove uslove, koristiemo program sa dva doga aja za ovo polje. Za prvi uslov odgovarajui doga aj je After Update (posle izmene), dok se za aktiviranje programa po drugom doga aju koristi Not In List (nije u spisku).

31

U doga aj AfterUpdate upiite sledei program:Dim rs As Object Private Sub Nadji_Knjigu_AfterUpdate() Dim rs As Object Set rs = Me.Recordset.Clone rs.FindFirst "[ID_Knjiga] = " & Str(Me![Nadji_Knjigu]) Me.Bookmark = rs.Bookmark ID_Knjiga.SetFocus Nadji_Knjigu.Value = "" End Sub

Da bi Access znao sa ime operie, to mu se mora rei. Objekat rs se definie kao Recordset - skup zapisa. Nad tim skupom zapisa se sprovodi pretraga (rs.FindFirst) i zatim se pokaziva premeta na na eni slog (Me.Bookmark). Fokus se premeta na ID_Knjiga dok se sadraj Combo polja Nadji_knjigu brie. U doga aj NotInList upiite:Private Sub Nadji_Knjigu_NotInList(NewData As _ String, Response As Integer) On Error GoTo Greska Greska: Nadji_Knjigu.Undo Response = accDataErrorContinue MsgBox "Neispravan unos ili broj ne postoji!", _ vbInformation, "Greka" End Sub

NewData je podatak koji je ukucan, a ne postoji u skupu zapisa. Ovaj podatak se moe iskoristiti za automatsko dodavanje u tabelu Knjige. Kako je ovde re o sluajnoj greci, ovo neemo raditi. Obradiemo samo greku: klauzula On Error GoTo Greska alje program na kodnu labelu Greska: i izvrava program iza nje. Prvo se ponitava unos sa Undo, presree se greka koju Access generie sa accDataErrorContinue i izdaje se poruka o greci MsgBox. Ovakva dva polja moete (i treba) sami da postavite na formu frmCitaoci. Pretraga treba da postoji po poljima ID_Citalac i Prezime_ime.

Komandna tablaKomandna tabla je, u stvari, skup tastera kojima se pristupa drugim elementima programa - formama i izvetajima. Ona moe sadrati i servisni deo gde e korisnik arhivirati bazu, uraditi kompresiju i slino. Ovde je dozovoljena umerena kreativnost - nenapadna slika i malo boje mogu doprineti ugodnijem vizuelnom efektu. to se same komandne table tie, ona e u naem sluaju biti obina "nevezana" forma (forma koja ne koristi niti jednu tabelu za prikaz podataka) setovana tako da "dri kontrolu" nad aplikacijom. Pre svega, valja da pokuamo da definiemo izgled i broj tastera sa namenom. NAPOMENA: Iako Access nudi arobnjaka koji pomae u kreiranju komandne table, mi emo je kreirati od nule, kako bi u potpunosti shvatili ta se krije ispod arobnjaka. Kada je jasno ta se ispod krije, mogu se koristiti arobnjaci koji e veinu parametara postaviti na priblino eljene vrednosti, koje se opet, neznatnim izmenama mogu dovesti na eljene. Time se kasnije znatno skrauje vreme potrebno za razvoj aplikacije.

Izgled komandne tablePredvideemo mesto za sliku na levoj strani du visine forme. U centralnom delu emo postaviti tastere za pristup formama i izvetajima baze. U naem primeru, svi tasteri e se nalaziti na jednoj komandnoj tabli, poto je aplikacija jednostavna. U sloenijoj aplikaciji neke od tastera valja postaviti na drugi ekran komandne table, naroito one tastere koji se re e koriste (kao to su razni izvetaji ili servisni moduli). Od tastera emo koristiti sledee:

32

Izdavanje / vraanje knjige Forma frmCitaoci Forma frmKnjige Pregled dunika Pregled svih knjiga Pregled izdatih knjiga po itaocima Arhiviranje baze Kompresija baze Formu emo postaviti na fiksnu veliinu bez mogunosti izmene razvlaenjem miem. Onemoguiemo standardne tastere za Minimize/Restore/Maximize i Close. Tako e emo joj iskljuiti i sve ostale standardne objekte: selektor zapisa, komande za kretanje kroz slogove i oba klizaa.

Pre imo na karticu formi i kliknom na taster New. Iz izbora odmah selektujmo Design View i kliknimo na OK. Otvorimo karticu osobina za formu i postavimo vrednosti opcija kao na slici levo. NAPOMENA: na slici se ne vidi jedino deo sa doga ajima, ali to nije bitno, jer nije upotrebljen nijedan. Dakle, za sve doga aje vrednosti ostavite prazne. NAPOMENA: U priloenoj arhivi se nalazi slika KNJIGE.BMP. Preuzmite arhivu sa aktuelnom bazom i raspakujte je na zgodno mesto. U Accessu otvorimo meni Insert i zatim kliknimo na Picture.... Prona imo sliku knjige.bmp, selektujmo je i potvrdimo izbor. Access e zatim kao objekat uvesti sliku na formu. Kliknimo na ikonu Text Box, pa postavimo polje negde pri vrhu forme. Selektujmo labelu i obriimo je pritiskom na taster Del, tako da ostane samo polje. Kliknimo na polje, pritisnimo taster F2 (editovanje) i u ovo nevezano polje upiimo: =date()

Na kartici osobina za ovo polje prona imo vrednost Format i iz padajue liste odaberimo Long Date. Postavimo veliinu fonta na 14 bold; boju ivice postavimo na boju forme; pozadinu polja postavimo tako e na boju forme i konano boju teksta postavimo na tamno plavu. Tasteri za brz pristup boji polja i ivice polja se nalaze u grupi tastera pod nazivom Formatting:

Za ovo polje postavimo i sledee osobine:

Enabled: No (ne moe uzeti fokus) Locked: Yes (onemoguuju izmene) Text Align: Center (centralno uravnat tekst) Zatim postavimo jedan komandni taster i odgovorimo sa Cancel kada se startuje arobnjak. Width i High postavimo na vrednosti 4,5cm i 0,9cm respektivno. Na novodobijenom tasteru e pisati neto nalik Command2. Dok je taster selektovan, pritisnimo preicu CTRL+C (kopiraj na Clipboard) i zatim CTRL+V (vrati sa Clipboarda).

33

Kako smo predvideli da e biti ukupno 8 tastera, pritisnimo jo 7 puta preicu CTRL+V. Access e pore ati jedan ispod drugog nove tastere sa nazivima Command3, Command4... Command9. Obratite panju da e natpis na tasteru ostati Command6, to nema veze sa pravim nazivom tastera - to je samo tekst na tasteru. NAPOMENA: Ako vam se brojevi ne slau sa mojima, nita strano. Access ima svoj interni broja i svaki novoubaeni taster dobija za jedan inkrementiran broj od prethodnog. Na sledeem asu emo tasterima na komandnoj tabli dodeliti nazive i funkcije kreirajui pri tome odgovarajue upite i izvetaje. Moete preuzeti spakovanu datoteku baze Bibl_08.MDB sa razra enim primerom (veliina ZIP datoteke je 218 kB), ako vam je ovaj deo do sada poznat ili ako vam veba negde zapne.

REZIME ASA 8Za ovaj as smo ovoliko predvideli. Ukoliko neke od opcija ne moete da prona ete ili neke od operacija ne moete da aplicirate, predlaem da jo jednom proitate prethodne asove. Objanjenja za operacije koje se ponavljaju su namerno izostavljena, jer ona se nalaze u nekom od prethodnih asova. Kao to ste primetili, neke opcije smo primenili na formu 'frmCitaoci' a neke na drugu formu 'frmKnjige' iako obe forme treba da ih imaju. Ukoliko uspete da ih prenesete sa jedne na drugu, na dobrom ste putu da primenite osnovna steena znanja i da se sami uspeno sluite programom Access.

as 9 - Funkcije komandne table

34

as 9 - Funkcije komandne table, kreiranje izvetajaRazvoj jednostavne aplikacije namenjene poslovanju biblioteke ulazi u zavrnu fazu. Paralelno sa "minkom" razviemo odgovarajue upite (za izdvajanje podataka po nekom kriterijumu) i izvetaje bazirane na upitima. Tasterima na komandnoj tabli dodeliemo odgovajue nazive, tasterske preice i programske akcije. Komanda tabla, kao centralni deo aplikacije, povezuje ostale elemente baze, odnosno programa. O osnovama ovog elementa aplikacije vie moete proitati na prethodnom asu . Otvorimo formu frmKomandnaTabla u reimu izmene dizajna. Tasterima emo prvo dodeliti nazive i preice sa tastature za brz pristup. Na prolom asu napravljeni plan za raspored tastera emo dopuniti na sledei nain, predvi ajui naziv tastera i tekst koji e se nalaziti na njemu: Opis Izdavanje / vraanje knjige Forma 'frmCitaoci' Forma 'frmKnjige' Pregled dunika Pregled svih knjiga Name Izdavanje Citaoci Knjige Duznici SveKnjige Caption &Izdavanje / Vraanje knjiga itao&ci Knji&ge Pregled &dunika Pregled &svih knjiga

Pregled izdatih knjiga po itaocima IzdateKnjige Pregled i&zdatih knjiga Arhiviranje baze + Kompresija baze Arhiva Kraj rada Kraj Kompesija i &arhiviranje programa &Kraj rada

Osobina Name je naziv tastera ije se ime upotrebljava u programu, dok je Caption tekst koji e se ispisivati na tasterima. Znak & (tzv. ampersend) ispred odre enog karaktera oznaava preicu sa tastature za pristup tom tasteru. U naem primeru ispred karaktera "d" na tasteru "Pregled &dunika" stoji znak &, to Accessu (ovo je standardizovano na nivou operativnog sistema) govori da se pritiskom na tastaturu, na slovo "d" aktivira odgovarajui taster na formi, kao da smo levim klikom mia kliknuli na njega. Obratite panju da, dok je forma u fokusu, nije neophodno kombinovati hot-key sa tasterom ALT. Za pretpostavku, ako se nekom od menija pristupa preko tastera sa &d i ako je u isto vreme aktivna forma koja na sebi ima taster sa &d, meniju emo pristupiti sa ALT+d, a tasteru na formi samo pritiskom na d. Valja obratiti panju da se na formi ne postavi isti hot-key za pristup dvoma komandnim tasterima: pri aktiviranju "vrueg tastera" aktivirae se prvi na formi. Postavimo osobinu fonta za taster "Kraj rada" na "bold". Sada komandna tabla treba da ima sledei izgled:

NAPOMENA Da bi datum u naslovu bio formatiran tano kao na ovoj slici, potrebno je da u apletu Regional Settings u Control Panelu, na listu Date, u polje Long Date Style postavite masku datuma dddd, d. MMMM yyyy.

35

Vratimo se u reim izmene dizajna za ovu formu i po imo od jednostavnijih doga aja. Prvo, za taster "Kraj" postavimo sledei program u njegov doga aj OnClick:Dim Response As Integer Response = MsgBox("Kraj rada?", vbYesNo, "Panja!") If Response = vbYes Then DoCmd.Quit Else Cancel = True Response = acDataErrContinue End If

Klikom na taster "Kraj rada" ili pritiskom na taster (sa tastature!) k Access postavlja kontrolno pitanje.

Odgovorom na Yes (ili samo y sa tastature) program zavrava rad. Odgovorom naNo (ili n) ponitava se akcija, preskae se poruka o greci koju Access generie i program nastavlja rad. Kontrolno pitanje nije neophodno, ali spreava sluajan izlazak iz programa, ako operater nehotice pritisne taster k na komandnoj tabli. Forma za pristup knjigama i itaocima emo pristupati preko tastera "Citaoci" i "Knjige". Za taster "Citaoci" postavimo sledei program u doga aj OnClick:DoCmd.Minimize DoCmd.OpenForm "frmcitaoci", acNormal

Ova dva reda programa prvo minimizuju Komandnu tablu i prikazuju formu frmCitaoci. Nakon to operater zatvori formu frmCitaoci, Komandna tabla treba da vrati prvobitni oblik. Za taster "Citaoci" postavimo jo jedan programski red u doga aju OnGotFocus:DoCmd.Restore

Nakon to snimite izmene i kliknete na taster "Citaoci", Komandna tabla se minimizuje i otvara se forma za rad sa itaocima. Ali, kada na formi za rad sa itaocima kliknemo na taster "Zatvori masku", aktivna forma se zatvara, a Komandna tabla ostaje umanjena! Naime, nama je aktivan i prozor baze i on prvi dobija fokus nakon zatvaranja forme frmCitaoci. U normalnim okolnostima, prozor baze se dri sakriven i Komandna tabla e prva dobiti fokus, odnosno, aktivirae se doga aj OnGotFocus na tasteru "Citaoci" koji e vratiti formi prvobitnu veliinu. Ovo ponaanje e biti jasnije u kasnijoj fazi razvoja programa, kada budemo prozor baze drali sakrivenim. Proceduru opisanu za taster "Citaoci" sprovedimo i na njemu susedni - "Knjige" sa jednom izmenom: umesto frmCitaoci u doga aju OnClick postaviemo frmKnjige. Ovim smo razreili ponaanje tri tastera na komandnoj tabli. NAPOMENA: U programima sa mnogo formi ne praktikuje se stalno otvaranje i zatvaranje formi, jer se tako gubi na brzini rada aplikacije. Umesto metoda DoCmd.OpenForm i DoCmd.Close koriste se metode Hide i Show. Naime, sve forme se po startu aplikacije uitaju u memoriji i sakriju se od prikaza. Zatim se, po potrebi, promenom parametara Hide i Show menja njihova vidljivost. Ova operacija je praktino trenutna, ali po cenu poveane potronje radne memorije.

Prvi izvetajPrvi izvetaj emo kreirati za taster Komandne table "Pregled svih knjiga". Izvetaj je jednostavan i ne zahteva posebne kriterijume upita, jer prikazuje sve knjige u naoj biblioteci. Zatvorimo Komandnu tablu i pre imo na karticu Reports. Klikom na taster New i iz menija odaberimo Design View. Otvorimo karticu osobina za izvetaj i Record Source postavimo na Knjige. Spisak polja table knjige dobijamo u zasebnom prozoru. Pre nego to pre emo na dizajniranje izvetaja i raspore ivanje polja, objasniemo izgled "sirovog", praznog izvetaja.

36

Osnovni izvetaj je podeljen na tri sekcije. U prvu, gornju, pod nazivom Page Header se postavlja naslov izvetaja, eventualno datum i neki drugi slian sadraj koji se pojavljuje samo na prvo strani. U drugu sekciju pod nazivom Details se postavljaju polja koji su nosioci podataka. Tu se moe postaviti i tekst, ali e se on za svaki zapis iz tabele ili upita ponavljati za svaki prikazani slog. U poslednju sekciju Page Footer postavlja se sadraj koji se nalazi samo na kraju izvetaja. Izvetaj treba da je pregledan i jednostavan, uz minimalnu koliinu dodatnih informacija. Ako nije neophodno postaviti vreme i datum tampanja to ne treba ni raditi. U naem sluaju interesuje nas sa koliko ukupno knjiga raspolae biblioteka i kog datuma je izvetaj sainjen. U sekciju Page Header postaviemo jednu labelu u kojoj emo upisati Pregled svih knjiga. Za font i veliinu predlaem Arial, 16, bold. Uravnajmo centralno u odnosu na list ovu labelu. Postavimo jo jednu labelu u gornjem levom uglu hedera i u nju upiimo Biblioteka: ovde do e naziv!. Iz liste polja tabele Knjige selektujmo prvu stavku ID_Knjiga i prevucimo je na izvetaj u drugu sekciju - Details:

Selektujmo labelu ID_Knjiga i obriimo je, tako da ostane samo polje sa podacima ID_Knjiga. Ovo polje umanjimo i premestimo ga u gornji levi ugao sekcije Details. Zatim u sekciji Page Header postavimo novu labelu, u nju upiimo ID i uravnajmo ispis teksta centralno. Ovu labelu postavimo tik iznad sekcije Details iznad polja ID_Knjiga, tako da po veliini bude jednaka sa poljem:

Uradimo to i za preostala polja tabele Knjige:

Sada "dovucimo" sekciju Page Footer do polja iz tabele Knjige:

Kako smo rekli da je datum veoma bitan za ovakvu vrstu izvetaja, postavimo jedan Text Box u sekciju futera, obriimo njegovu labelu i za vrednost upiimo =Date(). Ova funkcija daje vrednost trenutnog datuma. Nain ispisa moemo podesiti na kartici osobina za ovo polje, a ja predlaem da bude tipa Long Date, gde se ispisuje datum u obliku poput Ponedeljak, 5. Mart 2001. Uravnajmo ovo polje uz desnu ivicu izvetaja i ispis teksta postavimo na desno uravnanje.

37

Konano, snimimo izvetaj pod imenom rptPregledSvihKnjiga i proverimo njegov izgled pritiskom na taster Preview. Vratimo se Komandnoj tabli i doga aju On Click pridruimo sledei programski red:DoCmd.OpenReport "rptPregledSvihKnjiga", acViewPreview DoCmd.Maximize

U doga aj On Got Focus postavimo:DoCmd.Restore

Obratite panju da ako u programskom redu izostavite acViewPreview klik na taster e tampati izvetaj, umesto da ga prikae na ekran. Kako su doga aji ostalih tastera neposredno vezani za modul izdavanja i vraanja knjiga njih emo obraditi na sledeem asu, jer prvo moramo osmisliti najefikasniji nain rada sa zaduivanjem i razduivanjem. Ako ste paljivo pratili sve prethodne asove, verovatno ete nai "rupu" u programu. Neto to je veoma bitno za rad biblioteke, a na neki nain je isputeno, odnosno, na formama nije predvi eno da se na e. Ako ste sami uspeli da do ete do pitanja i odgovora, moete oputeno saekati sledei as. A ako niste, ne budite nestrpljivi! Odgovor ete nai u jednom od sledeih asova. Do tada moete sami proiriti Komandnu tablu tasterom "Pregled svih italaca", uz koga ete kreirati izvetaj za itaoce. Na sledeem asu poinjemo od modula za izdavanje i vraanje knjiga na koga e se nadovezati ostale funkcije Komandne table. Moete preuzeti spakovanu datoteku baze Bibl_09.MDB sa razra enim primerom (veliina ZIP datoteke je 127 kB), ako vam je ovaj deo do sada poznat ili ako vam veba negde zapne.

REZIME ASA 9Nakon to smo u prvom delu kursa paljivo razradili strukturu baze biblioteke i samo definisali par formi, odjednom smo preli na suprotni kraj, definiui komandnu tablu koja je "najvii" sloj aplikacije; tek smo onda poeli da se bavimo operativnim jezgrom aplikacije. Neka vas to ne zaudi, poto je to uobiajena metoda brzog razvoja aplikacija (RAD - rapid application development). Malo smo priali o povezivanju doga aja sa tasterima komandne tabele, a potom krenuli sa jo jednim vanim elementom aplikacije - izvetajima. Potrudite se da savladate elementarne tehnike povezivanja tabele i izvetaja, poto izvetaji ine jedan od krajnjih ciljeva svake ozbiljne aplikacije. as 10 - Izvrni moduli aplikacije

38

as 10 - Izvrni moduli aplikacijeCentralni deo aplikacije je modul za izdavanje i vraanje knjiga. Na ovom asu emo kreirati jedan jednostavan izvrni modul aplikacije uz komentare na nain rada i izmene koje bi doprinele funkcionalnosti. Aplikacija moe imati jedan ili vie izvrnih modula, gde pod "izvrnim modulom" smatramo (u naem sluaju) formu koja operie podacima iz vie tabela ostvarujui interakciju izme u njih. Konkretno, tabele Knjige i Citaoci e preko ovog modula ostvariti vezu, a kako su to jedine dve tabele koje ostvaruju vezu, imaemo samo jedan izvrni modul. U sluaju da imamo tri entiteta koja treba povezati (npr. kupci, dobavljai i isporuioci) imali bi najmanje dva izvrna modula. ta bi izvrni modul u stvari trebao da radi? Kao osnovno, treba da omogui unos inventarskog broja knjige, ifre potroaa i datuma izdavanja, odnosno vraanja knjige. Pri izdavanju, treba da postavi oznaku u Status knjige da je knjiga izdata, kako se ona ne bi pojavljila ponovo u listi tj. da ne bi grekom mogli jednu knjigu da izdamo dva ili vie puta bez da je prethodno vraena. Tako e, kada knjiga bude vraena, treba oznaku knjige u polju Status vratiti na prethodnu, tako da program zna da je knjiga ponovo raspoloiva. Modul treba da obezbedi da se po unoenju ifre itaoca i inventarnog broja knjige na ekranu prikau puni podaci za itaoca i knjigu (ovo se reava pomou podmaski - podformi, to emo kasnije videti). Potrebno je obezbediti se od greaka; modul pre svakog upisa treba da postavi kontrolno pitanje da li se podaci zapisuju ili se odustaje od upisa u sluaju da je operater grekom uneo podatke.

Kreiranje modula (forme)Pre imo na karticu formi i kreirajmo novu formu. Otvorimo karticu osobina (Properties) za ovu formu. Za Record Source upiimo sledeu SQL (*) strukturu:SELECT [Poslovanje].[ID_Zapis], [Knjige].[Status], [Poslovanje].[Dat_izd], [Poslovanje].[Dat_vr], [Poslovanje].[ID_Citalac], [Poslovanje].[ID_Knjiga] FROM Knjige RIGHT JOIN (Citaoci RIGHT JOIN Poslovanje ON [Citaoci].[ID_Citalac]=[Poslovanje].[ID_Citalac]) ON [Knjige].[ID_Knjiga]=[Poslovanje].[ID_Knjiga];

Napomena: Sintaksa SQL komande doputa ispisivanje u jednom ili vie redova, svejedno je. Pisanje kljunih rei velikim slovima je konvencija uzvojena radi lakeg itanja i predlaemo da je se pridravate. (*) SQL je skraenica za Structured Query Language - struktuirani upitni jezik. SQL je razvila firma IBM i on je predstavljao jezik za postavljanje upita nad bazama podataka koje su se nalazile na velikim raunarima. Danas je SQL jezik za postavljanje upita nad bazama podataka (misli se na baze podataka generalno, bez obzira na lokaciju), a u Accessu on moe biti predstavljen i kao standardni Query (upit). Na levoj strani Record Source postoji jedan mali taster sa tri takice na sebi. Klikom na njega otvara se klasian Accessov upit koji grafiki reprezentuje SQL naredbu:

39

Na ovaj nain smo kreirali prvi upit. Iako idemo "od nazad" na upite emo se kasnije vratiti. Iz liste polja upita (slika dole levo) prevucimo polja na formu i rasporedimo ih kao na slici dole desno:

Na slici su polja ID_zapis i Status sive boje, jer je osobina Enabled postavljena na False. To znai da korisnik nee moi da pristupa ovim poljima i da u njih nee moi da unosi i menja podatke. Za polje ID_zapis koje je tipa AutoNumber, promena podataka je nemogua i nema smisla ak i ako je ovom polju dozvoljen pristup. Kako smo ve rekli, AutoNumber je broja, koji automatski inkrementira svoju vrednost po svakom unosu, a nama slui za numeraciju naih unosa. Status oznaava status knjige i ovo polje emo iskoristiti za "oznaavanje" knjige: da li je knjiga izdata (vrednost polja "i"), da li je knjiga raspoloiva za izdavanje ("u") itd. Status e Access sam popunjavati, zavisno od unosa podataka na izvrnom modulu. Pritisnimo desnim tasterom mia na polje ID_Citalac i iz skraene liste za ovo polje pre imo na Change to i selektujmo vrednost Combo Box:

Combo polje je u naem sluaju praktinije od obinog tekst-polja, jer ono moe sadrati listu podataka iz koje biramo vrednost. Ovu listu moemo ograniiti, tako da korisnik ne moe uneti bilo koji broj itaoca, ve samo tano onaj koji postoji u tabeli Citaoci. Ovim se ujedno obezbe ujemo od unosa pogrenih podataka za itaoca. Za Row Source ovog polja postavimo sledeu SQL strukturu:SELECT [Citaoci].[ID_Citalac], [Citaoci].[Prezime_ime] FROM Citaoci;

Postavimo i vrednost ostalih osobina:Column Count = 2 Column Widths = 1cm; 2cm Limit To List = Yes

Probajmo formu kako radi: otvorimo je u prikazu za unos i izmenu podataka, pre imo na polje ID_Citalac i pritisnimo taster F4. Otvara se padajua lista sa ifrom itaoca i njegovim imenom i prezimenom. Operater moe samo ukucuti ifru itaoca ili je moe izabrati iz liste kretajui se kurzorima po njoj i pritiskanjem tastera ENTER za potvrdu izbora:

40

Uinimo isti postupak za ID_Knjiga, s tim da e se SQL struktura razlikovati:SELECT [Knjige].[ID_Knjiga], [Knjige].[Naslov], [Knjige].[Status] FROM Knjige WHERE ((([Knjige].[Status])"i"));

Kriterijum "i" postavlja filter na ovo polje tako da e biti prikazane samo one knjige kod kojih vrednost polja Status nije "i" (knjiga Izdata). Zatvorimo glavni modul i snimimo ga pod nazivom frmPoslovanje.

Podforma (podmaska ili podobrazac)Podforme su klasine forme koje se "ugne uju" u glavnu formu (Master) i vezane su sa njom preko odre enog kriterijuma. Obino slue za prikazivanje dodatnih podataka o nekom pojmu koji se turo pojavljuje kroz ifru na glavnoj formi. Na naem glavnom modulu se pojavljuju ifre za itaoca i inventarni broj knjige kroz dva broja, to ne govori mnogo o itaocu i knjizi. Podforma se isprva kreira kao obina forma i zatim se postavlja na glavnu formu. Kreirajmo jednu praznu formu, za Record Source postavimo tabelu Citaoci i sva polja prevucimo iz liste polja (Field List) na formu. Selektujmo sva polja i postavimo osobinu Enabled = False. Podforma