+
Informacioni sistemi i baze podataka

Informacioni sistemi i baze podataka

Author: Dragan Milošević
Description:

Osnove rada u MS Access-u i osnove SQL-a

(more)
See More
Try a College Course Free

Sophia’s self-paced online courses are a great way to save time and money as you earn credits eligible for transfer to over 2,000 colleges and universities.*

Begin Free Trial
No credit card required

25 Sophia partners guarantee credit transfer.

221 Institutions have accepted or given pre-approval for credit transfer.

* The American Council on Education's College Credit Recommendation Service (ACE Credit®) has evaluated and recommended college credit for 20 of Sophia’s online courses. More than 2,000 colleges and universities consider ACE CREDIT recommendations in determining the applicability to their course and degree programs.

Tutorial

Podešavanje klika na dugme

Jednom dugmetu (Button) koga nanesemo na formular (Form) možemo dodeliti razne funkcije u dijalog prozoru koji se pojavljuje čim postavimo dugme:

Sa leve strane se nalaze kategorija (Categories) među kojima odabiramo one kojima želimo da naše dugme upravlja. Moguće opcije:

  • Record Navigation - predstavlja kretanje po slogovima (records), tj. ako kliknemo na dugme možemo da prelazimo sa jednog na drugi slog. Da se podsetimo: slog je skup podataka u jednom redu tabele.
  • Record Operations - slično kao Record Navigation, ali umesto samog kretanja kroz slogove i njihovog pregledanja možemo i da ih brišemo, sačuvamo izmene, dodamo novi slog i sl.
  • Form Operations - operacije sa formularima: otvranje prozora sa nekim drugim postojećim formularom, štampanje ovog ili nekog drugog formulara, zatvranje ovog prozora sa formularom na kome se nalazi dugme.
  • Report Operations - slišno kao Form Oprations, samo se operacije primenjuju na postojeći izveštaje (reports).
  • Application - ovde postoji samo jedna operacija, a to je da se zatvori glavni prozor aplikacije (Access-a).
  • Miscellaneous - Ovo su specifične operacije koje se mogu obaviti klikom na dugme, kao što je pokretanje napisanog programskog koda koga nazivamo Macro. Zatim pokretanje upita ili štampanje neke od postojećih tabela. Ova kategorije se retko koristi.

Odaberimo, na primer, Report Operations. Želimo da odštampamo izveštaj koji smo prethodno kreirali na osnovu još ranije kreiranog upita. Neka se upit zove "Film_query", a izveštaj "Film_report". Ako niste krerali izveštaj i upit, onda prvo kreirajte upit, a zatim i izveštaj za taj upit, pre nego što nastavite sa vežbom.

Sada sa desne strane dijalog prozora (slika gore) biramo Print Report. Klikom na dugme "Next" dobićemo spisak postojećih izveštaja. Odaberimo jedan "Film_report". Dobićemo sledeći dijalog prozor:

Ovde možemo odabrati da li želimo da na dugmetu stoji slika (tada biramo opciju Picture) ili tekst (biramo opciju Text), a zatim u polju za tekst upišemo željeni tekst, npr. "Stampaj". Kasnije možemo podesiti da dugme ima i sliku i tekst. Tako da ova opcija nije toliko bitna - "Next".

Dobićemo prozor u koji unesemo naziv dugmeta. Ovo je bitno kada želimo da napišemo neki programski kod u vezi ovog dugmeta, ali pošto se nećemo time baviti, dovoljno je kliknuti "Finish".

Sada, na formularu stoji dugme sa podešavanjima koja smo u gore opisanom postupku postavili. Selektujmo dugme i u prozoru "Property Sheet" (s desne strane) odaberimo karticu "Event" i u opciji "On Click" kliknimo na dugme sa tri tačkice (slika dole):

Nakon toga dobićemo prozor za uređivanje programskog koda koji se zove Macro. Međutim, nećemo pisati nikakav programski kod, jer na Access nudi automatska podešavanja, te je samo potrebno upisati određene uslove u predviđena mesta:

