HOME       ELEKTRONIKA       PROGRAMI       DIVX       TELEKOMUNIKACIJE       XXX       INTERNET

 

 

 

Na ovom času nas očekuje nastavak rada sa formama. Videćemo š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 piše "Obriši 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 konačan 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 sadrži standardne kontrole: kontrole za navigaciju i selektovanje sloga. Kontrolama za navigaciju korisnik se kreće kroz slogove napred i nazad; skače 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 numeričkim indikatorom tekućeg sloga tabele

  • Taster za skok na sledeći slog tabele

  • Taster za skok na poslednji slog tabele

  • Taster za skok na novi slog

  • of 1 - ukupan broj slogova, odnosno zapisa

U polje sa indikatorom tekućeg sloga se može 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 nepraktična, stoga se za navigaciju kroz slogove tabele koriste prečice sa tastature opisane u prethodnom času. Navigacija ovim kontrolama je često nepraktična, 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 miša na bilo koji deo njene površine, Accessu nalažemo da selektuje ceo slog nad kojim se mogu primeniti standardne operacije: Cut, Copy i Delete.

 

NAPOMENA:
Sa tastature, prečica CTRL+A selektuje sve slogove!

 

Alternativne kontrole se mogu realizovati na više načina - mogu biti u obliku tastera, površine, hiperlinkova ili praktično bilo čega drugog (fotografije na primer) i korisniku početniku mogu odmah biti shvatljive jer se oblikom i tekstom na srpskom jeziku nedvosmisleno definišu. Najčešće se koriste kontrole u obliku tastera na kome je napisano nešto poput Obriši 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. Pređimo na karticu format i postavimo sledeće osobine i vrednosti:

 

Scroll Bar

Neither

Klizači se nikada neće videti

Record Selectors

 No

Bez selektora sloga

Navigation Buttons

 No

Kontrole za navigaciju se neće videti

Auto Center

 Yes

Forma se po otvaranju pojavljuje na sredini ekrana

Border Style

 Dialog

Veličina forme ne može da se menja

Caption

 Čitaoci

Upišimo u naslovnu liniju forme tekst "Čitaoci"

 

Od tastera za navigaciju, postavićemo samo taster za skok na novi slog i taster za zatvaranje forme. Taster za brisanje sloga nećemo postaviti, kako ne bismo došli u situaciju da program napravi grešku ako se traži pregled istorije izdavanja knjige, kada bi knjigu dodelio nepostojećoj šifri čitaoca. Od polja za pretragu postavićemo 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 miša na bilo koju ikonu na postojećem toolbaru i u listi koja se pojavi uključimo Toolbox.

 

 

U ovom toolbaru se nalaze ikone koje predstavljaju kontrole koje se mogu postaviti na aktivnu formu. Upotreba miša i ovakvih ikona znatno skraćuje postupak dizarniranja, te je njihova upotreba ovde poželjna. Najpre ćemo povući donju ivicu forme nadole, kako bismo napravili mesto za buduće tastere:

 

 

Kliknimo mišem 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 odgovarajući VBA (Visual Basic for Applications) program i sliku odnosno tekst na taster. Rad sa ovim čarobnjakom je prilično trivijalan i uz malo poznavanje engleskog jezika dovešće do željenog rezultata. Međutim, iako ovakav način rada najviše odgovara početnicima, mi ćemo krenuti drugim putem i preskočiti č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 piše nešto poput Command1.

 

Događaji (eng. Events)

Svaka korisnička akcija nad formom signalizira da se aktivira određeni program vezan za događaj, ako takav uopšte postoji. Događaja ima dosta i oni pokrivaju sve moguće 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 učitavanju forme i pri davanju fokusa formi: OnGotFocus. Za svaki od tih događaja u odgovarajući rubriku kartice Properties možemo postaviti program.

 

Princip rada je sledeći: kada (za primer) korisnik klikne mišem na određeni taster na formi, Access provera da li postoji VBA program/makro za taj događaj i izvršava ga. Ukoliko ne postoji, ne dešava se ništa. U našem slučaj kada pređemo u mod za rad sa formom Citaoci na kojoj je taster Command1, levi klik mišem na taster neće inicirati nijedan program - jer on još nije napisan.

 

Ovom tasteru ćemo promeniti naziv u Zatvori masku; napravićemo da se klik na taster može proizvesti sa tastature (ALT+Z) i napisati vrlo jednostavan program koji će zatvoriti formu.

U dizajn modu forme Citaoci kliknimo desnim tasterom miša na taster Command1 i otvorimo karticu osobina (Properties). Pređimo na tab All i popunimo polje Caption sledećim sadržajem:

 

&Zatvori masku

