HOME       ELEKTRONIKA       PROGRAMI       DIVX       TELEKOMUNIKACIJE       XXX       INTERNET

 

 

Na ovom času ćemo ukratko preći preko forme 'Knjige' sa akcentom na pretragu. Proceduru opisanu u času broj 7 možemo jednako primeniti i na ovu formu, s tim da postupak kreiranja polja za pretragu koji će biti opisan u ovom času, možemo uz neznatne izmene primeniti i na formu 'Citaoci'.

 

Drugi deo časa je posvećen komandnoj tabli (engl. Switchboard) iz koje se mogu aktivirati ostale forme i izveštaji. Slične komandne table se mogu videti u primerima baza koje se instaliraju uz Microsoft Office 2000.

 

 

Forma 'Knjige'

Za efikasno praćenje kreiranja forme Knjige predlažem da pogledate čas 6 na kome je opisana procedura kreiranja forme Citaoci. Osim ulazne tabele, sva podešavanja veličine, izgleda i načina ponašanja objekata možemo 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 odgovarajuće ulazne podatke i zatim postavite tastere &Dodaj novu i Zatvori masku sa odgovarajućim VBA programom.

 

Iako smo pomenuli makro jezik i ma kako lak on izgledao za jednostavne operacije, predlažem da zaboravite da postoji i da punu pažnju obratite na jezik VBA. Ovo je veoma važan korak i uspešnim kreiranjem forme frmKnjige potvrđujete sebi da ste savladali dosadašnje gradivo.

 

Formu frmKnjige otvorite u pogledu za izmenu dizajna i otvorite meni View i opciju Tab Order.... Ovde se može podesiti redosled po kome će se kurzor kretati kada korisnik pritisne taster Tab ili Enter. Smisleno je da se kurzor premesti na sledeće polje, a ne da se podaci popunjavaju odozdo na gore ili nekim drugim redosledom. Obratite pažnju na spisak polja i zatim pritisnite taster Auto Order. Access će pokušati da poređa polja logičnim redosledom, a ako ne primetite razliku pre apliciranja ove operacije i posle nje, to znači da je redosled dobar.

 

 

Obratite pažnju da Access ponekad zna da omane: ako su vam polja u dve ili više kolona, rezultat će biti neizvesan, u zavisnosti od vaše namere - da li će se popunjavati prva kolona, pa zatim druga ili naizmenično obe. Nažalost, premalo polja imamo da bismo pokazali na primeru, ali će ovo biti nedvosmisleno jasno kada budete došli 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 izdužite je na širinu forme.

 

 

 

Uloga ove linije je najviše da bude ukras - ona logički odvaja (buduća) polja za pretragu i sadržaj tabele. 

 

Pretraga

Polje za pretragu se obično postavlja kao Combo polje, tj. kao padajuća lista sa mogućnošću direktnog unosa ili uz izbor iz ograničene liste podataka. Kucanjem teksta ili brojeva u ovo polje, Access pokušava da dopuni ostatak sadržaja kojeg korisnik traži. Zašto Combo polje, a ne obično? Jednostavno zato što ono ima neke osobine koje obično polje nema (opciju Limit to List ili On Not In List). Postavimo jedno polje za pretragu knjiga po ključu ID_Knjiga.

 

Prvo kliknimo na ikonu Combo polja i zatim na formu:

 

 

 

Ako imate instalirane "čarobnjake", pokrenuće se jedan od njih koji će vas provesti kroz proceduru postavljanja parametara za Combo polje na osnovu odgovora na ponuđeni izbor. Ovu proceduru možete kasnije upotrebiti. Za sada ćemo je preskočiti, kako biste mogli da shvatite šta se iza nje krije.

Pritiskamo taster Cancel, otvaramo karticu osobina za Combo polje i postavljamo sledeće osobine i vrednosti (klikom na svaku sliku dobijate sliku u punoj veličini):

 

Klikni za punu sliku

 

Klikni za punu sliku

Klikni za punu sliku

 

Klikni za punu sliku

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

  • ako korisnik unese šifru knjige koja postoji, forma prikazuje traženu knjigu, briše se sadržaj polja Nadji_knjigu i skače se na šifru knjige;

  • ako korisnik unese šifru koja ne postoji ili unese tekst u ovo polje, izbor se poništava, presreće se poruka o grešci koju Access generiše, izdaje se poruka o grešci i fokus se vraća na Combo polje Nadji_knjigu

Da bismo ispunili ove uslove, koristićemo program sa dva događaja za ovo polje. Za prvi uslov odgovarajući događaj je After Update (posle izmene), dok se za aktiviranje programa po drugom događaju koristi Not In List (nije u spisku).

 

U događaj AfterUpdate upišite sledeći 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 operiše, to mu se mora reći. Objekat rs se definiše kao Recordset - skup zapisa. Nad tim skupom zapisa se sprovodi pretraga (rs.FindFirst) i zatim se pokazivač premešta na nađeni slog (Me.Bookmark). Fokus se premešta na ID_Knjiga dok se sadržaj Combo polja Nadji_knjigu briše.

 