Sada, prilikom pregledanja filmova u kreiranom formularu kada kliknemo na postavljeno dugme trebalo da se pojavi izveštaj "Film_report" sa podacimo o filmu koji se nalaze i na formularu.

Sračunata polja

Nekada želimo da prikažemo podatke u upitima koji nisu sastavni deo ni jedne tabele, ali se mogu dobiti proračunima nad podacima iz tabele. Ovakva polja se nazivaju sračunata polja. Njih polja možemo dobiti korišćenjem Access operatora i funkcija, od kojih smo neke pominjali u prethodnim lekcijama.

Primer: Pored imena, prezimena i svih ocena iz predmeta želimo da prikažemo i dan u nedelji kada je ocena dobijena. Kao što znamo dan u nedelji ne posotji u tabelama, ali postoji datum kada je ocena dobijena. Da bi prikazali dan u nedelji koristećemo sledeće funkcije za izdvajanje dana iz datuma:

WeekdayName(Weekday([Datum]))

Da bi smo ovo uradili, kreiramo upit kao i u prethodnim lekcijama samo što pored svih odabranih polja dodamo još jedno i to tako što otkucamo:

Dan u nedelji: WeekdayName(Weekday([Datum]))

Ovo označava da će nam se dodatno polje zvati "Dan u nedelji", a da će njegove vred nosti biti dobijene kada se primene funkcije (ili operacije) koje slede posle dvotačke.

NAPOMENA: Sračunata polja se mogu koristiti i u samim tabelama. Na primer, kada znamo osnovnu cenu nečega i porez, onda da ne bi unosili cenu koja se dobija kada se obračuna porez, možemo napraviti da polje u kome će biti cena sa porezom bude sračunato pomoću formule.

Opcije za kriterijume u upitima

Kao što je napomenuto u prethodnom objašnjenju, u upitima možemo koristiti kriterijume da bi smo suzili rezultat upita. Na primer, ukoliko nam nisu potrebne ocene svih učenika (kao što je dato u prethodnom objašnjenju) nego, na primer, želimo samo ocene učenika/učenica čije je ime "Sanja" onda za polje Ime u opciji Criteria dovoljno je napisati "Sanja" kao na slici:

Nakon pokretanja upita dobićemo ocene za sve učenice (možda ih ima više) sa imenom "Sanja". Ukoliko nema take učenici onda će tabela biti prazna.

Prilikom zadavanja kriterijuma možemo koristiti Access operatore i funkcije. Na primer, funkcije za izdvajanje godine iz datuma, ili operator > za upoređivanje da li su vrednosti polja veće od neke zadate.

Ovde ćemo dati pregled nekih operatora i funkcija koje se često koriste i navesti primere.

Operatori <, >, =, <=, >= - trebalo bi da je ovo poznato, jer oni nisu ništa drugo nego matematički opearatori. Ako se zadržimo na primeru iz prethodnog objašnjenja i želimo da pogledamo samo koji učenici i iz kog predmeta imaju ocenu 3 ili 4, onda bi upit izgledao ovako:

NAPOMENA: kao što vidimo možemo koristiti kombinacije opratora koji nam odgovaraju uključujući i logičke operatore And i Or.


Like funkcija - ovu funkciju koristimo kod tekstualnih polja kada želimo da izdvojimo polja koja sadrže određeni tekst. Na primer, želimo da izdvojimo sve učenike koji u svom prezimenu imaju sekvencu "evi":

Obratimo pažnju na zvezdice. One predstavljaju džokere za bilo koji karakter. Tako da naveden kriterijum "*evi*" znači da se sekvenca "evi" nađe negde u sred teksta. Ukoliko bi želeli da sekvenca "evi" bude na početku teksta onda bi pisali "evi*" (zvezdica samo na kraju).


Funkcije za izdvajanje godine, meseca i dana iz datuma - Za izdvajanje godine iz datuma koristimo funkciju Year, za mesec Month, za dan Day, za redni broj dana u nedelji Weekday. Možemo izdvojiti i naziv dana (Monday, Tuesday...) pomoću funkcije WeekDayName. Na primer, želimo da izdvojimo sve ocene koji su dobijene u oktobru 2015. godine.