Konačno, pritisnimo taster Enter sa tastature. Primetimo da se naziv tastera na formi promenio iz Command1 u Zatvori masku, a slovo Z je podvučeno. Znak & nalaže Accessu da se slovu iza njega dodeljuje mogućnost pristupa sa tastature u kombinaciji sa tasterom ALT. To znači da korisnik može pristupiti ovom tasteru i ostvariti klik na njega bilo gde da se kurzor nalazi pritiskom kombinacije ALT+Z.

Ovom tasteru na formi smo dodelili prečicu na tastaturi; potrebno je još i da postavimo odgovarajući program, što ćemo učini na jedan od dva načina.

 

1. Makro program

Pređimo sada na karticu makroa i kliknimo na taster New. Otvara se prozor u kome pišemo makro. U prvo polje, pod Action upišimo Close. Polja Object Type i Object Name ostavimo prazna. Pod Save upišimo (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, videćemo da ja polje padajućeg 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 pridružili makro koji se aktivira klikom miša na njega. Sem na klik miša, ovaj taster se može "pritisnuti" na više načina: prečicom 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. Dobićemo upozorenje da je promenjen izgled i način rada forme, te da izmene nisu snimljene. Snimimo ih pritiskom na taster Yes. Konačno otvorimo (dvoklikom miša) formu ponovo i kliknimo na taster Zatvori formu. Forma se zatvara i sa ovim tasterom smo završili rad što se makroa tiče.

 

2. VBA program

Ukoliko smo se odlučili da umesto makroa koristimo procedure jezika VBA (ovde bi reč "preporuka" trebalo da bude zamenjena sa rečju "obaveza"), postupićemo na sledeći način. Otvorimo formu u dizajn pogledu, selektujmo taster Zatvori formu i na kartici osobina pronađimo za njega događaj On Click. Otvorimo padajuću listu i iz nje odaberimo prvu opciju - [Event Procedure]. Na desnoj strani tog polja pojavljuje se mali taster sa tri tačke na njemu. Kliknimo na njega. Otvara se prozor Visual Basic Editora u kome pišemo odgovarajuće VBA programe.

 

Na ekranu ćete dobiti sledeće:

 

Option Compare Database
-------------------------------

Private Sub Command1_Click()

End Sub

"Private Sub Command1_Click()" ovde znači 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 smešta između klauzula 'Sub' i 'End Sub'.

 

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. Uvlačenje se koristi kako bi program bio čitljiviji i uredniji. Različita uvlačenja koristite za odvojene delove podprograma. Dva-tri razmaka su dovoljna da bi se stekao pregled (recimo) gde celina počinje i gde se završava.

 

Upišimo ovde sledeće:

 

DoCmd.Close

Primetimo da se posle tačke iza DoCmd (što znači "Izvrši komandu") otvara lista sa mogućim naredbama koje mogu slediti. Sve drugo, osim toga što je u listi, neće imati nikakvu funkciju i program će prijaviti grešku.

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 skrećemo pažnju da je bolje da koristite VBA umesto makroa, ma kako oni izgledali lakši za pisanje. Makroi u verziji Accessa 2000 postoje samo zbog kompatibilnosti sa ranijim verzijama; lako je moguće da ih već u narednoj verziji neće biti uopšte. Sem toga, VBA je u stvari prošireni Basic, koji je nastao sa idejom da se komande izdaju na gotovo čistom engleskom jeziku. Samim tim, sa poznavanjem engleskog jezika, olakšano je savladavanje VBA programa.

 

Poštujući 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 sledeći program:

 

DoCmd.GoToRecord acActiveDataObject, , _
  acNewRec ID_Citalac.SetFocus

NAPOMENA
Obratite pažnju 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 presečete jedan red makroa (npr. zbog bolje čitljivoasti ili, kao ovde, da bi se sačuvao izgled stranice) možete primeniti ovaj trik.

 

Prvi red zahteva da se pređe na novi slog aktivne forme, dok se u drugom redu fokus premešta sa taster Dodaj novog na polje ID_Citalac. Taster Dodaj novog se može aktivirati i sa tastature kombinacijom tastera ALT+D.

 

 Datoteka cas07.zip (41 kb)

Možete preuzeti spakovanu datoteku baze Bibl_07.MDB sa kreiranim tabelama (veličina ZIP datoteke je oko 41 kB), ako vam je ovaj deo do sada poznat ili ako vam vežba negde zapne.

 


Rezime časa 7

Počeli smo da pravimo ozbiljne promene detalja u našoj aplikaciji. Pokazali smo kako se izvodi tipična promena ponašanja 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 sledećem času ćemo preći na formu knjige i kreiraćemo glavni radni ekran sa komandnom tablom (Switchboard).

 

Čas 8 - Komandna tabla aplikacije

 

      HOME       ELEKTRONIKA       PROGRAMI       DIVX       TELEKOMUNIKACIJE       XXX       INTERNET