U događaj NotInList upišite:

 

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,  "Greška"

End Sub

 

NewData je podatak koji je ukucan, a ne postoji u skupu zapisa. Ovaj podatak se može iskoristiti za automatsko dodavanje u tabelu Knjige. Kako je ovde reč o slučajnoj grešci, ovo nećemo raditi. Obradićemo samo grešku: klauzula On Error GoTo Greska šalje program na kodnu labelu Greska: i izvršava program iza nje. Prvo se poništava unos sa Undo, presreće se greška koju Access generiše sa accDataErrorContinue i izdaje se poruka o grešci MsgBox.

Ovakva dva polja možete (i treba) sami da postavite na formu frmCitaoci. Pretraga treba da postoji po poljima ID_Citalac i Prezime_ime.

 

 

Komandna tabla

Komandna tabla je, u stvari, skup tastera kojima se pristupa drugim elementima programa - formama i izveštajima. Ona može sadržati i servisni deo gde će korisnik arhivirati bazu, uraditi kompresiju i slično. Ovde je dozovoljena umerena kreativnost - nenapadna slika i malo boje mogu doprineti ugodnijem vizuelnom efektu.

 

Što se same komandne table tiče, ona će u našem slučaju biti obična "nevezana" forma (forma koja ne koristi niti jednu tabelu za prikaz podataka) setovana tako da "drži kontrolu" nad aplikacijom.

Pre svega, valja da pokušamo da definišemo izgled i broj tastera sa namenom.

 

NAPOMENA:
Iako Access nudi čarobnjaka koji pomaže 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 većinu parametara postaviti na približno željene vrednosti, koje se opet, neznatnim izmenama mogu dovesti na željene. Time se kasnije znatno skraćuje vreme potrebno za razvoj aplikacije.

 

Izgled komandne table

Predvidećemo mesto za sliku na levoj strani duž visine forme. U centralnom delu ćemo postaviti tastere za pristup formama i izveštajima baze. U našem primeru, svi tasteri će se nalaziti na jednoj komandnoj tabli, pošto je aplikacija jednostavna. U složenijoj aplikaciji neke od tastera valja postaviti na drugi ekran komandne table, naročito one tastere koji se ređe koriste (kao što su razni izveštaji ili servisni moduli). Od tastera ćemo koristiti sledeće:

  • Izdavanje / vraćanje knjige

  • Forma frmCitaoci

  • Forma frmKnjige

  • Pregled dužnika

  • Pregled svih knjiga

  • Pregled izdatih knjiga po čitaocima

  • Arhiviranje baze

  • Kompresija baze

Formu ćemo postaviti na fiksnu veličinu bez mogućnosti izmene razvlačenjem mišem. Onemogućićemo standardne tastere za Minimize/Restore/Maximize i Close. Takođe ćemo joj isključiti i sve ostale standardne objekte: selektor zapisa, komande za kretanje kroz slogove i oba klizača.

 

Klikni za punu sliku 

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 po slici:

 

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 priloženoj 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 obrišimo je pritiskom na taster Del, tako da ostane samo polje. Kliknimo na polje, pritisnimo taster F2 (editovanje) i u ovo nevezano polje upišimo:

 

     =date()

Na kartici osobina za ovo polje pronađimo vrednost Format i iz padajuće liste odaberimo Long Date. Postavimo veličinu fonta na 14 bold; boju ivice postavimo na boju forme; pozadinu polja postavimo takođe na boju forme i konačno 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 sledeće osobine:

  • Enabled: No (ne može uzeti fokus)

  • Locked: Yes (onemogućuju 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 nešto nalik Command2. Dok je taster selektovan, pritisnimo prečicu CTRL+C (kopiraj na Clipboard) i zatim CTRL+V (vrati sa Clipboarda).

 

Kako smo predvideli da će biti ukupno 8 tastera, pritisnimo još 7 puta prečicu CTRL+V. Access će poređati jedan ispod drugog nove tastere sa nazivima Command3, Command4... Command9. Obratite pažnju 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 slažu sa mojima, ništa strašno. Access ima svoj interni brojač i svaki novoubačeni taster dobija za jedan inkrementiran broj od prethodnog.

 

Na sledećem času ćemo tasterima na komandnoj tabli dodeliti nazive i funkcije kreirajući pri tome odgovarajuće upite i izveštaje.

 

 Datoteka cas08.zip (218 kb)

Možete preuzeti spakovanu datoteku baze Bibl_08.MDB sa razrađenim primerom (veličina ZIP datoteke je 218 kB), ako vam je ovaj deo do sada poznat ili ako vam vežba negde zapne.

 


Rezime časa 8

Za ovaj čas smo ovoliko predvideli. Ukoliko neke od opcija ne možete da pronađete ili neke od operacija ne možete da aplicirate, predlažem da još jednom pročitate prethodne časove. Objašnjenja 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 stečena znanja i da se sami uspešno služite programom Access.

 

Čas 9 - Funkcije komandne table

 

      HOME       ELEKTRONIKA       PROGRAMI       DIVX       TELEKOMUNIKACIJE       XXX       INTERNET