Obratimo pažnju da se ime polja mora navesti u srednjim zagradama, tj. [Datum].

Ukoliko bi želeli da izdvojim sve ocene dobijene ponedeljkom pisali bi:

Weekday([Datum]) = 2 - drugi dan u nedelji, jer je u americkoj notaciji ustvari nedelja prvi dan u nedelji (sedmici).



Kreiranje upita

Pomoću upita možemo iz više tabela izdovjiti podatke koji su nam potrebni. Tako izdvojeni podaci se nazivaju rezultat upita.

Rezultat upita se predstavlja u novoj tabeli koju Access automatski kreira. Ukoliko nema traženih podataka rezultat upita će biti prazan, pa će tako i tabela biti prazna.

Primer upita: Ime i prezime učenika sa spiskom naziva predmeta i ocenama za taj predmet. Ovde se podaci uzimaju iz tri tabele: ucenici, predmeti i ocene.

Upit kreiramo tako što odaberemo opciju Query Design ili Query Wizard iz kartice Create.

Odmah potom dobijamo dijalog prozor koji nam omogućava da odaberemo tabele iz kojih želimo da izdvojimo podatke. NAPOMENA: Tabele moraju biti u odgovarajućim relacijama (Relationships), npr. 1 minus 1 comma space 1 minus infinity...

Više tabela možemo odabrati držeći taster CTRL i mišem selektujemo tabelu po tabelu.

Za prethodni primer, kao što je napomenuto, odabraćemo tabele: OceneUcenika, Ucenik, Predmeti. Dobijamo sledeći izlged:

U donjem delu prikazane slike prozora biramo polja koja želimo da izdvojimo iz prikazanih tabela. NAPOMENA: prikazane tabele moraju biti u relaciji. Ukoliko to nisu potrebno je dodati druge tabele tako da se vidi veza od jedne do druge.

Osvrnimo se na opcije koje postoje u tom donjem delu slike:

Filed - je naziv polja koje želimo da izdvojimo

Table - je naziv tabele iz koje izdvajamo polje

Sort - je kriterijum po kome će rezultat upita biti sortiran (rastući - Ascending ili opadajući - Descending)

Show - odabrano polje za koje je ova opcija čekirana biće prikazano, a ukoliko nije čekirano neće biti prikazano u tabeli rezultata. Na primer, ne želimo da prikazujemo datum kada su ocene dobijene, ali želimo da zadamo kriterijum da ocene budu iz oktobra. Zato je potrebno dodati polje Datum, ali za njega opcija Show neće biti čekirana.

Criteria - predstavlja kriterijum po kome želimo da izdvojimo podatke. Na primer, želimo podatke učenika sa imenom "Sanja", onda bi za polje Ime u opciji Criteria otkucali "Sanja". Kriterijum se može postaviti i za više odabranih polja.

Pogledajmo kako izlgeda napravljen upit za primer koji je dat na početku ovog objašnjenja:


Da bi pogledali rezultat ovako napravljenog upita potrebno je kliknuti na crveni uzvičnik u na kartici Design:

Nakon čega će se pojaviti nova tabela u kojoj su prikazane ocene učenika po predmetima.

Osobine polja table - Field Properties

U zavisnosti od izbora tipa polja prozor sa osobinama polja može se delimično razlikovati. Na primer, ako odaberom tip polja Number imaćemo osobinu Decimal Places, dok te osobine neće biti ukoliko odaberemo tip Text.

Slika koja ilustruje kako izgleda prozor sa osobinama polja tipa Text:

Većina osobina koju vidimo na slici je pristuna za sve tipova podataka. To su sledeće osobine:

  • Field Size - količina podataka dozvoljena za unos (npr. broj karaktera za tip Text)
  • Format - oblik u kome će podatak biti prikazan i ovde možemo odabrati neke od ponuđenih formata, npr. za tip polja Date/Time možemo odabrati format Medium Date
  • Caption - natpis za odabrano polje koji će biti prikazan prilikom unosa podataka. Na primer, ako je naziv polja OcenaUcenika onda u osobinu Caption možemo napisati Ocena učenika tako da se on prikaže umesto OcenaUcenika.
  • Default Value - ovde se može upisati osnovna vrednost polja. Za slučaj da se ne unose podatak onda će prilikom unosa podataka pisati taj tekst.
  • Required - ako je postavljene vrednost Yes, onda je ovo polje obavezno, tj. mora se uneti podatak prilikom unosa podataka, inače podaci neće biti sačuvani.
  • Indexed - označavamo polje za indeksiranje čime oomogućujemo kasnije pretraživanje po unetim podacima u ovom polju.
  • Validation Rule - postavljamo pravilo koje se mora ispoštovati prilikom unosa podataka
  • Validation Text - upišemo tekst koji će se pojaviti ukoliko nije ispoštovano pravilo navedeno u Validation Rule.
  • Input Mask - zadavanje maske za unos. Prilikom unosa pojavljuje se zadatak maska tako da onaj koji unosi podatke može odmah da vidi u kom formatu mora da unese podatke.


Validation Rule

Ovde ćemo navesti neke od najčešćih pravila koja se koriste za podešavanje polja tabele. Dovoljno ih je upisati u polje za Validation Rule:

  • <5 - označava da uneti broj mora biti manji od 5
  • >0 AND <5 - označava da uneti broj mora biti veći od nule i manji od 5
  • <=Now() - funkcija Now() daje trenutno sistemsko vreme, tako da ovo pravilo važi za datume i vreme i označava da se može uneti samo raniji ili trenutni datum i vreme.
  • Like "####" - simbol # je džoker znak za cifru, tako da ovo pravilo označava da se mogu uneti samo 4 cifre. Uglavnom se koristi kod tipa Text kada se može uneti bilo koji karakter sa tastature.
  • Like "*[a-z]" - mogu se uneti samo mala slova engleskog alfabeta

Primetimo da možemo koristiti logičke operatore: AND, OR kao u Excel-u.

Za nešto složenija pravila možete pogledati ovu stranicu.


Validation Text

Kada neko pravilo nije ispoštovano prilikom unosa onda se pojavljuje osnovni prozor o grešci. Da bi izbegli pojavljivanje ovog prozora možemo napraviti sopstevni tekst koji će biti prikazan kada dođe do kršenja pravila. Taj tekst možemo unpisati u osobinu Validation Text.


Input Mask

Ovu osobinu možemo koristiti za zadavanje maski za unos za specifične podatke. Na primer za podatak broj mobilnog telefona: zna se da su prve dve cifre 06, a mora imati npr. 7 cifara nakon pozivnog broja i pozivni broj je odvojen kosom crtom od ostatka (naravno, možemo i drugačije definisati, na nama je kako ćemo napraviti masku). Tada bi maska za unos broj telofona bila sledeće: 06#/#######.

Ovu masku možemo napraviti tako što kliknemo na dugme sa tri tačkice u visini osobine Input Mask. Dobićemo prozor za podešavanje maske u kome se nalaze već neke primer maske za unos. Kliknemo na dugme Edit List. U novom prozoru se pojavljuje spisak svih postojećih maski definisanih do sada. U dnu prozora postoje strelice, među kojim biramo onu koja ima zvezdicu pored i time dobijemo prazna polja za unos. Unosimo sledeće:

  • Descritption - naziv maske. Možemo upisati Mobilni telefon.
  • Input mask - maska za unos. Nule su džokeri za cifre. Ukoliko posle nule postoji neka cifra koja je različita od nule, onda su te prethodne nule obavezne i više ne predstavaljaju džokere. Da bi naša maska za mobilni izgledala 06#/#######, upisuje sledeće: 060/0000000. Prva nula i cifra 6 su obavezne cifre u ne mogu se menjati prilikom unosa, a na mesto ostalih nula se može uneti bilo koja cifra.
  • Placeholder - simbol koji će se pojaviti umesto nula. Ovde upišemo simbol #.
  • Sample Data - primer unosa za ovu masku. Ovde ćete biti u prilici da probate kako funkcioniše vaša maska.