You are on page 1of 55

1/1

Bela Nemet, dipl.ing.


Imenovanje-Nekomercijalno-Bez_prerada_3,0_Hr

ELEMENTARNI VISUAL BASIC Doputeno je tiskanje ili kopiranje kompletnog djela bez izmjena i uklanjanja naznake autorstva i izdavaa kao i distribucija bez naplate. Nije doputena izmjena ili koritenje, tiskanje, objava ili disponiranje djela ili njegovih dijelova uz naplatu ili u komercijalne svrhe bez ugovora s autorom.

ELEMENTARNI VISUAL BASIC

Rijeka, rujan 2006.g. korigirano 2009.g. Prilagoeno za dvostrani ispis

iPC INOVACIJSKO-PODUZETNIKI CENTAR, Verdieva 11 / I 51000 Rijeka


Tel / Fax: 051 227-568, e-mail: ipc@optinet.hr, www.inovatori.hrvatska.com

2/2

PREDGOVOR DRUGOM IZDANJU


Ako spadate u korisnike raunala koji su zbog potreba posla ili afiniteta tijekom vremena uz nezaobilazni WORD i EXCEL savladali i ACCESS, a snalazite se donekle i u izradi ili odravanju barem jednostavnijih web-stranica, vjerojatno ste poeljeli da Vae statino web-sjedite bude komunikativnije. Osnove neophodne za izradu jednostavnih web stranica poetnici mogu nai na naem web-sjediti www.inovatori.hrvatska.com (HTML alabakter za jednostavne web-stranice), pa se osnovi HTML-a ovdje nee objanjavati . Moda elite ee i intenzivnije dopunjavati i mijenjati Vae ponude, novosti ili obavijesti, moda elite Vaim posjetiteljima dati priliku da putem Vae web-stranice pune ili auriraju neku Vau bazu podataka, ili biste htjeli da Vai posjetitelji imaju uvijek uvid u najsvjeije stanje njima namijenjene baze podataka koju redovito odravate ili ee aurirate. Ako ste orijentirani na Windowse, jo Vam je nedavno za to trebao ASP Active server pages. a korisnicima Linux-a za tu namjenu vie je odgovarao PHP. Danas se meutim ASP smatra zastarjelim, pa je pametnije energiju utroiti u (djelomino) savladavanje ASP.NET-a. No, kako to ne ide bez Visual Basic-a, moramo se pozabaviti i sa nasljednikom Visual Basica 6, a besplatna verzija takvog nasljednika je Visual Basic 2008 Express Edition. Ako netko eli investirati u profesionalniju verziju, moe kupiti noviju verziju - Visual Basic 10. Veliki broj razliitih baza podataka, aplikacija za njihovo kreiranje i upravljanje s njima obuhvaa ogromnu bazu znanja koju nitko ne moe savladati u nekom razumnom roku, a kamo li "na brzaka". No, problem izrade aplikaciju u uvjetima tako arolikog instrumentarija pokuao je rijeiti Microsoft, putem Net Framework-a, stvorenog u elji da omogui koritenje razliitih baza i produkata prilikom kreiranja novih projekata. Stoga uz VB 2008 Express trebate instalirati i Net Framework, pa i neke druge komponente koje e Vam biti ponuene tijekom instalacije. Materijal u nastavku nastao je manjom preradom starijeg "alabaktera" za poetnike, pisanog za Visual Basic 6. Iako je u meuvremenu taj zastario, veina sadraja primjenjiva je i u novijim verzijama VB-a, pa tako i u besplatnoj verziji VB2008 EXPESS EDITION. S obzirom da u ovoj verziji i poznavatelje estice doekuje potpuno izmijenjeno, tzv. IDE suelje (integrated development environment - integrirano razvojno okruenje) uz daleko prikladnije i lake rukovanje, opis suelja estice zamijenjen opisom kreiranja aplikacije u novom suelju. Time prikaz postaje jednako koristan potpunim poetnicima, kao i poznavateljima estice. Ipak, opis suelja estice dodan je kao poseban dodatak na kraju napisa, za sluaj da netko ipak eli koristiti staru verziju (i ako ne znam zato bi to netko elio). Opis novog suelja zorno ilustrira i lakou rada u novijoj verzji, iako i dalje ostaje injenica da je kreiranje imalo ozbiljnije baze podataka ozbiljan zadatak i za profesionalce. No, ovo je namijenjeno korisnicima koji imaju skromnije planove, ograniene na jednostavnije, a opet suvremenije baze podataka. s mogunou prikljuenja na Internet. Preostali dio uputa za sada nije mijenjan, no uz neto snalaljivosti i prebiranja po VB2008 Express Edition-ovom sustavu pomoi i uputa (u okviru "Getting Started", uvodnog panela koji sadri i video-tutoriale), korisnici s dovoljno entuzijazma lake e savladati prve korake, a dalje se moraju snalaziti kao i svi koji nisu imali ni ovaj alabakter. Bude li vrijeme doputalo, prikaz e se postepeno nadograivati s vie opisa nove verzije.

Autor

3/3

DIGRESIJA
elei iriti tehnoloku i poslovnu pismenost, pisanja ovog saetka smo se uhvatili kao neprofesionalni korisnici, a ne kao ekspertni informatiari, pa nam trebate oprostiti eventualne nedostatke, pa moda i greke. Zato smo se kao autsajderi prihvatili te zadae ? Pa zato jer nam se ini da saete, praktino iskoristive, razumljivo pisane i besplatne literature te vrste na domaem jeziku gotovo i nema. Zato, jer veina naih knjiga, prirunika i uputa za koritenje softvera boluje od nerazumljivosti, jer sadre hrpe detalja bez preglednog i saetog objanjenja cjelovitog koncepta (a esto i namjene) softvera, pa se od stabala ne vidi uma. Kad je rije o Visual basic-u 6, odnosno o Microsoftovom MSDN sustavu pomoi i uputa koga on koristi, tu stvarno nema mjesta prigovoru o nedovoljnom opsegu uputa, jer MSDN je ogroman. No tu se uz engleski jezik javlja drugi problem: obini smrtnik sigurno nee utroiti nekoliko mjeseci (ili godina ?) za studiranje ovog glomaznog HELP sistema, ne bi li izvukao odgovor na ponekad sasvim jednostavno pitanje. Te su upute poetniku praktiki sasvim beskorisne. Svaki odgovor na pitanje koje postavite, otvara najmanje pet novih pitanja bez kojih ne razumijete odgovor. Za razliku od toga, VB2008 Express Edition ima sasvim prikladan i razumljiv sustav pomoi, ak sa video tutorijalom, istina na engleskom jeziku. Kad je rije o domaim uputama, naalost mnogi nai autori ne govore hrvatski, nego ga izmiljaju, pa je esto i korisnicima koji ne govore engleski, pametnije da se dre izvornika nego da meditiraju o novohrvatski lokaliziranim terminima ili prijevodima naredbi, a upute da i ne spominjemo. S jedne strane svi nastoje izmisliti novu rije ak i za ve uvrijeene pojmove, pa tako ono to je za jednog autora "klizna traka", za drugog je "pominik", a za treega "kliznik". Mjesto "hardver" za koga ve i mala djeca znaju to znai, moramo govoriti "ovrsje" s pet suglasnika zajedno, ali zato u udbeniku zadravamo "Good-bye, cruel world", kao da se ne moe rei "zbogom okrutni svijete", tako da zbunjenom poetniku jo vie zakompliciramo ivot neprevedenim primjedbama i objanjenjima u ispisu kda, koje ne utjeu na program. A kd je poetniku i bez te engleske "beletristike" dovoljan bauk. S obzirom da je za izvrenje pojedinih sloenijih ili manje uestalih radnji, verzija Visual Basica VBA (Visual Basic for Applications) ugraena i u druge najee koritene softverske alate (npr. u Microsoft-ov WORD, EXCEL, ACCESS, ali i druge), prije ili kasnije ambiciozniji laici (tj. neinformatiari) suoit e se s potrebom poznavanja barem elementarnog koritenja Visual Basic-a. To su razlozi, to sam se, kao poetnik u Visual basic-u upustio u njegovo objanjavanje. Ima to i svoje dobre strane! Iz svjeeg vlastitog iskustva znam, to mi je pojelo dane razjanjavanja onoga to je su autori propustili objasniti u dvije. tri reenice, priajui istovremeno nairoko o trivijalnim, samo po sebi razumljivim detaljima tipa "kliknite lijevom tipkom mia na OK". Kad budete pisali upute za koritenje Vaih aplikacija, imajte na umu, da ih itaju ljudi koji nemaju Vae raunalno znanje, ni ugraen novohrvatsko-hrvatski rjenik raunalnih pojmova u glavi. Domai ekspertni autori softverskih prirunika (gdje su ?) i uputa mi mogu zamjeriti to se kao autsajder uputam u ovo, ali tek nakon to napiu (a ne djelomice prevedu) po jedan stvarno dobar besplatan prirunik. Razumije se da prikaz od pedesetak stranica ne moe biti jednako detaljan kao knjiga od 900 stranica. Prvenstvena je namjena ovog prikaza da objasni vanije pojmove i generalnu koncepciju onog dijela Visual basica, koji se bavi stvaranjem samostalnih .EXE aplikacija, to e Vam olakati koritenje izvornih uputa i detaljnijih prirunika koji obrauju razne sustave za rad s bazama podataka. S obzirom na sve to je reeno, jasno Vam je da Vas ovaj napis treba uvesti samo u osnove Visual Basica, a tko eli u tome briljirati, morat e se dohvatiti hrpe debljih knjiga. No iza ovog poetnikog tiva, lake e ih savladati. Ako se sudbina sloi, s vremenom e ovaj prikaz moda biti doraen i osuvremenjen, stoga su Vae primjedbe i zamjerke dobrodole, kako na ovaj, tako i na ostale na naem web-sjeditu objavljene lanke. Posebno molim iskusne hakere da me iskritiziraju, pa emo tako pomoi onima koji stiu iza nas, da zajednicu "ovisnika tree vrste", usmjerimo na korisne zanimacije. No, 'ajmo mi na ljaku !

4/4

TO SADRE OVE UPUTE ?


Nemojmo se zavaravati, rad s bazama podataka ne spada u trivijalne raunalne vjetine, a posebno to nisu aplikacije koje obrauju baze podataka disponirane na udaljenim lokacijama. Ne moemo stoga obeati da ete nakon itanja ovih uputa odmah biti u stanju kreirati sofisticiranu EXE aplikaciju, koja e besprijekorno razmjenjivati podatke i multimedijalne sadraje putem interneta, odnosno putem Vaih web-stranica No, i najdui put poinje s prvim korakom, pa i ovaj prikaz treba shvatiti kao prvi korak u razumijevanju opirnije i detaljnije literature ove vrste.. Objasnit emo kratko to je i emu slui Visual Basic, te koje su njegove vanije sastavnice. Prikazat emo kako izgleda njegovo suelje ("upravljaki okvir") koje koristimo za izradu aplikacija, te kako izgledaju i kako se izrauju obrasci ekranski "formulari" koje koristimo za unos i itanje podataka iz ciljane baze podataka, koje elemente sadri, to su "kontrole" i kako se one veu na polja izvornih tabela obraivane baze podataka. Da bismo naime pristupili nekoj bazi podataka, Visual Basic moramo na nju povezati. Nauit emo kako se to radi uz pomo odgovarajue elije koju zovemo "navigacijska kontrola". Usput, pokazat emo kako u tako povezanu bazu podataka unositi ili iz nje iitavati podatke uz pomo obrazaca. Pri tome se detaljno objanjava kako se vezati na postojee MS ACCESS baze podataka kao i na EXCEL-ove tabele, koje najee rabe korisnici koji se ne slue nekim DataBase programom. Objasnit e se pojam relacijskih baza podataka, te vrste skupova podataka koje izvlaimo iz izvornih tabela (modele pristupa podacima) i njihove karakteristike, kao i pojam tzv. "objekata" koji se pri tome koriste. Objasnit emo da se programiranje svodi na definiranje dogaaja (koji su nad objektima mogui tijekom obrade) i definiranje potprograma tzv. "procedura", kojima aplikacija treba odgovoriti na te dogaaje. Prikazat e se suelje za pisanje procedura i nain njihovog kreiranja, te osnove pisanja kda kojim se definiraju procedure. U kratkim crtama osvrnut emo se na obradu podataka ukljuivo manipuliranje sa znakovnim varijablama, te prikazati vrste i nain koritenja logikih odluka, koje su "skretniari" tijeka obrade svake raunalne aplikacije. Nauit emo i kako se uz pomo podatkovnog okruenja, tzv. "Data Environment"-a ( ukljuenog u Visual Basic 6 i novije) kreiraju izvjetaji koje moemo pregledavati na ekranu ili otisnuti na papir. Zatim emo upoznati Visdata program (koji se isporuuje u sklopu Visual Basic-a 6 i novijih ) za pristup podacima, kao efikasno sredstvo za stvaranje i auriranje baza podataka, te osnovne naredbe SQL univerzalnog jezika za pristp podacima, kojim emo koristei Visdata biti u stanju itati, aurirati i stvarati tabele i baze podataka. Tijek upoznavanja Visual Basica popraen je i jednostavnijim primjerom zbog zornijeg prikaza opih pravila i sintaksi, koji korisniku treba posluiti kao putokaz pri izradi vlastite aplikacije. Upute se (izuzev u opisu suelja) oslanjaju na verziju Visual Basic-a 6, kao prvu verziju koja "zna" koristiti prikazani Microsoft-ov "Data Reporter " za izadu izvjetaja, te "Visdata" program putem koga se Visual Basic koristi SQL-om. VB6 je takoer verzija kompatibilna sa EXCEL-om 9.0 i sa ACCESS-om 7.0, budui da se jo mnogi korisnici slue verzijama MS OFFICE-a u kojima su te verzije ACCESSa i EXCELa ugraene ili je u njih mogua konverzija. Iako danas postoji i verzija VB 2008, pa i Visual Basic-a 2010, objanjenja u nastavku vae i za korisnike tih novijih verzija. Nakon upoznavanja elementarnog Visual Basic-a putem ovih uputa, korisnici e lake savladati i druge baze podataka ili podvrste SQL-a, od kojih su neke posebno prikladne za poetnike. Takva je primjerice SQLite Expert personal (ima i besplatnu verziju), iji je najvei nedostatak to u uputama ne objanjava brojne bitne pojmove, od kojih su mnogi objanjeni u ovom "alabakteru". Na kraju dodana objanjenja vezana uz viekorisniki rad i razne modele za pristup udaljenim podacima vie su pojmovnik nego uputa za konkretnu uporabu. Meutim, praktini pristup podacima, detaljno je objanjen u poglavlju o Visdata programu i Data Environment Manageru, koji se isporuuju u sklopu Visual Basic-a i dostatan je za kreiranje i rad s jednostavnijim bazama podataka, te za preuzimanje i koritenje podataka iz postojeih tabela ACCESS-a, EXCEL-a i dr. to e snalaljivijim korisnicima omoguiti da npr. svoje postojee aplikacije "prebace" u Visual Basic i kompajliraju, tj. prevedu u EXE oblik, koji se onda moe koristiti na svakom raunalu bez posebnih programa za baze podataka.

5/5

TO JE VISUAL BASIC ?
Ako Vas zanima Visual basic (piimo ga skraeno VB), onda znate emu slui, pa skratimo to na jednu reenicu. VB je jedan od najpopularnijih generatora aplikacija, koje trebamo za stvaranje, obradu i auriranje podataka, organiziranih u jednu ili vie meuzavisnih tabela, koje zbog meuzavisnosti podataka u njima zovemo relacijskim bazama podataka. Primjer: Kadrovska evidencija proizvodnog poduzea sadravat e: 1. adresar zaposlenika s njihovim osobnim podacima, kvalifikacijama i podacima o stau i dr, 2. popis platnih razreda ili kategorija zaposlenika sa iznosima ili bodovanjem plaa, 3. popis pogona, ureda, uprave i predstavnitava tvrtke, 4. popis potanskih brojeva potrebnih za adresiranje i dr. a te su tabele izrazito meusobno zavisne (potanski broj zavisi o mjestu prebivalita iz adresara zaposlenika itd.). Uviate, da je za preporuku prije utravanja u Visual basic razmisliti o tome koji Vam podaci i tabele trebaju i kako ih je najbolje organizirati da postignete Va jasno definiran cilj. Pomou Visual basica dakle za razliite specifine potrebe izraujemo raunalne programe, koji slue za stvaranje i auriranje relacijskih baza podataka i rukovanje (kae se i "upravljanje") s njima. Za razliku od MS ACCESSA koji ima slinu namjenu, dovreni projekti Visual basica sa ekstenzijom .VBP se na zahtjev kompajliraju, tj. VB ih automatski prevodi u datoteke .EXE tipa, koje se mogu izvoditi na svakom raunalu, bez nekog posebnog programa za rad s bazama podataka. VB aplikacija se pri izradi i pri koritenju mora na neki nain vezati na bazu podataka kojom upravlja. Prilikom izrade aplikacije, VB moe i sam kreirati bazu podataka uz pomo u VB6 ugraenog Visual Data Manager-a, ili koristiti postojee baze podataka podranih vrsta (EXCELove .XLS datoteke, ACCESS-ove .MDB datoteke, dBase, Paradox, FoxPro, a u novijim verzijama i druge). Koristimo li postojee baze podataka novijih verzija, one se moraju (u nazad) konvertirati na verzije koje instalirana verzija VB-a podrava, u protivnom e pokuaj spajanja VB-a na bazu rezultirati grekom: "Unrecogniced database format". Uitajmo kopiju postojee baze podataka u izvornom programu i spremimo sa Save As, ali u odgovarajuem starijem formatu koga na VB podrava, pa emo VB vezati na tu, konvertiranu verziju, a izvornik emo naravno sauvati u neizmijenjenom obliku. Slino tome, uz sam VB6, na raunalo trebamo instalirati i pripadajuu verziju MSDN Library-a, jer bez toga nee funkcionirati VB-ov sustav pomoi i uputa (instaliran ima pola GB!). Korisnici VB2008 Express Edition-a, trebaju instalirati NET FRAMEWORK 3, koji omoguuje koritenje razliitih produkata i baza podataka za izradu aplikacija u VB-u 2008. Ako Visual basic 6 ili MSDN skidate sa Interneta, vjerovatno e stii u dvije arhive (za dva CD-a). Komanda "Open (oznaeni) folder" iz izbornika programa za preuzimanje, svaku e prikazati kao skup npr. RAR arhiva. Oznaite ih sve i naredbom "Extract files" ekstraktirajte svaki od dva skupa posebno. Rezultat e biti dvije image datoteka s nastavkom .ISO, koje na uobiajeni nain prite svaku na svoj CD (programom NERO ili IMGBURN). Slijedi uobiajena instalacije sa ta dva CD-a. (opisan je postupak za stariju verziju VB 6). Visual Basic omoguuje izradu nekoliko tipova programa, odnosno programskih sastavnica: Standard EXE ActiveX DLL ActiveX Exe ActiveX Control Samostalni programi s nastavkom .EXE potprogrami koji se koriste kao sastavni dijelovi samostalnih programa EXE programi u funkciji OLE posluitelja za razmjenu informacija upotrebljivo u drugim programima, sadri suelje i potprograme, a ekstenzija (nastavak imena) mu je OCX ActiveX Document DLL s ekstenzijom DLL za pomo pri pokretanju programa na Internetu ActiveX Document EXE za prikaz obrazaca Visual Basic-a na Internet-pretraivau (Browseru) ADDIN dodatni (add-in) programi za rad s korisnikim sueljem Visual Basic-a Visual Basic Applocation Wizard vodi za kreiranje kostura samostalnog EXE programa

Nas zanima izrada samostalnog programa s nastavkom EXE, dakle tip Standard EXE. Visual Basic primjenjuje tzv. "objektno programiranje ", tj. koristi tzv. objekte, (elemente poput okviria za upis podataka ili teksta, okvira za umetanje slika, ekranske dugmadi, elija koje otvaraju menu-izbornike i dr.), koje programer na prikladan nain organizira i razmjeta na osnove vrste sastavnica Visual Basic-a (poput drugih "generatora aplikacija" kao to su Access, Delphi i dr.) Najvanije sastavnice VB-a su: Korisnika suelja za komuniciranje korisnika s raunalom, tj. upravljanje obradom Obrazac ili "ekranski formular" aplikacije (engleski Form) za unos i pregled podataka izvjetaj pripremljen za ekranski prikaz rezultata ili ispis na papir (engleski Report) Baze podataka uz to sadre i Tabele (Table) u pravilu vezane sloenim meuzavisnostima.

6/6

ESTO KORITENI POJMOVI


Da bi tekst u nastavku svima bio razumljiv, na poetku emo saeto objasniti esto koritene pojmove. Mnogi su poznavateljima ACCESS-a poznati od prije, ali ipak ih proitajte. Uz nae, naznaeni su i engleski pojmovi, a poneki engleski pojam naveden je samo u izvornom obliku. Dizajn-mod (Design time) vrijeme kad je Visual Basic (VB) u reimu kreiranja objekata i pisanja kda. Program tada nije u funkciji. vrijeme kad je VB u radnom reimu, kad su kontrole i kdovi u funkciji. Ono nastupa aktiviranjem Run > Start naredbi izbornika. skup podataka koji su na izvjestan nain meusobno zavisni, najee organiziranih u nekoliko tabela. Takav skup gradi se od slijedeih elemenata: U tabelama, polja su nazivi kolona. Svakom polju u tabeli pripada i odgovarajua elija (tj. jedna od kontrola) za upis ili prikaz te vrste podataka u obrascu. Kontrola sadri najmanji element baze, odnosno samo jedan podatak (npr. prezime, iznos rauna i sl), a polje skup istovrsnih podataka iz svih zapisa (Detaljnije str 7-8) U tabelarnom obliku to su redovi tabele. Zapis je skup podataka koji se odnose na jedan subjekt (osobu, tvrtku, proizvod itd.) U jednom zapisu sva polja tabele javljaju se samo jednom. Podaci se upisuju u tabele, u kojima redovi sadre zapise, a kolone skup podataka koje pripadaju istom polju, odnosno skup istovrsnih podataka iz svih zapisa. Baza podataka moe sadravati nekoliko ili ak mnogo tabela. U pravilu, one su na neki nain meuovisne, pa takvu bazu podataka nazivamo relacijskom.

Radni reim (Run time)

Relacijska baza podataka

Polja s podacima (Fields) Kontrole (Control)

Zapisi (Records)

Tabele s podacima (Table)

su polja koja jednoznano identificiraju zapise u tabelama. U svakoj tabeli moe se definirati samo jedan primarni klju, tj. samo Primarni klju (Primary key) jedno polje se moe proglasiti primarnim kljuem. Meutim, u (jedinstveni identifikator) cilju definiranja veze s drugim tabelama, svaka tabela moe sadravati i vie tuih ili "stranih kljueva" (foreign key). Strani klju (Foreign key) Tabela ne smije sadravati dva ili vie zapisa s istim primarnim kljuem, odnosno primarni klju (dakle i zapis s tim kljuem) u svakoj tabeli mora biti jedinstven, odnosno unikatan. Za razliku od toga, strani (ili sekundarni) kljuevi ne smiju biti unikatni (ista osoba moe primjerice kupiti nekoliko puta artikle u kakvoj trgovini, pa se u popisu rauna sekundarni klju osobe (npr. ID_osobe) javlja mnogo puta). Povezivanje zapisa iz raznih tabela uz pomo kljueva se ostvaruje tako, to se tui klju u glavnoj tabeli povezuje na primarni klju druge tabele, pa se na glavnu tabelu veu samo oni zapisi iz druge tabele iji primarni kljuevi imaju jednaku vrijednost kao odgovarajui tui klju u glavnoj tabeli. U veim bazama podataka nisu rijetkost osobe s istim prezimenom i imenom, ili naselja istog imena i sl. pa takva polja nije dobro koristiti za identifikaciju zapisa. Zbog toga ih neemo koristiti za primarni klju, nego emo tu ast prepustiti jedinstvenom identifikatoru, koji uobiajeno poinje sa ID (npr. ID_osobe). Najee je to automatski dodijeljen brojani podatak (u VB-u tip takvog polja je COUNTER s AutoIncrField karakteristikom, dok su u ACCESS-ovim tabelama to polja tipa AUTONUMBER ). To znai da polje sadri jednostavno redni broj, koga VB sam automatski dodjeljuje prilikom upisa prvog znaka u novi zapis. Vrijednost polja tipa Counter ne smije se mijenjati jer pokuaj izmjene moe uzrokovati gubitak zapisa, a svakako e proizvesti greku. Kljuevi (Key)

7/7 Inae, pitanje je koliko je dobro stavljati dva podatka u isto polje (npr. prezime i ime), pa e mnogi programeri to izbjegavati zbog problema sortiranja, mogunosti razliitog unosa od strane raznih korisnika itd. Qualifier (pointer) strukturni elementi baze podataka koji se koriste za usmjeravanje veza od jednih prema drugim, na izvjestan nain vezanim tabelama baze podataka. Za ustrojstvo baze podataka vano je razluiti nekoliko vrsti ovisnosti meu tabelama: takav se odnos uspostavlja izmeu jednog retka glavne tabele i jednog povezanog zapisa u nekoj drugoj tabeli. Primjerice klju ID_osobe u zdravstvenom kartonu osoba, vezuje se za primarni klju u adresaru pacijenata. Dakle jedna vrijednost kljua u zdravstvenoj evidenciji, vee se samo za jednu (i to identinu) vrijednost istovrsnog kljua u drugoj tabeli. Zdravstvena situacija iz jednog kartona, ne moe se vezati na nekoliko razliitih osoba, a takoer jednoj osobi pripada samo jedan zdravstveni karton, tj. kljuevi ovih tabela odnose se kao jedan prema jedan. Podaci iz tako vezanih tabela, u naelu bi se mogli smjestiti unutar iste tabele, no esto postoje praktini razlozi za njihovo razvajanje u dvije ili vie tabela. To je odnos pri kome jedan zapis iz jedne tabele moe biti "sparen" sa vie zapisa u drugoj tabeli, ali ne i obratno. Primjerice jedan grad iz tabele potanskih brojeva nai e se u adresama mnogih poduzea u popisu obrtnika, ali jedan obrtnik moe imati sjedite samo u jednom gradu. Strana "vie" oznaava se sa . Primjer: U katalogu internetske prodaje, jedna trgovina moe nuditi veliki broj proizvoda iz popisa proizvoda. Ali isto tako, jedan proizvod moe biti isporuen iz velikog broja trgovina. U naelu, bilo koji redak jedne tabele moe se vezati na bilo koji redak druge. Ugradnjom tuih kljueva u tabelu, odnos meu tabelama postaje sloeniji. Naime svaki pokuaj upisa vrijednosti tueg kljua koji nema identinog para u primarnom kljuu druge tabele rezultira grekom. Do takvih greaka moe doi posebno naknadnim prepravljanjem, ispravcima ili brisanjima u tabelama, pa takvi nepaljivi postupci mogu uzrokovati blokiranje baze podataka koja je do tada ispravno radila. Primjer je takvih nezgoda naknadno brisanje dvostrukog unosa primjerice iste osobe. Brisanjem dupliciranog unosa u glavnoj tabeli, ostaju bez para strani kljuevi u vezanim tabelama, ime je naruen referencijalni integritet baze podataka pa se ona moe zablokirati uz iskazivanje greke. Otklanjanje takvih greaka moe biti vrlo teko.

Jedan prema jedan (One to One)

Jedan prema mnogima (One to many)

Mnogi prema mnogima (many to many)

Referencijalni integritet

MODELI PRISTUPA PODACIMA


DAO 3.51 object Library je Microsoft-ov defaultni (pretpostavljeni) model za pristup podacima za povezivanje unosa sa obrascima u Windows dijalozima, optimiziran za pristup podacima preko lokalne mree. U cilju npr. kreiranja VB Dataset-objekata, novom projektu treba dodati DAO 3.51 object Library opcijama izbornika: Project > References > kvaica na DAO 3.51 object Library VB moe koristiti i neke druge objektne module (RDO za RDBMS baze ili ADO za pristup odacima preko intranet i Internet veza). MSDN Library U cilju omoguenja komuniciranja Visual basica sa drugim produktima i razliitim bazama podataka, te osiguranja sustava pomoi i uputa uz to teba instalirati i MSDN Library for Visual Studio odgovarajue verzije, tj. opsenu kolekciju uputa za programerske postupke i izvor mnogobrojnih podataka, pomonih programa i datoteka, bez koji se napredniji programeri ne uputaju u razvoj sloenijih aplikacija.

8/8

Record-orijentirani sistemi baza koriste model pristupa podacima po redovima. Obrada se realizira unutar petlje koja se ponavlja sve dok nije obraen zadnji redak, a sadri: isitavanje podataka iz aktivnog retka, raunsku ili logiku ili drugu obradu ciljanog podatka, te zapisivanje obraenog retka. Ako nije dosegnut kraj datoteke, program prelazi na slijedei redak i ponavlja subrutinu. Takav pristup podacima imaju tradicionalne vrste baza podataka kao dBase, Paradox i sl. Dataset-orijentirani sistemi baza imaju napredniji model pristupa. Koriste indekse koji pomau odravanju integriteta baze podataka, ubrzavaju lociranje zapisa u tabelama, pa i procese, te omoguuju pristup podacima po eljenom redosljedu. Operacije se ne izvode nad redovima, nego se obrauju odabrani setovi podataka, najee naredbama SQL jezika poput: UPDATE ImeTabele SET matematski ili logiki izraz WHERE Imebaze.imePolja = 'XXXX' UPDATE selektira set podataka za obradu slino kljuu, a zatim slijedi obrada svih ciljanih podataka iz seta temeljem jedne SET naredbe. Ovaj model primjenjuju SQL baze, Microsoft ACCESS i druge suvremenije baze podataka, pa i Visual basic. Ograniite set podataka Brzina izvrenja dataset-orijentiranih baza naglo pada s opsegom podataka odabranih za obradu, pa je vano dobro selektirati samo onu grupu zapisa koja treba doivjeti promjenu. Takoer, u datasetorjeniranim bazama treba izbjegavati record-orijentirane procedure, jer su (pogotovo Dynaset i Snapshot) data-objekti prilagoeni za rad sa setovima podataka, a ne s pojedinanim zapisima. Objekti recordset-podataka Razlikujemo tri tipa objekata recordset-podataka: Dynaset tip Table tip i Snapshot tip Dynaset objekti Dynaset recordset je virtualna tabela privremenih kljueva u glavnoj memoriji raunala, tj. RAM-u, koja ukazuje na dio ili kompletan set zapisa iz stvarne ili vie stvarnih tabela. Premjetajui se po virtualnoj Dynaset-tabeli, VB poziva samo onaj zapis iz stvarne tabele na koga ukazuje trenutni klju. Na taj nain tedi se memorijski prostor i ubrzava obrada. Dynaset moe korespondirati s podacima iz vie tabela. To je pretpostavljeni (defaultni) tip objekta recordset-baza. Najprikladniji je za auriranje podataka, uz najmanje memorijske zahtjeve. Jedino Dynaset omoguuje auriranje baza povezanih ODBC vezama. Takoer jedino Dynaset omoguuje kreiranje clona ili sekundarnog Dynaseta primjerice za preureivanje zapisa za prikaz na ekranu. Dynaset osigurava dinamiki pristup dijelu ili svim tabelama recordset-baze podataka. To znai, da e u sluaju promjene podataka u jednoj ili vie stvarnih tabela, i u dynaset tabeli promjena biti aurirana, bilo pomakom na navigacijskoj tipki ili uporabom Refresh naredbe. Pomak navigacijskom tipkom aurira samo trenutni zapis. Pri istovremenoj viekorisnikoj obradi istog podatka, mogue su greke, pa e VB odbiti spremanje promjene zapisa kojega je drugi korisnik ve promijenio tijekom istovremenog pristupa istom zapisu. To je mogue i ako isti korisnik ponovo ispravlja svoj nepohranjeni ispravak (dobiva zabranu promjene vlastitih podataka).

9/9

Primjenom opcija Filter i Sort, Dynaset se moe koristiti za ureenje podataka na monitoru, a uporabom Find metode mogue je pronalaenje ciljanog zapisa provjerom pojedinanih zapisa u skupu, ali nije mogua tzv. Seek pretraga. Bookmark pamti poziciju zapisa s koje je pretraivanje krenulo i omoguuje da se korisnik iza pretrage vrati na prijanji zapis. Nain kreiranja i inicijaliziranja recordset-objekata, koritenje bookmarka i dr. bit e objanjeni nakon upoznavanja naina kreiranja novog Visual Basic projekta i njegovog povezivanja sa ciljanom bazom podataka. Table objekti VB tabelarni tip Recordset objekta direktno otvara stvarne tabele baze s uvidom u trenutno stanje zapisa. Ako koji korisnik u viekorisnikom sustavu izvri neku promjenu izmijeni ili brie zapis i sl, svi korisnici koji su istovremeno prikljueni na bazu putem Table tipa objekta, vidjet e izvrenu promjenu. Prednost je ovog tipa objekta pred Dynaset-om i mogunost tzv. Seek pretraivanja, te mogunost definiranja indeksa. Takoer, ovaj tip Recordset-objekta odlikuje se najveom brzinom obrade i prikladan je za brzo pretraivanje velikih tabela. S druge strane, Table objekt se ne moe inicijalizirati Select naredbom, ni kombinirati vie tabela zbog jedinstvenog prikaza baze podataka. Nije mogue ni koritenje Bookmark-a, Filtera, ni sortiranja, niti pristupanje ODBC izvorima podataka putem Table tipa Recordsetobjekta. Snapshot objekti Snapshot Recordset-objekt je u sutini statina kopija izvornih podataka na korisnikovom raunalu. Gotovo su identini Dynasetu, uz dvije bitne razlike: itavu tabelu skladite u memoriji raunala, a ako je nedovoljna i na lokalnom disku (to kod vrlo velikih tabela moe potpuno popuniti memoriju i lokalni disk raunala). To su statini, read-only objekti, dakle ne mogu se aurirati. Drugim rijeima nakon kreiranja snapshot-a naknadne izmjene tabela nee se odraziti u postojeem snapshot-u, dakle trebat e kreirati novi. Snapshot je prikladan za male setove statinih podataka kojima se esto pristupa. Ako nisu glomazni, dobri su za prikaz raunskih izvjetaja i grafikona. Read-only karakteristika moe biti i prednost, kad se elimo osigurati protiv naknadne promjene podataka u kakvom izvjetaju. Data Control Database objekti omoguuju izlistavanje informacija o svim tabelama u bazi podataka, svim indeksima i svim poljima u svakoj tabeli, kao i informacije o tipovima polja i parametrima indeksa. Microsoft jet engine Suelje
Suelja i obrasci jednako su graeni, samo suelja slue za upravljanje sa aplikacijama, dok s "obinim" obrascima unosimo ili pregledavamo podatke iz baze podataka.

je naziv koji se koristi za raunalo koje zahtijeva podatke u viekorisnikom sustavu. Visual basic je je tzv. "objektno orijentirani" produkt, to znai da se rad u njemu odvija putem ekranskih okvira sa ucrtanim objektima tzv. "kontrolama" - to zajedno zovemo sueljem. Izrada aplikacija u takvim produktima znatno je pojednostavljena, jer se suelje slae slaganjem unaprijed pripremljenih objekata po pravokutnoj podlozi suelja, koju moemo proizvoljno dimenzionirati, bojiti, opremiti slikovnom podlogom i dr. Ne moramo se optereivati nainom na koji funkcioniraju ovi objekti, na nama je samo da ih inventivno odaberemo i rasporedimo, te definiramo kako e oni reagirati u pojedinim situacijama, tj. kad nastupe planirani dogaaji.

10 / 10

POLJA I KONTROLE
Tipovi polja u VB-u
VARIANT BINARY BOOLEAN Visual basic raspoznaje slijedee tipova polja:

u VB-u pretpostavljeni oblik podatka koji moe prihvatiti razliite vrste podataka za podatke u binarnom obliku do 255 bajtova pamti samo 0 ili 1 - obino pamti stanje radio-gumba, okviria s kvaicom i sl.. Oprez ! Polje prihvaa svaki broj razliit od 0 se, ali zapisuje mu se vrijednost 1. BYTE za heksadecimalni broj od 0 do 255. Vei ili negativni brojevi uzrokuju greku. COUNTER automatski read-only broja, esto koriten za pamenje primarnog kljua. Ne moe se iskljuiti, obustaviti ili restartati njegovo brojanje, niti je doputeno da korisnik mijenja automatski generiranu vrijednost COUNTER polja. CURRENCY za zapisivanje iznosa u nekoj valuti (14 mjesta lijevo i 4 desno od zareza bez $) DATETIME za datume (lijevo od zareza) i vrijeme kroz dan (desno od zareza) DOUBLE za decimalne brojeve dvostruke preciznosti (tj. s vrlo velikim brojem decimala) GUID za "Globally Unique Identifiers" identifikator AktiveX i daljinskih SQL procedura INTEGER za cjelobrojne (pozitivne ili negativne) brojeve LONG cijeli pozitivni i negativni brojevi s velikim brojem cifara (tj. vrlo mali ili veliki) LONGBINARY za OLE objekte (tj. za razmjenu razliitih objekata meu bazama podataka). Dvoklik na polje LONGBINARY tipa s upisanim podatkom, automatski poziva aplikaciju koja e prikazati upisani podatak (npr. aktivirat e foto-preglednik korisnika i prikazati fotografiju, pri emu polje ustvari uva adresu fotografije). MEMO dugaki tekstovi (i do 1,2 GB). Polje se automatski produuje prema tekstu. SINGLE "obini" decimalni brojevi (za razliku od onih s dvostrukom preciznou) TEXT ili STRING za tekstualne (od 1 do 255 znakova) ili brojane upise Uz to VB prepoznaje i radi i s nekim drugim tipovima podataka koji potjeu iz drugih aplikacija. KONTROLE (Control) su objekti razmjeteni na sueljima i obrascima (ustvari i suelja su obrasci, samo slue za upravljanje i podeavanje programa). Kontrole trebamo za unos podataka u bazu podataka ili prikazivanje podataka iz baze, ili za pokretanje pojedinih programskih procedura. Vrste kontrola vidi na str. 11. Izbor tipova podataka za kontrole koje VB nudi u suelju za kreiranje obrazaca, neto se razlikuje od gore navedenih tipova polja i sadri one za koje se moe definirati neki specifini format (npr. oblik pisanja 20.11.09 za datum). To su: General Number Date Time Percentage Scientific Boolean Checkbox Picture Custom (openito oblikovanje podataka) kad se ne zahtijeva posebno formatiranje za pozitivne i negativne decimalne brojeve sa zadanim brojem decimala za datume u raznim oblicima pisanja (oblici se biraju iz ugraenog popisa) za vrijeme u raznim oblicima pisanja (oblici se biraju iz ugraenog popisa) za procentualne vrjednosti sa zadanim brojem decimala za brojeve eksponencijalnog oblika x,xxxE+yy sa zadanim brojem decmala (vrijednost broja dobiva se pomakom zareza za +yy mjesta u desno ili yy lijevo) za radio-gumbe (TRUE/FALSE/NULL VALUE) za okvirie za kvaice omoguuje upisivanje slika u tabelu ili prikaz upisane slike iz tabele (polje sadri adresu slike). Slika dakako mora biti dostupna, tj. postojati na dostupnoj lokaciji. za tekstove s posebnim oblicima upisa (npr. telefonski brojevi: xxx_XXX_XXXX)

Navigacijska kontrola (Data control) neki doslovno prevode kao Kontrola (baze) podataka je osobita vrsta kontrole, koja u dizajn-modu (Design time) slui za vezivanje Visual basica odnosno aplikacije na ciljanu tabelu odabrane baze podataka, a u radnom reimu (Run time) je koristimo za premjetaj obrade s jednog zapisa tabele na drugi. Svakom obrascu pripada jedna navigacijska kontrola. Obrazac moe imati vie od jedne navigacijske kontrole, samo ako je u njega ugraen drugi obrazac (subform) sa svojom navigacijskom kontrolom. Unutar kontrole upisano je ime obrasca (iz svojstva Caption) kome kontrola pripada. Vanije vrste kontrola s ikonama i imenima prikazuje tabela u nastavku.

11 / 11 Suelje i obrasci u objektno orijentiranim aplikacijama mogu koristiti slijedee vrste objekata:

PREGLED VANIJIH OBJEKATA


Simbol objekt navigacijska kontrola tekstni okvir abc natpis gumb slika okvir Izborna lista Kombo-elija Potvrdni okviri Radio-gumb okvir radiogumba lik crta Vertikalni kliza Horizontalni kliza izbornik pretraiva Internet pretraiva engleski Data control Text Box Label Button Picture Frame Menu list Combo Box chekbox Option button Frame shape line Vertical scrollbar Horizontal scrollbar menu explorer webBrowser namjena vee aplikaciju na ciljanu tabelu i bira zapis iz tabele (elije) za unos / prikaz tekstualnih ili brojanih podataka tekst koga korisnik gotove aplikacije ne moe mijenjati Ekranska tipka za pokretanje pojedinih radnji ili procedura Slike koje korisnik ne moe mijenjati Okviri za uklapanje slikovnih sadraja koj unosi korisnik Izborna lista za odabir opcija (otvara se klikom na eliju) Kombinirani okvir - elija koja otvara izbornu listu sa Okviri za kvaicu kojom se prihvaa ponuena opcija Krui za izbor samo jedne od ponuenih opcija iz grupe okvir za grupiranje radio-gumba Geometrijski oblici (elipsa, pravokutnik, trokut i dr.) linija Za vertikalno premjetanje sadraja unutar okvira Za horizontalno premjetanje sadraja unutar okvira Izbornik izbor menu-naredbi s rijeima ili ikonama Priruni pretraiva diska za izbor diskovnog pogona, mapa (direktorija foldera) i datoteka (u VB2008) Internet - pretraiva

Brojani podaci se upisuju u tekstualne okvire uz podeavanje svojstva DataFormat na jedan od tipova brojanih podataka sa prethodne stranice. Ako korisnik ne definira tip, VB koristi VARIANT.

Razmjena podataka izmeu tabela i obrazaca mogua je samo u tekstualnom obliku.


Dodatnim postupcima u obrasce i suelja mogue je uklopiti i druge objekte (npr.kalendar, grafikone, tekst-editore i dr.) KOMBO ELIJE su elije koje klikom na uz eliju otvaraju ugraenu izbornu listu

Slubena imena su definirana kao rezervirane slubene rijei Visual Basica, koje korisnik ne moe koristiti za proizvoljna imenovanja drugih objekata. Koriste se unutar kda za opis dogaaja i procedura.

DOGAAJI I PROCEDURE
Visual Basic je softverski alat kojim je mogue programirati, tj, propisati ponaanje procesa raunalne obrade uz pomo programskih procedura (subrutina), kojima sistem odgovara na pojedine dogaaje, mogue pri obradi ili komuniciranju korisnika s raunalom.

12 / 12

DOGAAJI
No, to su uope dogaaji ? Moemo rei da dogaajem smatramo svaku promjenu stanja objekata ili upravljakog ureaja kojim se na njih utjee (tipke tipkovnice ili mia i sl.) Slijedea tabela daje pregled moguih dogaaja i nihova slubena imena. DOGAAJ: Activate Change NASUPA: kad se aktivira prozor (obrasca i sl.) pri svakoj promjeni sadraja: kombiniranog okvira izbora particije ili pogona izbora direktorija (mape, foldera) kliznih traka natpisa okvira za slike ili tekst i dr. prilikom klika miem prilikom dvoklika miem kad se prozor (npr. obrasca) deaktivira pritisnuta mija tipka s kursorom nad objektom pri pomicanju mia iznad objekta pri otvaranju popisa s izbornim stavkama pri aktiviranju objekta miem ili TAB tipkom (objekt mijenja boju) kad se stisne tipka na tipkovnici kad se pritisne i pusti tipka ili kombinacija tipki s CTRL ili ALT tipkama pri otputanju tipke pri gubitku fokusa objekta (premjetajem na drugi objekt) pritisnuta tipka mia pri pomicanju mia pri otputanju mije tipke

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Clik DblClik Deactivate DragDrop DragOver DropDown GetFocus KeyDown KeyPress KeyUp LostFocus MouseDown MouseMove MouseUp

Na slijedee etiri stranice nalazi se "umetak" opis naina otvaranja novog projekta u VisualBasic 2008 Express Edition-u, besplatnoj verziji novije (i prikladnije) izvedbe Visual Basic-a. Budui da se novo suelje dosta razlikuje od suelja danas ve zastarjelog VB-6 za koji je pisan ostatak sadraja, ovo je prva prilagodba sadraja savremenijim verzijama. Ostatak sadraja najveim dijelom ostaje aktualan i u novijim verzijama, pa za sada nije mijenjan. Izgled suelja VB-6 dodan je ipak na posljednjoj stranici za one koji ostaju vjerni estici.
Iako poetnicima to ne znai puno, informativno navodimo samo neke od daljnjih noviteta koje uvodi Visual Basic 2008: LINQ Language-Integrated Query (Jezino-integrirani upit) je novi skup za proirenje mogunosti stvaranja upita (Query) u Visual Basicu 2008. Moe se koristiti sa Net.Framework kolekcijom, SQL bazama podataka, ADO.NET data-setovima i XML dokumentima O/R designer (Object Relational Designer) pomae projektantima u kreiranju i editiranju LINO to SQL klasa koje veu aplikaciju na bazu podataka. Ove klase posreduju izmeu objekata dostupnih baza podataka i upita u kdu korisnika. Izuzetno, ne podravaju SQL Server Compact 3,5 baze podataka, koje treba rjeavati uz pomo SQL Server Express-a (vidi: How to: Install Sample Databases). Microsoft SQL Server Compact 3.5 je kompaktna baza podataka koja omoguuje koritenje lokalnih podataka u aplikacijama kreiranih uz pomo Visual Basic Express-a. Jezine pogodnosti odnose se na nekoliko novih mogunosti u Visual Basicu 2008, koje pojednostavljuju pisanje kda (npr. kreiranje objekata nepoznatog tipa (Anonymus Types), deklariranje varijabli bez navoenja tipa podatka, kreiranje instanci anonimnog tipa, mogunost specificiranja klauzula poput Select, From, Order By i Where direktno u kdu umjesto koritenja SQL-a i drugo) Detaljnije: What's New in Visual Basic Express .

Dopusti li vrijeme, daljnje prilagodbe uputa novijim verzijama VB-a uvrstit e se naknadno.

13 / 13

SUELJE VB2008 EXPRESS EDITION-a (IDE)


Razvijanje Visual Basic projekta odvijat e se u suelju (IDE - integrated development environmentintegrirano razvojno okruenje) na slici. Vladate li engleskim jezikom, na raspolaganju su Vam upute i objanjenja, pa i video tutoriali u okviru "Getting Started".

Posljednji projekti koje smo obraivali

U ovom prostoru VB obavjetava o novitetima iz podruja programiranja i Visual Basic-a Najvanije grupe panela pomoi i uputa

Radni prozor Visual Basica poziva se opcijama glavnog menua FILE > NEW PROJECT za kreiranje nove aplikacije, ili FILE > OPEN PROJEKT za otvaranje postojeeg projekta ili aplikacije.

Visual Basic, pa i verzija VB2008 je objektno orijentiran produkt, to znai da se obrasci (Form) kreiraju postavom gotovih objekata na radnu povrinu. Pojedine objekte nazivamo i kontrolama (control), budui da na neki nain upravljaju obradom. Pod "objektima" podrazumijevamo elije za unos tekstualnih i brojanih podataka (Textbox), izborne elemente, te razliitu dugmad za pokretanje pojedinih potprograma (procedura) pisanih u Visual Basic kdu, odnosno programskom ili nekom skriptnom jeziku (skripta je takoer neke vrste programske rutine). Dugme koje treba svaki obrazac je dugme SUBMIT, kojim se zavrava unos i inicira dostava podataka iz obrasca na obradu ili unosi u bazu podataka vezanu na aplikaciju. Vana je i tzv. "navigacijska kontrola", tj objekt koji osim izbora zapisa koji e se prikazati na obrascu slui i povezivanju aplikacije sa bazom podataka i tabelama koju aplikacija opsluuje. Izborni elementi su tzv. "radio-gumbi" ( option-button) za izbor samo jedne od ponuenih opcija, "potvrdni okvirii" ( check-box) za izbor jedne ili vie opcija od ponuenog izbora, "kombinirani okviri" ( combo-box) za izbor iz liste opcija i izbornici (menu) organizirani kao tzv. "padajui menu-i" ili izborne trake (toolbar) s naredbama ili ikonama kao na vrhu slikom prikazanog suelja. Suelje (interface) je zajedniki naziv za sve navedeno, organizirano u upravljaki panel za kreiranje ili upravljanje sa nekom aplikacijom (programom).

14 / 14

Otvaranje Visual Basic projekta


Nakon podizanja Visual Basic Express-a i prikaza gornjeg suelja, novi projekt otvaramo kao mjesto smjetaja i organiziranja elemenata budueg programa kako slijedi: File > New Project otvara se dijaloki okvir New Project Kreirat emo web-pretraiva, odnosno korisniko suelje korisniku vidljiv panel s kontrolama za upravljanje web-preglednikom.

biramo Windows Form s Application > OK. Otvara se podloga budueg obrasca Form1. U okvir Solutin Explorer automatski se dodaju svi sastavni dijelovi aktivnog projekta, pa e se tako dodati i novi obrazac s imenom Form1. VB e takoer automatski pretpostaviti ime nove aplikacije "WindowsApplication1". Prigodom zatvaranja VB suelja, VB nudi mogunost spremanja projekta na disk pod proizvoljnim imenom s nastavkom . No ime projekta moe se promijeniti i tijekom rada u IDE suelju promjenom parametra Text u okviru Svojstava (Propertis). Svojstva e se odnositi na onaj objekt koji je na obrascu Form oznaen. Za promjenu imena projekta treba biti oznaen vanjski rub obrasca, kao na slici lijevo.

Obrazac emo kreirati prijenosom objekata iz okvira s objektima (Toolbox) na obrazac uz pomo mia. Ako okvir Toolbox nije prisutan na suelju, naredbe View > Toolbox prikazat e ga s lijeve strane suelja. Na isti nain aktiviramo i okvire Solution Explorer i Propertis, ako njih nema na suelju.

15 / 15

Da kreiramo web-pretraiva, uz sam pretraiva, koji je ve unaprijed pripremljen u Toolbox-u verzije VB2008, trebat e nam jo tekstualna elija za upis ciljane web-adrese i dugme za aktiviranje uitavanja odabranog websadraja. Zadnja dva objekta smjestit emo u okviri za grupiranje objekata koji u Toolboxu eka pod imenom Panel. Prevucimo ga sa pritisnutom lijevom tipkom mia sa Toolbox-a na vrh obrasca. Na isti nain kreirajmo Textbox i Button (dugme). Miem prikladno dimenzioniramo i premjetamo objekte. Pri tome VB2008 pomae u poravnanju objekata. Preostaje postava samog web-pretraivaa na podlogu obrasca. On je na toolbox-u smjeten pod imenom Webbrowser Sada malo ureivanja: Oznaimo okviri (Panel) i u svojstvima kliknemo na strelicu V uz opciju Dock, pa na prikazanoj sliici IDE suelja odaberemo gornju poziciju za Panel s objektima. Potraimo visinu (Hight), u Propertisu, i promijenimo je na 50 piksela. Zatim oznaimo pretraiva i na isti nain ga smjestimo u sredinji prostor suelja, koga e pretraiva popuniti do rubova.

Ako oznaimo itav obrazac, moemo ga malo i poveati, pa bi trebao izgledati kao na slici. Klikom na Dugme Button1 elimo aktivirati uitavanje ciljanog web-sadraja, pa za taj objekt treba kreirati odgovarajuu proceduru (programsku rutinu). Panel za kreiranje procedure dobit emo dvoklikom na ciljani objekt (u naem sluaju na dugme). Prikazat e se okvir za kreiranje procedura, sa ve ispisanom prvom i zadnjom naredbom i kursorom izmeu njih.

Upiimo naredbeni redak: WebBrowser1.Navigate(TextBox1.Text) WebBrowser1 je ime objekta (pretraivaa), Navigate je naziv procedure za pretragu, a u zagradi je naziv elije u koju e se upisati to pretraiva treba uitati. Prije toga Dugmetu Button1 ipak dodijelimo prikladniji natpis (npr. OTVORI) i to tako da to upiemo u eliju Text u svojstvima dugmeta.

16 / 16

To bi bilo sve ! Na pretraiva je kreiran, treba ga samo provjeriti, i to opcijama Debug > Start Debugging iz glavnog menua. Internet konekcija dakako treba biti uspostavljena, ako elimo na mreu. Gornja naredba prikazat e na obrazac u radnom (Runtime) modu, pa u tekstualnu eliju moemo upisati proizvoljnu web-adresu, npr: www.inovatori.hrvatska.com

I vidi vraga u gajbi, naa prva VB aplikacija, ljaka, tj. trebala bi posluno uitati ciljanu webstranicu pa moemo nastaviti sa "surfanjem". Ako ne bi bilo tako, VB e na dnu panela ispisati u emu je greka. Prilikom izlaska iz Visual Basica, VB nam daje priliku da kreiranu aplikaciju spremimo i pri tome proizvoljno imenujemo i projekt i obrazac. Imenu projekta se automatski dodaje ekstenzija

Na isti nain, moemo kreirati i daleko sloenije obrasce, koristei se znanjima iz ostatka uputa. Ako nam neto zapne, na usluzi nam je HELPsustav Visual Basic 2008 Express Edition-a koga pozivano iz Help-menua naredbom How du I Ako te naredbe nema na suelju, treba dozvati naredbenu traku uputstava komandama View > Toolbars > HELP Upute se uzimaju sa Interneta, pa nisu dostupne bez Internet konekcije. Lijevi dio okvira nudi nam sadraje iz MSDN sustava pomoi.

Prilikom ponovnog uitavanja postojeeg projekta, doekat e nas uvodni panel (Start Page) sa prve slike, pa jezicima na vrhu sredinjeg prostora moemo birati obrazac ili kodni okvir projekta u dizajn modu. Radno stanje opet aktiviramo menu komandama Debug > Start debugging.

Ostatak uputa preuzet je iz prijanjih uputa za Visual Basic 6, no veina materijala ostaje aktualna i u novijim verzijama, pa i u besplatnom VISUAL BASIC 2008 EXPRESS EDITION-u. S obzirom da je ova verzija i izvorno opremljene i razumljivijim (dodue engleskim) uputama, nadamo se da e materijal u cjelini biti od pomoi kako potpunim poetnicima, tako i podsjetnik povrnijim poznavateljima Visual Basica 6. Ako vrijeme dopusti, s vremenom e se upute dopuniti s vie aktualnog sadraja.

17 / 17

PROZOR CODE
Dvoklik na ciljani objekt na obrascu ili tipka F7, otvara Code prozor za pisanje procedura koje utjeu na funkciniranje obrasca. Sve procedure istog obrasca bit e sadrane na istom Code prozoru. Uitavanjem obrasca upravlja procedura na koju se kursor automatski postavlja kad prozor Code otvorimo dvoklikom na prazan dio obrasca ili klikom na ime obrasca u emi projekta. Pri prvom otvaranju automatski se otvara "prazna" procedura Private Sub Form_Load() s ve unesenom prvom i zadnjom komandnom linijom, kao na slici. Bez upisa izmeu tih linija, procedura samo otvara obrazac. No, moda emo htjeti da se pri otvaranju izvre i neke druge naredbe. U tom sluaju, za njih treba napisati odgovarajue kodne linije ili dodatne procedure. Pri vrhu radnog prostora su lijeva i desna kombo elija Lijeva kombo-elija sadri upis General (koga koristimo kada elimo pisati tzv. "ope procedure", koje nisu vezane za neki konkretni objekt) i imena objekata (obrazaca i objekata na njima). Kodni prozor obrasca prikazat e se ako je u lijevoj eliji odabran Form. Ostale opcije sadre popis objeklata na obrascu, pa se za svaki objekt moe otvoriti Code prozor. Desna elija sadri upis Declarations koji u pravilu ide uz General u lijevoj eliji i Load koji ide uz Form u lijevoj eliji. Ostale opcije su ustvari popis procedura. Njihovim izborom, kursor se premjeta na odabranu proceduru Code prozora aktivnog obrasca. Sadraj ovih elija VB prilagoava aktivnom obrascu i postupku (vidi upute u nastavku). Uz ova dva najvanija prozora, u Visual basicu srest emo i nekoliko drugih dijalokih okvira. Dok je samo slaganje objekata na obrazac djeja igra, pa ne zahtijeva objanjenja, upis najvanijih svojstava ipak treba objasniti, pa je to tema slijedeeg poglavlja. Obrazac naime nije dovoljno inventivno i estetski oblikovati. Putem obrasca Visual basic moemo povezati sa bazom podataka koju elimo obraivati, i koja, pretpostavljamo, ve postoji u ACCES-u ili EXCEL-u, barem kao prazna tabela (dakle koja ima barem zaglavlje sa nazivima polja). Kasnije emo nauiti i kako sam Visual basic moe kreirati tabelu koristei ugraeni modul Visual data manager (u doslovnom prijevodu: vizualni upravitelj podataka). Evo ultra saetog prikaza postupka kreiranja MDB baze: Add-ins > Visual Data Manager > File > New > Microsoft Access > Version 7.0 MDB > u dijaloki okvir utipkaj ime budue baze podataka > Save sprema bazu. Otvara se prozor Database. Desni klik na ikonu Properties otvara pop-up izbornik > biraj New Table > Add Field > u "Name" upii ime prvog polja > Type > biraj tip polja > isto ponovi za ostala polja > Build The Table.

VEZANJE VISUAL BASIC PROGRAMA NA ODABRANU BAZU PODATAKA


Da bi Visual basic mogao unositi ili uzimati podatke iz ciljane tabele odabrane baze podataka, moramo mu saopiti koja nas baza i tabela zanima. Povezivanje Visual basica na ciljanu tabelu ostvaruje se putem kontrole koja e kasnije sluiti za tzv. "navigaciju", tj. za izbor zapisa (dakle retka tabele) koga elimo obraivati. U tom cilju potrebno je: 1. kreirati kontrolu za navigaciju i 2. u svojstvima (propertis) te kontrole definirati ciljanu tabelu odabrane baze podataka. Postupak (pri kreiranju nove aplikacije) za to je slijedei:

18 / 18 Otvori Visual basic (New Project - Standard EXE defaultno se otvara prazan obrazac Form1) Dodavanje kontrole za navigaciju (neki je prevode sa Data control kao "kontrola podataka"). Dvoklik na u Toolbox grupi ikona - ubacuje Kontrolu navigacije u centar praznog obrasca. Ako nije ve aktivna, klik na nju e je oznaiti i aktivirati te otvoriti svojstva baze (Data propertis) u Propertis- tabeli desno. Ova kontrola u dizajn modu slui za povezivanje s ciljanom bazom podataka, a u Run-time reimu za izbor i obradu aktivnog zapisa. otvara interni pretraiva diska u kome odabiremo ciljanu bazu podataka, koja se upisuje u DatabaseName, ime je izvreno povezivanje Visual basic programa sa tom bazom. Ako baza nije u folderu aplikacije, unijet e se i kompletan put do baze.

DatabaseName > klik na (vezanje na ciljanu bazu)

RecordSource > klik na otvara popis tabela odabrane baze podataka. Biraj tabelu. Ona se (izbor ciljane tabele) (sa putom) unosi u svojstvo RecordSource i time vee VB s tabelom. Preporua se definirati i svojstva tabele Caption i Name, zbog bolje itljivosti programskog kda: Caption upisana vrijednost (npr "Osobe") se kao ime baze prikazuje se u kontroli navigacije, koju miem irimo toliko da tekst bude vidljiv. upisano ime (npr. "datOsobe") upisano u svojstavo Name slui samo programeru za lake povezivanje podataka s obrascem. Ispred ovog imena dodaje se troslovni prefiks (za podatak: dat) sukladno popisu standardnih prefiksa.

Name

SPREMANJE PROJEKTA Kad je projekt definiran, tj. Visual Basic povezan sa bazom , moemo ga spremiti na disk. File > Save ili F5 VB e zatraiti ime za kreirani obrazac defaultnog nastavka .FRM i ime za novi projekt, defaultnog nastavka .VBP. Komanda otvara ugraeni explorer za spremanje projekta u eljeni folder proizvoljnog diska. Namjeravati li intentzivnije raditi na projektu, korisno je izvui ikonu za uitavanje projekta na desktop.

DODAVANJE OSTALIH KONTROLA


Bound input control - VEZIVANJE PODATAKA (dodavanje ulaznih kontrola vezanih na bazu). Kontrole se dodaju dvoklikom na odabrani tip kontrola na lijevom rubu okvira (u tom sluaju se odlau jedna preko druge na u sredinu obrasca) ili klikom na ikonu kontrole i crtanjem na obrascu uz pomo mia. Ubaene kontrole miem se proizvoljno razmjetaju i dimenzioniraju. TEKSTUALNI OKVIRI (Text box) i LABELE Ove kontrole prihvaaju tekstualne, ali i brojane upise. Pamtimo: vrijednosti kontrola se mogu razmjenjivati izmeu baze podataka i obrasca samo ako je svojstvo DataFormat prazno ! U tom sluaju VB pretpostavlja VARIANT tip podatka. Ako smo sluajno odabrali bilo koji predloeni format iz tabele koju otvara svojstvo DataFormat, VB nee dozvoliti vezanje kontrole na bazu podataka. U takvom sluaju odaberimo format GENERAL, a VB e prilikom izbora baze isprazniti svojstvo DataFormat. Svaku kontrolu odreuje: Name (naziv objekta) kod Text box-a unosimo bez tekst iz Captiona labele prefiksa, a kod Labela (natpis kontrole) naziv dobiva standani prefiks lbl. Text box nema svojstva Caption. Upis u svojstvo labele Caption bit e vidljiv na obrascu.

19 / 19

Pretpostavljeno, kontrole su poravnate sa rasterom (Grid) obrasca. Ako elimo preciznije pozicionirati i dimenzionirati kontrole, rastera se moemo osloboditi komandama izbornika: Tools > Options > General > skidamo kvaisu sa Align Controls to Grid. No u tom sluaju precizno poravnavanje kontrola moe nas dosta nagnjaviti. Postupak kreiranja kontrola je slijedei: Ubaci kontrole i labele kontrole na obrazac te poziconiraj i dimenzioniraj kontrole definiraj Name za kontrole, te Name i Caption za labele definiraj DataSource (izvor podatka) u svojstvima kontrole izborom sa liste Time se kontrola povezuje na odabrani izvor podataka, tj. na odabranu tabelu (ovo nije mogue ako obrazac nije povezan na bazu podataka putem navigacijske kontrole). Ako se podaci uzimaju samo iz jedne tabele, DataSource e biti isti za sve kontrole obrasca. definiraj DataField (Polje izvora) u svojsktvima kontrole izborom sa liste . Kontrola se time vezuje na ciljano polje odabrane tabele koja je upisana pod DataSource.. DataField se ne moe definirati prije definiranja DataSource. Za sve kontrole u jednom obrascu, DataSource je isti ako je ista tabela izvor svih podataka. Niz kontrola (Control Array) kopiranjem umjesto unosom kontrola, smanjuje se opseg posla pri kreiranju obrazaca i resursi koje VB troi. Kopirane kontrole e sve imati isto Name, pa emo im definirati razliita svojstva index .

POTVRDNI OKVIRII (Check Box) rukuju se jednako kao labele, s tim to u svojstvu Name ime kontrole dobiva prefiks chk. I ovdje vai, da nee uspjeti vezanje kontrole na polje tabele u svojstvu DataSource, ako DataFormat nije prazno. Pretpostavljenu Vrijednost (u svojstvu Value) ove kontrole moemo namjestiti kao: 0 1 2 tj. neoznaeno (unchecked) tj. oznaeno kvaicom (checked) ili neaktivno, odnosno zasjenjeno (grayed)

Te e vrijednosti biti upisane i u odabranu tabelu, prilikom koritenja obrasca vezanog na bazu podataka. RADIO GUMBI (Radio button) iako spadaju u kontrole, bez procedure ne slue niemu, pa e biti objanjeni u poglavlju o procedurama.

20 / 20

NEKOLIKO ESTO KORITENIH DUGMETA


Dodaj i pozicioniraj dugme na Obrascu (za sada procedure prihvatite kako je predloeno). U kdovima, crveno su pisane slubene rijei Visual basic-a, a plavo imena koja daje korisnik.

Dodaj Dugme Add ili New


Naziv: Caption:

(u engleskom je uobiajeno ADD) prazni obrazac za novi zapis. U svojstva dugmeta i proceduru koju dugme pokree, treba upisati: cmdDodaj (cmd je slubeni prefiks za dugme (Command button) &Dodaj (D e biti "vrua tipka" jer je ispred njega &). Dvoklik na novo dugme otvara njegov Code prozor. Upii kd: je automatski upisana poetna linija kda ' dodaj novi zapis u tabelu je automatski upisana zavrna linija kda.

Private Sub cmdDodaj_Click() frmImeObrasca.Recordset.AddNew End Sub

Iza znaka ' je objanjenje naredbe koje ne utjee na program "Vrua tipka" e biti podcrtana. Dranje tipke ALT i pritisak na vruu tipku pokree proceduru. Dugme Naziv: Caption:

Brii BRI

(u engleskom je uobiajeno DELETE) brie aktivni zapis iz tabele. cmdBrsi (ne koristite hrvatska slova za nazive objekata) &BRII (B e biti "vrua tipka" jer je ispred njega &). Dvoklik na novo dugme otvara njegov Code prozor. Upii kd:

Private Sub cmdBrisi_Click() frmImeObrasca.Recordset.Delete End Sub

' brii aktivni zapis iz tabele

Prihvati Dugme Update (eventualno OK)

(u engleskom je uobiajeno UPDATE) osvjeava podatke u tabeli, odnosno prepisuje podatke iz kontrola u tabelu. Ako elimo spremiti aktivni zapis iz kontrola obrasca bez premjetaja na novi zapis, tj. bez koritenja navigacijske kontrole, morat emo kreirati jo jedno dugme, koje moemo nazvati "Prihvati". Za njega emo koristiti slijedea svojstva kd:

Naziv: Caption:

cmdPrihvati &Prihvati Dvoklik na novo dugme otvara njegov Code prozor. Upii kd:

Private Sub cmdPrihvati_Click() frmImeObrasca.UpdateRecord ' spremi zapis u tabelu (tj.prepii podatke iz kontrola u tabl.) End Sub Dugme Restore (u engleskom je uobiajeno RESTORE) prijepis iz tabela u kontrole Pretpostavimo da smo zapoeli ispravak nekog zapisa, ali u pola posla shvatimo da je bolje da ga ostavimo onakvoga kakav je bio. Ako se samo maknemo na drugi zapis, izmjene e biti zapamene, a to neemo. Zato nam treba dugme koje e vratiti zapis koji je jo upisan u tabeli. Za takvo dugme, svojstva i kd e biti slijedei: Naziv: Caption: cmd&Vrati &Vrati Dvoklik na novo dugme otvara njegov Code prozor. Upii kd:

Vrati

Private Sub cmdVrati_Click() frmImeObrasca.UpdateControls End Sub

' vrati (kontrole na) ranije vrijednosti (prepis iz tabele u kontrole)

21 / 21

Dugme Exit

IZLAZ Izlaz

(u engleskom je uobiajeno EXIT) uklanja obrazac sa ekrana Nakon uklanjanja obrasca, VB ostaje "prazan" ako je bio aktivan samo ovaj obrazac, pa ostaje samo izlaz iz programa na uobiajen nain (sa ili bez spremanja eventualnih izmjena obrasca. Evo i kda za ovo dugme:

Naziv: Caption:

cmdIzlaz &Izlaz Dvoklik na novo dugme otvara njegov Code prozor. Upii kd:

Private Sub cmdIzlaz_Click() Unload Me ' Ukloni obrazac (bez upisa vrijednosti iz kontrola u tabelu ako nije aktiviran Update End Sub

UMETANJE SLIKA
Koristei ikonu u obrazac postavljamo okvir za sliku, a zatim u svojstvu Picture odabiremo ciljanu sliku sa diska internim pretraivaem koji se aktivira klikom na uz svojstvo Picture.

KREIRANJE IZBORNIKA
Glavni izbornik svake aplikacije oblikovan je kao niz naredbi nanizan na traci pri vrhu obrasca. Klik na odabranu naredbu moe proizvesti izvrenje ciljane procedure, ili otvoriti tzv. "padajui izbornik" s vertikalnim nizom komandi. Pojedine komande mogu otvarati slijedei nivo podmenua. U visual basic-u po potrebi svaki obrazac moe imati vlastiti izbornik. Izbornik se moe kreirati i uz pomo arobnjaka VB Application Vizard, koji e kreirati neki standardni menu, koga onda moemo prilagoavati naim potrebama. Postupak za kreiranje izbornika "pjeice" je slijedei: Klik na ikonu Visual basic-ovog izbornika otvara dijalog u kome treba: upisati natpis (Caption) tj. tekst koji e se pojaviti na traci izbornika, po potrebi sa znakom & koji definira "vruu tipku" za aktiviranje komande u kombinaciji s tipkom ALT upisati naziv (Name) menu-a (mjesto razmaka mora se koristiti podvlaka _ ) s prefiksom mnu. OK zatvara dijalog. Traka izbornika s kreiranim naredbama nai e se na vrhu obrasca Naknadno proirenje izbornika mogue je dodavanjem novih naredbi opcijom INSERT. Takoer, opcija DELETE brisat e oznaenu naredbu sa trake. Takoer, mogue je naknadno pomicanje elemenata izbornika sa . Kreiranje podmenu-a Klik na ciljanu naredbu oznaava je klik na INSERT naredbu Visual basic-ovog izbornika unos komande u Caption unos imena komande u Name (preporua se oblik mnuNaredbaPodnaredba) klik na pozicionira podmenu desno pomaknuto u odnosu na naredbu iz trake izbornika.

Kvaica na checked u dijalogu za kreiranje izbornika postavlja kvaicu uz menu-naredbu, koju po potrebi uklanjamo kdnom linijom : mnuImenaredbe.Checked = False. Kad u Run-time modu korisnik klikne na komandu, pored nje e se pojaviti (ili ukloniti) kvaica. Opcijama dijaloga mogue je i deaktiviranje (zamagljivanje) naredbe, umetanje razdjelne linije ili pridruivanje kratice. Pop-up izbornici iskau ni otkuda kad kliknemo desnom tipkom mia na neku kontrolu ili naredbu. To se postie pretvorbom "obinog" izbornika u Pop-up menu, umetanjem slijedee dodatne procedure u kdni prozor obrasca u kome elimo imati iskaui menu. S otvorenim Code prozorom obrasca kreiramo dodatnu proceduru (npr. MouseUp).

22 / 22 Kd u nastavku, pretvorit e izbornik mnuIzvorni u Pop-up izbornik naziva MouseUp na mjestu kursora: Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X Single, Y As Single) If Button = 2 Then ' ako je desna tipka mia je pritisnuta onda . . . PopupMenu mnuIzvorni ' prikai menu mnuIzvorni End If ' kraj odluke End Sub ' kraj procedure Na kraj tree naredbe (masno tiskane) moe se dodati zarez i instrukcija za poravnanje: 0 4 8 za lijevo poravnanje (koje je pretpostavljeno i bez ovih instrukcija) centrirano desno poravnanje

Parametri X i Y deklarirani u prvoj liniji procedure su koordinate lijevog gornjeg ugla Pop-up izbornika koje moemo zadati ako elimo da se Pop-up menu pojavi na nekom definiranom mjestu neovisno o poziciji kursora. X i Y (u pikselima) se dodaju na kraj tree linije, odvojeno zarezima (npr: PoppMenu mnuIzvorni, 40, 200 ). Prikazana je samo jedna od moguih verzija kda za ovu namjenu. PORUKA (Message) Prikaz poruke ostvaruje se upisom slijedee linije u Form_Load() proceduru obrasca:

MsgBox "tekst poruke", xx pri emu je xx neobavezna vrijednost (16, 32, 48 ili 64) koja definira vrstu ikone koja e se pojaviti uz poruku. Ako ne elimo ikonu, ipak upisujemo zarez i prazninu (blank). Poruku zatvara klik na dugme OK. . TAB INDEKS KARAKTERISTIKA Tab indeks je svojstvo koje definira redoslijed aktiviranja pojedinih kontrola u obrascu kad se kroz njega kreemo tipkom TAB. Ako iz nekog razloga (npr. zbog proizvoljnog redoslijeda definiranja kontrola) taj redoslijed ne odgovara naim zahtjevima, treba kliknuti na zadnju kontrolu i njeno svojstvo TabIndex u Properties-u postaviti na 0. Zatim redom od nazad prema prvoj kontroli sve Tab indekse postavite na 0. Kad se prva kontrola postavi na tu najniu vrijednost, sve ostale poprimaju rastue vrijednosti, pa e redoslijed kretanja tipkom Tab biti u skladu s naim eljama. Na kraju, u sluaju unosa pogrenog tipa podatka (npr. teksta u eliju za brojani podatak) VB e obavijestiti o greki, budui da Microsoft Jet Engine automatski verificira sve unose. SPREMANJE OBRASCA I POKRETANJE APLIKACIJE Spremi obrazac sa File > Save. VB e zatraiti ime za novi obrazac i ime za projekt (ako se prvi puta spremaju). Obrazac dobiva nastavak .FRM, a projekt .VBA. Pokreni Run > Start iz glavnog izbornika ili stisni F5. Obrazac iz dizajn-moda (Design-time) prelazi u radni (Run-time) reim, u kome objekti poprimaju namijenjenu funkciju, tj. aplikacija e proraditi. Sad moemo unositi podatke u kontrole obrasca. Pomak strelicama navigacijske kontrole na slijedei zapis automatski pamti uneseno. U naem sluaju i dugme DODAJ ili ALT+D prazni obrazac za novi upis. Strelicama kontrole navigatora prelazimo s aktivnog retka baze podataka na slijedei ili prethodni, odnosno prvi ili zadnji. Svaki uitani zapis moemo mijenjati ili ispravljati. Sva navedena dugmeta (koja smo kreirali) takoer poprimaju funkciju, pa tako dugmetom VRATI (Restore) ponitavamo unose u kontrole, ako ne elimo da budu zapamene pri prelasku na slijedei zapis strelicama navigacijske kontrole. Ovime smo uglavnom obuhvatili Visual basic okruenje za kreiranje suelja ili obrazaca. Vrijeme je da neto kaemo o procedurama i kodiranju.

23 / 23

PROCEDURE
Kako je ve spomenuto, proceduru (ili subrutinu) definira kd pisan u programskom jeziku Basic, kojim se raunalu nalae kako e reagirati na pojedine dogaaje koje je inicirala prethodna obrada ili korisnik. Visual Basic stoga sadri listu dogaaja i pamti listu procedura, a programerov je zadatak da definira koje e procedure uslijediti kao odgovor na pojedine dogaaje u pojedinim fazama raunalne obrade. Ako Visual Basic ili korisnik raspolau gotovim procedurama za pojedine subrutine, koristit emo njih. Ako procedura koja nam treba ne postoji, morat emo je kreirati pisanjem kd-a. Za pisanje procedura koristimo nekoliko prozora, od kojih je osnovno suelje za pisanje koda prozor Code. Otvara ga dvoklik na objekt, tipka F7 ili komande izbornika View > Code. Podsjetimo se kako prozor Code izgleda: izborna lista objekata popis procedura Lijeva kombo-elija uva izbornu listu objekata a desna popis procedura. Ispod njih se ispisuje kd. Prilikom otvaranja prazne procedure, automatski se odabire objekt Form (obrazac) s ve unesenim poetnim i zavrnim retkom procedure Load, iz desne kombo elije. To je procedura za uitavanje obrasca. Prozor Code prihvaa i sve druge procedure obrasca. Redovi i ispisi procedura, mogu se po potrebi kopirati sa copypaste iz jedne procedure u drugu ili jednog projekta u drugi, uz prilagodbu imena objekata. OPREZ ! Promijenimo li ime nekog objekta, moramo aurirati sve njegove procedure.

VBA verzija Visual Basic for Applications esto se koristi u sklopu OFFICE-ovih alata (EXCEL, ACCES) za izvoenje onih procedura koje nisu sadrane u arsenalu osnovnog programa, pa na suelju takvog Visual-Basic-Editora pomoni alati mogu biti drugaije organizirani, ali sadre iste elemente. Visual Basic for Applications se poziva se iz Excelovog (ili Accessovog) izbornika sa: Alati > Makronaredba > Visual Basic Editor, a u nekim situacijama zna se i sam se uitati zbog rjeavanja greaka u programu. Budui da je broj moguih procedura vrlo velik, za njihov izbor i sparivanje s dogaajima na koje e odgovarati, koristi se poseban pretraiva procedura Object Browser koga aktiviramo menu - ocijom View > Object Browser Visual Basic-ovog glavnog izbornika. No, o tome kasnije.

24 / 24 VB razlikuje tri vrste prosedura s gledita obuhvata primjene: Private sub Public sub je procedura koja je primjenjiva samo unutar objekta u kome je kreirana. su tzv. ope procedure, koje se mogu koristiti (2) u vie objekata istog obrasca, ili (3) ak u svim Visual basic aplikacijama (to su moduli). su procedure tipa Public koje mogu koristiti sve procedure one aplikacije u kome je procedura kreirana. Nakon kreiranja, VB ih sprema u datoteku s ekstenzijom .FRM koju automatski kreira prilikom spremanja projekta. VB e od korisnika zatraiti unoenje imena nove FRM datoteke. FRM proceduru po potrebi poziva lokalna procedura Private sub tipa. su procedure, koje mogu koristiti svi projekti, odnosno sve aplikacije. Dio su tzv. programskih modula, tj. datoteka s nastavkom .BAS, koju VB automatski kreira prilikom spremanja aplikacije. Zatrait e od korisnika ime nove .BAS datoteke. I tu proceduru po potrebi pozivaju lokalne Private procedure.

ope procedure iz .FRM datoteka

ope procedure iz .BAS datoteke (Modula)

RADIO GUMBI I PRIMJER NJIHOVE UPORABE KORITENJEM JEDNOSTAVNIH PROCEDURA Tzv. radio gumbi namijenjeni su izboru samo jedne od ponuenih opcija. U principu, ne moe se odabrati vie od jedne opcije u grupi radio gumba. Ako na istom obrascu treba formirati vie od jedne grupe radio gumba, svaka grupa se mora uokviriti okvirom iz kolekcije kontrola. Iako radio-gumbi spadaju u objekte, a ne u procedure, oni bez procedura nemaju praktinu vrijednost. Klikom na njih korisnik mijenja njihovo svojstvo "Value" (vrijednost) iz False (la, tj. nezakliknuto) u True (istina, tj. zakliknuto). Stanje True ili False koristi se za iniciranje procedure koja treba uslijediti u sluaju klika na pojedinu opciju grupe radio-gumba. Prvu i zadnju liniju procedure svakog objekta, pa i radio-gumba VB automatski kreira ako dvokliknemo na odabrani objekt, odnosno u naem sluaju na odabrani radio gumb. Primjer uporabe radio gumba, ali i jednostavnih procedura, dobro ilustrira programi iji kd slijedi u nastavku. Da bi ga primijenili, pokrenimo Visual basic, kliknimo na prvi redak u emi projekta, te u propertis tabeli svojstvo Name promijenimo u Zdravo. Time smo imenovali aplikaciju. Klik na automatski predloen obrazac otvara svostva obrasca, pa za Name stavimo frmZdravo, a upis "Zdravo" u svojstvu Caption, ispisat e "Zdravo" na okviru obrasca. Time smo imenovali obrazac (u ovom sluaju je ime aplikacije i ime obrasca isto). Ako spremimo projekt, ubudue emo ga na disku nai pod imenom Zdravo.vbp. Moemo ga spremiti u neku mapu u blizini Visual Basic programa. Uz navedeno, trebat e nam i tri sliice u .gif formatu, smjetene negdje na disku (najbolje u istoj mapi sa Zdravo.vbp) Trebaju nam slijedee slike veliine cca 1 x 1 cm: Siva podloga u veliine smajlia jednake boje kao pozadina obrasca (nazovimo je sivo.gif) nasmijeeni smajli nazovimo smajli.gif i tuni smajli nazovima Tuzan.gif (ne koristite hrvatske znakove u imenima objekata)

Sada otvorimo ponovo Zdravo.vbp i u formular umetnimo tri radio-gumba. Svojstvo Caption bit e upisano pored radio gumba umjesto "option button 1" itd. Postavmio na obrazac i jednu labelu, i dva tekstualna okvira. Labelu smjestimo u sredinu, ali je oblikujmo kao eliju koristei svojstva za rub okvira Apperance (1 3D) i boju pozadine BackColor (odaberimo Window Background). Jo nam treba dugme EXIT, pa ucrtajmo i njega. Klik na eljeni objekt i svojstva objekata postavimo kako slijedi: objekt: Name: Caption Value prvi radio gumb optStart Idemo ! drugi radio gumb optSmjesko Zdravo! trei radio gumb optTuzan mrc ! prvi text box txtIdemo srednju labelu lblZdravo donji text box txtTuzan dugme cmdExit E&XIT (vrua tipka e biti X jer je ispred njega znak &)

True

25 / 25

Slijedi umetanje triju okvira za slike i izbor slika sa diska putem svojstva picture Kada ste kreirali slike, moete poklopiti sve tri na isto mjesto. Rezultat bi trebao biti kao na slici. Upis True u svojstvu Value prvog radio gumba, stavlja ga u zakliknuto stanje pri uitanju obrasca. Preostaje pisanje kda. Iako kodiranje jo nismo usvojili, slijedei ispis kda sa objanjenjima, dovoljno je jednostavan da poslui ne samo za dovrenje zapoete aplikacije, nego i kao ilustracija za slijedee poglavlje o procedurama i kodiranju. Dvoklik na prazan dio obrasca otvorit e prozor Code sa zapoetom procedurom Private Sub Form_Load(), a to je procedura koja e se izvriti prilikom uitavanja prvog (u naem sluaju jedinog) obrasca, dakle i aplikacije. U tom kodnom prozoru e biti sadrane sve procedure koje se odnose na ovaj obrazac i njegove objekte. Da bi zapoeli procedure pojedinih objekata, treba samo dvokliknuti na odabrabi objekt. Izmeu prve i zadnje linije "praznih" procedura, upiite nie navedene naredbe tako da itav kd izgleda kako slijedi: ' UITAVANJE OBRASCA - usput se izvravaju slijedee naredbe. Private Sub Form_Load() sakriva sliku "tuzan" imgTuzan.Visible = False ' imgSmjesko.Visible = False ' sakriva sliku smjeka txtIdemo.Text = "Text box moe ispravljat !" ' postavlja tekst u prvi tekstualni okvir prazni labelu "Zdravo" LblZdravo = "" ' txtTuzan.Text = "" ' pazni tekstualni okvir "Tuzan" End Sub ' Klik na prvu opciju "Idemo" (naziva "optStart") inicira slijedee naredbe: ' Private Sub optStart_Click() imgSivo.Visible = True ' postavlja sliku "Sivo" (tj. na boju pozadine) imgTuzan.Visible = False ' akriva sliku "Tuzan" imgSmjesko.Visible = False ' sakriva sliku "Smjesko" LblZdravo = "" ' prazni labelu "Zdravo" (srednju eliju) txtIdemo.Text = "Idemo ispoetka ?" ' postavlja natpis u prvu eliju (tipa text box) txtTuzan.Text = "" ' prazni zadnji tekstualni okvir (uz "mrc !") End Sub ' Klik na drugu opciju "Zdravo" (naziva "optSmjesko") inicira slijedee naredbe: ' Private Sub optSmjesko_Click() imgTuzan.Visible = False ' sakriva sliku "Tuzan" imgSmjesko.Visible = True ' postavlja sliku "Smjesko" imgSivo.Visible = False ' sakriva sliku "Sivo" LblZdravo = "Haj kvadro!" ' upisuje labelu (oblikovali smo je kao eliju) txtIdemo.Text = "" ' sakriva tekst u prvoj eliji (text box naziva txtTuzan.Text = "" ' sakriva tekst u treoj eliji, zakljuanoj za korisnika End Sub ' Klik na treu opciju "mrc !" (naziva "optTuzan") inicira slijedee naredbe. ' Iz dosadanjih opisa trebali biste znati to radi koja od slijedeih naredbi. ' Private Sub optTuzan_Click() imgTuzan.Visible = True imgSmjesko.Visible = False imgSivo.Visible = False LblZdravo = "" txtIdemo.Text = "" txtTuzan.Text = "Zato me ostavlja ?" End Sub Tekst iza znaka ' (gore bljee ispisan) VB shvaa kao primjedbe i objanjenja koja ne utjeu na izvravanje programa. Spremimo sada aplikaciju i pokrenimo iz izbornika komandama Run > Start ili jednostavnije klikom na ikonu na vrhu panela. Klikom na pojedine radio gumbe, dobit emo zanimljive efekte. Obrazac zatvara klik na EXIT.

26 / 26 Iskoristili smo priliku za dodatno objanjenje postupanja sa tekstualnim upisima. Kontrole tekstualnih okvira slue za unos i korekciju teksta zbog unoenja podataka u bazu podataka koju obrazac opsluuje. Unos se moe izvriti runo, tj. direktnim upisom u kontrole, ali moe se unositi i "programski", tj. putem kda, kao to je sluaj u ovom primjeru. Obrazac se takoer koristi i za prikaz podataka iz postojeeg zapisa. Ako elimo sprijeiti korisnika da mijenja programski unesen tekst, to se moe postii na dva naina: podatak se u obrascu moe prikazati pomou labele umjesto pomou tekst box-a (kao to je uinjeno u drugoj eliji naeg primjera) ili text box-u se izborom opcije True u svojstvu Locked (zakljuano) pretvara u read-only kontrolu, tj. takvu koju se moe samo itati, ali ne i ispravljati.

U oba sluaja putem kda upisan ili iz tabele isitan podatak korisnik ne moe mijenjati.

KREIRANJE PROCEDURA
LOKALNE PROCEDURE tipa Private sub kreiraju se za postojei imenovani objekt kako slijedi: Kreiranje (tj. imenovanje) obrasca popraeno je automatskim kreiranjem procedure Private Sub Form_Load, koja postaje vidljiva dvoklikom na prazan dio obrasca. VB e sam upisati Form i Load u lijevu i desnu kombo-eliju prozora Code, te poetnu i zavrnu liniju procedure, koja se izvrava prilikom otvaranja obrasca. Private Sub Form_Load() dok ovdje nije nita upisano, procedura samo uitava obrazac End Sub elimo li definirati jo neku dodatnu proceduru koja se treba izvriti prilikom uitanja obrasca, a ne na pri aktiviranju kontrola, s otvorenim Codeprozorom aktivnog obrasca iz glavnog izbornika biramo: Toos > Add Procedure U dijalokom okviru Add Procedure koji e se otvoriti, ve je odabran radio-gumb Sub (kreiramo subrutinu a ne primjerice funkciju) i Private (jer kreiramo lokalnu proceduru). U tekstualnu kontrolu treba upisati naziv budue procedure. Na dnu prozora Code, VB e ovoriti novu proceduru s poetnom i zavrnom naredbom kada kliknemo na OK. Private Sub ImeProcedure() End Sub Primjeujemo da ona inicijalno nije vezana za neki dogaaj (nema Click() ili neki drugi dogaaj u prvoj naredbi), jer se ona izvrava prilikom otvaranja obrasca, tj. unutar osnovne procedure obrasca Form_Load. U tom cilju, njezino ime ili naredba Call Imeprocedure se upisuje u obliku linije unutar Form_Load procedure, na mjestu koje kronoloki definira trenutak njenog aktiviranja. Ako je tako ne upiemo, ona ostaje neaktivna. Preostaje sluaj, kad se procedura treba odnositi na neku kontrolu obrasca, a ne na sam obrazac. Taj je sluaj najjednostavniji: dvoklik na objekt u koji se procedura eli ugraditi, otvara Code prozor aktivnog obrasca, kome objekt pripada. VB u lijevu kombo-eliju automatski upisuje ime oznaenog objekta (tj. "Name" odabrane kontrole), a u desnu eliju pretpostavljeni dogaaj Click kojim se procedura aktivira. Istovremeno, u Code-prozoru aktivnog obrasca otvara proceduru odabranog objekta s poetnom i zavrnom linijom:

27 / 27 Private Sub ImeObjekta_Click() dok ovdje nije nita upisano, procedura ne radi nita End Sub U ovom sluaju, prva linija zavrava dogaajem koji aktivira proceduru. Izmeu zagrada mogu, ali ne moraju biti sadrani parametri potrebni za izvrenje. Vidimo da je VB proceduri automatski nadjenuo ime Imeobjekta, pri emu e ime objekta iz svojstva objekta Name imati i troslovni prefiks koji oznaava vrstu objekta (osim ako je objekt tipa Text-box). to emo upisati u naredbene linije, predmet je razmatranja u slijeem poglavlju, a jednostavne primjere smo vidjeli u opisu kreiranja dugmadi i radio-gumba. Call imeprocedure Za sada pamtimo, da meu linije procedure treba upisati imena onih FRM ili BAS procedura koje elimo da VB izvri prilikom aktiviranja objekta (npr. kad kliknemo na objekt). Upisom imena procedure unutar kda, pozivamo ih, odnosno zahtijevamo njihovo izvrenje. Proceduru poziva i naredba Call ImeProcedure. FRM PROCEDURE Ako kreiramo opu proceduru koja se moe spremiti u FRM datoteku, tu proceduru mogu pozivati sve Private procedure iz iste FRM datoteke, a to su procedure jednog obrasca. Postupak:

klik na ciljani obrazac u Project-exploreru - obrazac ostaje oznaen (ako postoji FRM otvori Code-prozora tipkom F7 datoteka, moemo birati i FRM datoteku). (ili dvoklik na otvoreni obrazac) otvara se Code-prozor Form_Load tog obrasca. U lijevoj kombo-eliji biramo General kursor se postavlja iznad Private Sub Form_Load() iz izbornika Tools > Add Procedure otvara se dijaloki okvir Add Procedure u Name upii ime budue procedure Sub i Public e ve biti izabrani to definira vrstu procedure kao opu subrutinu OK VB u desnu kombo eliju i njen popis upisuje Imeprocedure a u kodnoj listi otvara novu proceduru. : Private Sub Imeprocedure() End Sub Save As Prilikom srpemanja aplikacije VB automatski kreira novu .FRM datoteku s unesenim upravo kreiranim kdom i trai upis imena FRM datoteke. Ako ona ve postoji, nova FRM procedura bit e dodana na postojei ispis kda.

FRM Ope procedure ne pokreu dogaaji, nego se one pozivaju naredbom Call Imeprocedure ili jednostavnim upisom Naziva u nekoj Private proceduri iz iste FRM datoteke u kojoj je spremljena FRM opa procedura. BAS PROCEDURE i Module kreiramo kada proceduru elimo koristiti u bilo kojoj Visual Basic aplikaciji. Skup takvih procedura upisuje se u tzv. modul, - datoteku s nastavkom BAS Proceduru moe pozvati naredba Call ImeProcedure ili upis ImeProcedure u kodnu liniju bilo koje lokalne (tj. Private) procedure bilo koje Visual basic aplikacije, pod uvjetom da je procedura prisutna u bilo kom modulu (tj .BAS datoteci) raunala.

Project > Add module iz glavnog izbornika otvara dijaloki okvir Add Module Klik na ikonu Module i dugme Open otvara dijaloki okvir Imeprojekta-Modul1 iz izbornika Tools > Add Procedure otvara se dijaloki okvir Add Procedure u Name upii ime budue procedure privremeni naziv Modul1 se mijenja u upisani. Klik na Sub i Public - - - - - - - - - - definira vrstu procedure kao opu subrutinu. OK VB u desnu kombo eliju i njen popis upisuje

28 / 28 ImeModula. Istovremeno u Project-Explorer upisuje novi folder "Modules" sa novim modulom Modul1.BAS, u ijoj kodnoj listi otvara novu proceduru : Public Sub Modul1() End Sub Spremi aplikaciju sa File > Save Datoteka .BAS automatski se sprema prilikom spremanja aplikacije. Treba je samo imenovati Ako .Bas datoteka ve postoji, postupak je:

biraj modul (iz Projekt Explorera) u koji eli spremiti novu opu proceduru klik na ikonu View Code otvara okvir za pisanje kda odabranog modula iz izbornika Tools > Add Procedure otvara se dijaloki okvir Add Procedure u Name upii ime budue procedure Klik na Sub i Public - - - - - - - - - - definira vrstu procedure kao opu subrutinu. OK VB u desnu kombo eliju i njen popis upisuje ImeModula i otvara prvu i zadnju kodnu liniju

Sada znamo napraviti obrazac, povezati ga s ciljanom bazom podataka i eljenom tabelom, a poznamo i sve vrste procedura, te naine na koji ih moemo zapoeti. No, s izuzetkom nekoliko jednostavih procedura koje smo pokazali, ne znamo to treba upisati izmeu poetne i zavrne naredbe procedura. Ipak, znamo da e se unutar aktivne procedure izvriti i ope procedure ije ime upiemo kao jednu od linija aktivne procedure. Za neke jednostavne radnje (npr. upis tekstualnih podataka u bazu podataka ili prikaz redaka baze podataka u obrascu) nam procedure i ne trebaju. No ako se osim pukog spremanja i itanja podataka iz baze zahtjeva i najjednostavnija obrada tih podataka, moramo primijeniti postojee, ili znati napisati vlastite kdove u procedurama

PISANJE KD-a
Raunalnom obradom upravlja niz instrukcija koje ine program. Dananji programi su interaktivni, tj. za vrijeme obrade korisnik komunicira s raunalom putem korisnikog suelja, mia i tipkovnice. Iole sloeniji programi razbijaju se na manje jednostavnije potprograme, koje u Visual Basic-u zovemo procedurama. Procedura je slijed instrukcija programskih naredbi nanizanih u redove (tzv. "linije") izmeu poetnog i zavrnog retka procedure, koje Visual Basic prilikom imenovanja nove procedure ispisuje automatski. Takav ispis potprograma naziva se kd. Prazan kd ima slijedei izgled: Private Sub.ImeProcedure_Dogaaj() Ovdje se ubacuju naredbeni redovi (linije) redoslijedom izvoenja obrade End Sub Crveno e biti tiskane slubene rijei Visual basica, a plavo nazivi koje daje korisnik. Svaki se naredbeni redak sastoji od slubene rijei Visual Basic-a za pojedine radnje i imena elemenata (procedure, objekata i dogaaja, eventualno i obrazaca i dr.) s kojima se radnja izvodi. Tako i prvi redak kd-a sadri slubenu rije "Private Sub" koja raunalu kazuje da je rije o proceduri (potprogramu ili subrutini) koja je izvediva samo s naznaenim objektom (otuda prefiks Private), a izvriti se treba ako nastupi naznaeni dogaaj. Unutar zagrada na kraju retka mogu, ali ne moraju biti sadrani neki parametri potrebni za izvrenje obrade. Ostali naredbeni redovi izmeu prvog i zadnjeg, naelno sadre slubenu rije za eljenu radnju: Unload Me prekini izvoenje svih naredbi, tj. zaustavi proceduru (stariji oblik je End) ili izraz oblika jednakosti: na primjer:

ImeObjekta.Karakteristika = Vrijednost

29 / 29 imgSmile.Visible = False txtArtikal = "krumpir" tj. Slika Smajlia.je vidljiva = la (sakriva sliku "Smile") ili naredba ispisuje tekst Krumpir u eliji koja se zove Artikal

Pamtimo: tekstove desno od jednakosti (osim slubenih rijei) stavljati meu navodnike ! Naredbe ovog oblika mogu biti koritene i za oblikovanje ili promjenu obrazaca, suelja, ili na njima prisutnih objekata. U tom cilju potrebno je kodnom linijom promijeniti svojstava objekata, koja inae definiramo u tablicama svojstava u dizajn-modu (tako smo postupali u primjeru Zdravo.vbp) Primjeujemo da se ime objekta sastoji od objekt-prefiksa (img, odnosno txt itd.) i samog proizvoljnog imena. U Visual Basic-u su propisani slijedei prefiksi za razne vrste objekata:

Prefiksi imena objekata u Visual Basic-u


Objekt podatak (data) izbornik datoteka izbornik direktorija izbornik pogona crta lik (krug, kvadrat itd) vodoravni kliza vertikalni kliza prefiks dat fil dir drv lin shp hsb vsb abc Ojekt fiksni tekst (labela) tekstni okvir komandno dugme okviri za kvaicu krui za izbor opcije kombo okvir okvir za listu slika (image) okvir (frame) prefiks lbl txt cmd chk opt cbo lst img fra

Primjerice naziv cmdIzlaz dat emo komandnom dugmetu za uklanjanje obrasca sa ekrana. Sve elemente (obrasce, objekte, fontove i dr.) koji se koriste u objektno orjentiranim programima karakteriziraju razna svojstva. Promjenom svojstava, mijenja se poloaj, veliina, oblik ili druge karakteristike (boja, veliina, debljina crte ili znakova i dr.) objekata, pa se i izgled suelja ili obrazaca moe mijenjati i naredbenim linijama Visual Basic-a, ako je to potrebno, tj. ako izmjene trebaju uslijediti automatski, kao rezultat tijeka obrade .

Zamagljeno i nevidljivo Objekti, naredbene ikonice na izbornicima i dr. mogu se deaktivirati ako elimo privremeno sprijeiti njihovu uporabu, ili ih sakriti. Tome slue slijedee dvije naredbe: cmdDalje.Enabled = False dugme DALJE (npr. za nastavak obrade).Ukljueno = La drugim rijeima: sprijeen je nastavak programa (npr. dok se ne obavi neka radnja koja je uvjet za nastavak). Dugme e na suelju ili obrascu biti zamagljeno i nee reagirati. Isto dugme, u ovom sluaju bit e sakriveno, tj. nee se ni vidjeti dok ne promijenimo svojstvo vidljivosti na TRUE dugme DALJE.Vidljivo = istina (tj. dugme je vidljivo)

cmdDalje.Visible = False

cmdDalje.Visible = True

Pretpostavljam da ste shvatili filozofiju. Tijekom procedure, mijenjat ete svojstva tim naredbama prema potrebi. Koristite iskaua objanjenja (Tooltips) uz objekte ija funkcija nije potpuno jasna sama po sebi. ToolTipText bit e vidljiv kada kursor zadrimo na objektu s Tooltip-om na due od sekunde. Objanjenja se umeu dvoklikom na svojstvo ToolTipText u tabeli svojstava objekata. Drugi je nain za kratke upute ili objanjenja postava labela, a trei kreiranje poruka (Message).

30 / 30 Varijable i vrijednosti Do sada smo dogovorili, da emo promjenu stanja bilo kog od objekata koji tvore suelje zvati dogaajem i da je zadatak programera da definira proceduru koju raunalo treba izvriti kao odgovor na planirane ili mogue dogaaje. Takoer znamo da se ime procedure sastoji od imena tretiranog objekta, na koje se dodaje ime dogaaja koji e inicirati proceduru. Slijedei pojmovi koje susreemo pri pisanju koda su: varijabla je imenovano mjesto, odnosno nositelj bilo kakvog sadraja ili vrijednosti. Ime varijable je trajno (tj. nepromjenjivo) a vrijednost koju varijabla uva je promjenjiva. "Varijablu" s vrijednou koja se u pravilu ne mijenja (ali u rijetkim sluajevima ipak moe biti promijenjena, poput primjerice vrijednosti PDV-a) zovemo Konstanta. Varijabla moe uvati samo jednu vrijednost. Izuzetak je Niz, koga moemo shvatiti kao varijablu koja moe uvati vie od jedne vrijednosti. Da bi svaka vrijednost niza bila dostupna, pojedinim vrijednostima dodjeljuju se tzv. index-i. Pri tome prvoj vrijednosti u nizu pripada indeks 0. Neke varijable stvara programer, a neke uvaju karakteristike svojstava (boju, debljinu i sl.) prisutnih sastavnica ili objekata i unaprijed su definirane, te nose slubena imena koja se ne mogu koristiti za programske varijable. Pridruenjem nove vrijednosti, varijabla gubi prijanju, to kod svojstava zovemo modificiranjem vrijednosti svojstava. Varijable moraju poinjati slovom i mogu imati najvie 255 znakova bez razmaka (mjesto razmaka koristi: _ ) su brojane ili znakovne (ili druge) vrijednosti koje dodjeljujemo varijablama naredbom oblika: ImeVarijable = vrijednost Pri tome znakovne vrijednosti treba stavljati meu navodnike. Izraz navedenog oblika upisujemo izmeu poetnog i zavrnog redka procedure, redoslijedom kojim treba tei izvrenje. Nain uvoenja varijabli u proceduru zovemo deklariranje varijabli. Gore je naveden najjednostavniji nain, no bolje je navesti sve varijable na poetku procedure u obliku (crveno su tiskane slubene rijei): Dim Imevarijable1, Imevarijable2, Imevarijable . . . . itd Moe se to jo i kompliciranije, s navoenjem tipa podataka: Dim ImePsa as String, Starost as integer Crveno su otisnute slubene rijei Vsual Basica. Ova "kompliciranja" se isplate osobito kod veih procedura, jer je pregledom prvih redaka procedure mogue dobiti uvid u sve varijable koje procedura koristi, a dobar pregled nad koritenim varijablama zlata e nam vrijediti u radu sa sloenijim aplikacijama. Inae, procedura e funkcionirati i bez Dim linija, ako se ne izgubimo u umi imena. Na kraju, varijabli kao vrijednost moemo dodijeliti drugu varijablu: Imevarijable1 = Imevarijable2 npr: txtPoruka.Text = txtMesage.Text Svojstvima objekata, vrijednosti se dodjeljuju u obliku: ImeObjekta.Imesvojstva = Vrijednost (Imesvojstva je slubena rije)

vrijednosti

Mogua je promjena vrijednosti objekta i u obrascu koji nije otvoren, ali u tom sluaju na poetku naredbe treba navesti ime tog obrasca: ImeObrasca!ImeObjekta.Imesvojstva = Vrijednost

31 / 31

Tipovi podatka Korisnici EXCEL-a znaju da razlikujemo vie tipova podataka: String(s) Integer Single Long Double i Numbers Variant Currency znakovne varijable (ukljuivo niz cifri koji izgleda kao broj, npr. telefonski brojevi) cjelobrojna vrijednost (broj bez decimala) decimalni broj vrlo mali (negativni) ili vrlo veliki cjelobrojni podatak (dakle bez decimala) decimalni broj s dvostrukom tonou (vrlo velikim brojem decimala) " datum (od 01.01.0000 do 31.12.9999) vrijednosti u valuti

Ve smo spomenuli, da se deklariranje varijabli moe obogatiti i navoenjem tipa podataka: Dim ImePsa As String, Starost as Integer elimo li ograniiti doputenu duinu podatka, to je omogueno sintaksom: Dim VariableName As DataType Dim ImePsa As String

(odbacit e se viak iznad 8 znakova)

max. broj znakova

npr:

Visual Basic razlikuje tri nivoa varijabli s gledita dohvata . To su: Local Module Public varijabla je ograniena na onu proceduru u kojoj je deklarirana varijabla se moe koristiti u svim procedurama vlastite FRM datoteke varijabla se moe koristiti u svim projektima Visual Basic-a

to je iri opseg dohvata varijable, nastat e vei rusvaj ako varijabla unese pogrean podatak, a greka e se tee locirati. Nivo dohvata varijable zavisi o tome, gdje emo je deklarirati. Varijabla deklarirana u Private Sub proceduri koju inicira neki konkretni dogaaj, bit e lokalnog nivoa, tj. ograniena na tu proceduru. Varijablu nivoa Module treba deklarirati odabravi General iz popisa objekata prozora Code. U desnoj kombo-eliji u tom sluaju treba stajati Declarations. Varijablu definiranu ovdje, mogu koristiti sve procedure iz iste FRM datoteke u koju e biti spremljena ova varijabla. Varijablu s dohvatom Public moemo deklarirati samo unutar modula, koga otvaramo menunaredbama Visual Basic-a Project > Add >Module, to e proizvesti pojavu (novog) modula u emi aplikacije. Klikom oznaimo i otvorimo (sa Open) tu datoteku (imat e nastavak .BAS), pa e se prikazati prazan Code okvir s upisom General u lijevoj i Declaration u desnoj combo-eliji. Tu sada deklariramo varijablu, ali mjesto uobiajene slubene rijei Dim piemo Public: Public ImePsa As String Dodavanje naredbe Option Explicit u program, prisilit e nas da unato svojoj lijenosti deklariramo sve varijable, to nam kasnije moe ublaiti muke pri traenju greaka u programu. Deklariranje dohvata varijabli olakat e prihvat aplikacije od strane srodnih progranskih jezika poput Pascala, C++ i drugih. KONSTANTE su "varijable" s nepromjenjivom, odnosno stalnom vrijednou (npr. stopa PDV-a) Moraju poeti slovom i imati najvie 40 znakova (mjesto praznina koristiti _ ). One se koriste uglavnom ako predviamo potrebu njihove zamjene na vie mjesta u aplikaciji. Lake je u sluaju promjene porezne stope promijeniti vrijednost konstante PDV, nego na sto mjesta u aplikaciji mijenjati iznos te stope. Konstante, slino varijablama i procedurama, dijelimo na Lokalne, Modulne i Javne (public). Lokalna konstanta se deklarira unutar Private Sub imeProcedure_Click() sa Const PDV = 23 ' deklarira konstantu PDV i dodjeljuje joj vrijednost 23

32 / 32 Nju moe koristiti samo procedura u kojoj je konstanta deklarirana. Modulnu proceduru (deklariranu u View > Code > General > Declarations) mogu koristiti sve procedure iz iste FRM datoteke. Javnu konstantu (deklariranu u View < Code > General > Declarations naredbom oblika: Public Const imeKonstante = vrijednost) moe koristiti bilo koja procedura bilo koje aplikacije.

Uzimanje informacija

Pod "uzimanjem informacija" podrazumijevamo ono to treba upisati kao narebu, odnosno redak procedure u cilju unosa informacije u tabele baze podataka s kojom je naa aplikacija povezana. Adresa informacije o nekom svojstvu koju Visual Basic moe dohvatiti u principu sadri imena Obrasca, Objekta i svojstva. Ako je objekt u aktivnom obrascu, ImeObrasca (FormName) se moe izostaviti. Sintaksa kojom se to ostvaruje upisana je uz "svojstvo objekta" u slijedeem pregledu. Tako su naznaene i sintakse za dohvaanje informacija iz ostalih moguih izvora. Visual Basic informacije prikuplja iz: korisnikog suelja (pri tome se informacije uzimaju takoer iz objekata) objekata o svojstava objekta FormName!ObjectName.Property="svojstvo" o tekstnih okvira txtImeelije.Text = "tekstualni sadraj" o radio gumba optImeKruia.Value = True ili False chkImeKvaice.Value = 0, 1 ili 2* o potvrdnih okvira (za kvaice) o izbornika pogona interni drvImePogona.Drive = "slov.ozn.pogona:" o izbornika mapa pretradirImeMape.Path = "navedi komplet. put" o izbornika datoteka iva filImeDatoteke.Filename ="put & ImeDatoteke" cboImeelije.Text = "kombo-opcija" o kombo elije o kliznih traka (prikazuju broj.vrijedn) NamjenaTrake = hsbImetrake.Value** lstImeliste.Text = "odabrana opcija" *** o listi matematskih i logikih izraza

Dakle opi oblik izraza koji uzima vrijednost iz nekog objekta je prefiksImeObjekta.Vrstapodatka = rezultat I ovdje su crveno tiskane slubene rijei Visual Basic-a, a plavo imena koja daje korisnik. Crno je oitani rezultat koji je samo kod svojstava, radio gumba i okviria s kvaicom slubena rije, a kod ostalih izvora je informacija koju je pri obradi unio ili odabrao korisnik. Pri koritenju sintaksi vodimo rauna da u imenima objekata ne koristimo hrvatske i posebne znakove, jer oni u nekim programima imaju programska znaenja pa mogu poremetiti obradu. Meutim u tekstualnim upisima pod navodnicima, sve je dozvoljeno. Rad s matematskim i logikim izrazima poznat je iz EXCEL-a ve i osnovnokolskim korisnicima, pa se nee nadugako obraivati, ali je pridodan kao posebno poglavlje na kraju uputa. Za matematske obrade i sloene logike zavrzlame ionako je bolje koristiti EXCEL, pa barem poetnici kojima je ovo prvenstveno namijenjeno, nee uvlaiti sloenu matematiku u Visual Basic.

Status okviria s kvaicom se iskazuje vrijednou: 0 prazan, 1 odabrano, 2 nije birano ("mrtvo") Poloaj klizne trake iskazuje se takoer brojanom vrijednou, koja se moe ispisati uz traku. Kod vertikalne klizne trake mjesto hsb stajat e vsb *** Sintaksa se odnosi samo na liste s jednim izborom. Za sluaj kada se dranjem tipke CTRL iz liste moe odabrati istovremeno vie opcija, postupak je sloeniji, pa to nije obraeno u ovoj saetoj uputi.

* **

33 / 33

OBRADA PODATAKA
je korak koji moe uslijediti iza pribavljanja podataka iz kontrola obrazaca, bilo da su utipkani ili uitani iz baze podataka na koju je naa aplikacija vezana. Obrada podataka (uz ostale, moemo rei "sporedne" postupke kao to su sortiranje, selektiranje i sl.) ukljuuje izvoenje triju vrsta operacija. Budui da vjerojatno ve koristite EXCEL, pojam matematskih, logikih i poredbenih operacija ne moe Vam biti nepoznat, pa vrste operatora navodimo krajnje saeto. Sve se operacije izvode uz pomo procedure ili dijela procedure u kojoj se: primjer: MPC = 1000 PDV = 230 MPC = VPC + PDV

definiraju vrijednosti varijabli postavlja izraz

U kontroli (tj. eliji) obrasca MPC prikazat e se rezultat 1230.

vrste operacija:
ARITMETIKE operacije: + * / \ Mod ^ & zbrajanje oduzimanje mnoenje dijeljenje dijeljenje s cjelobrojnim rezultatom ostatak od dijeljenja potenciranje spajanje nizove znakova (podrazumijevaju se operacije, s pozitivnim i negativnim brojevima) primjeri: MPC = VPC + PDV dohodak = primitak trokovi - doprinosi PDV = VPC * stopa_poreza prosjek = suma / cjelobrojni rezultat dijeljenja 11 / 3 = 3 dijelimo: 11/3 - rezultat je 3, a ostatak: 2 povrina = stranica_kvadrata ^ 2 punoIme = ime & " " & prezime

izmeu imena i prezimena dodaje se praznina LOGIKE And Or Xor Not operacije koristimo u procesima odluivanja. Nastavak neke procedure slijedi (ako): (i) ako je zadovoljen uvjet_1 And uvjet_2 (odnosno oba uvjeta) (ili) ako je zadovoljen uvjet_1 Or uvjet_2 (tj. jedan od uvjeta) (iskljuivo ili) vraa vrijednost False ako su obje vrijednosti True ili False (ne) ako izraz Marko = muko ima vrijednost True (istina), onda Not (Marko = muko) ima vrijednost False (la). usporeuju lijevu i desnu stranu izraza. Koriste se takoer pri odluivanju jednako ili identino manje manje ili jednako vee vee ili jednako razliito ili nejednako Primjer: (prva dva retka deklariraju varijable i vrijednosti) prihod_2008 = 200 000 prihod_2009 = 176 000 rast = prihod_2009 > prihod_2008 Temeljem zadnjeg retka, VB e kreirati varijablu "rast" i dodijeliti joj vrijednost False (rast = la).

POREDBENE = < <= > >= <>

Navedeni operatori koriste se za usporedbu numerikih, ali i znakovnih vrijednosti. Pri tome se kod znakovnih vrijednosti usporeuje broj znakova. Ne zaboravimo znakovne vrijednosti u izrazu stavljati meu navodnike VB potuje slijedei prioritet izvoenja operacija (od vieg prema niem): ^ - (kao promjena predznaka) * i / \ Mod +/- & = <> < > <= logiki operatori Ako elimo drugaije prioritete u obradi, to moramo osigurati uporabom zagrada.

34 / 34

MANIPULIRANJE ZNAKOVNIM VARIJABLAMA


I u ovom prikazu pamtimo da se navedene naredbe upisuju u procedure koja trebaju sadravati: Private Sub imeProcedure_Click() Dim imeVarijable As String imeVarijable = "XXXXXX" naredba End Sub ' ' ' ' ' uvodna naredba procedure (dogaaj ne mora biti Click()) deklarira se varijabla dotinog imena kao znakovna varijabli se dodjeljuje vrijednost (za string u navodnicima) ovdje dolaze naredbe iz nastavka zavretak procedure

Len (imeVarijable) LCase(imeVarijable) UCase(imaVarijable) Left(imeVarijable, x) Right(imaVarijable, x) InStr("xxxx": "imeVarijable") Mid(imaVarijable, x) = "yyyy"

vraa (tj. iskazuje) duljinu (broj znakova) varijable velika slova mijenja u mala mala slova mijenja u velika vraa lijevih x znakova varijable vraa desnih x znakova varijable vraa lokaciju (tj. broj znakova do) stringa xxxx u varijabli umee string yyyy na x-tom mjestu varijable umjesto postojeih znakova (zamjena dijela znakovne varijable) uklanja postojee pra znine ispred " uklanja postojee praznine iza varijable" "

LTrim(imeVarijable) RTrim(imeVarijable) Trim(imeVarijable)

"varijable

uklanja sve postojee razmake ispred i iza varijable pretvara znakovni oblik broja u numeriki

CDb1(imeVarijable) ili CSng(imeVarijable) CStr(broj) Asc("znak") Chr("nn")

pretvara broj u znakovni oblik (tj. u niz znakova, string) vraa ASCII kd znaka - npr. Asc("A") vraa 65 koristimo za uvoenje u procedure posebnih kontrolnih znakova (tipke ENTER, prijelaza u novi redak, ESC tipke). nn je pri tome ANSI kd predmetne tipke, odnosno znaka.

Kako vidimo, Mid ima sasvim drugaiju ulogu od operatora Mid u EXCEL-u, gdje se koristi za "vaenje" dijela stringa iz njegovog sredinjeg dijela. Takoer, primijetimo da Windowsi ne koriste ASCII kdnu tabelu nego ANSI kd znakova

LOGIKE ODLUKE
Logike odluke raunalu omoguuju da bude vie od kalkulatora ili pisae maine. Sposobnost aplikacija da odlue o nastavku procesa obrade zavisno o dotadanjem tijeku procesa, tj. o meurezultatu ili o intervenciji korisnika, zavaljujemo naredbama tipa ako onda u protivnom. I ovdje podsjeamo da odluke u nastavku ugraujemo u procedure s uobiajenim poetnim retkom, deklariranjem varijabli i zavrnim retkom. Iza deklariranja varijabli i definiranja njihovih vrijednosti negdje mogu biti ugraene sekvence slijedeih oblika logikog odluivanja:

35 / 35 IF THEN oblik odluke If izraz Then naredba IF THEN End If oblik odluke If uvjet Then instrukcija1 instrukcija2 End If IF THEN ELSE ' ' ' ' ako je istitnit navedeni izraz onda izvri navedenu instrukciju 1 izvri navedenu instrukciju 2 nema vie instrukcija temeljem ove odluke ' ako je istitnit navedeni izraz onda izvri naredbu

(ako onda u protivnom) ' ' ' ' ' ' ako je istitnit navedeni izraz onda izvri navedenu instrukciju 1, zatim izvri navedenu instrukciju 2 u protivnom izvri instrukciju 3 kraj If-Then sekvence

If uvjet1 Then instrukcija1 instrukcija2 Else instrukcija3 End If

U ovom sluaju instrukcija 3 se bezuvjetno izvrava ako prvi uvjet nije zadovoljen. Ako izvravanje te instrukcije elimo uvjetovati nekim drugim uvjetom, razliitim od prvog, koristimo: IF THEN ELSEIF oblik odluke If uvjet1 Then instrukcija1 instrukcija2 ElseIf uvjet2 Then instrukcija3 Else instrukcija4 End If ' ' ' ' ' ' ' ' ako je ispunjen uvjet 1 onda izvri instrukciju 1, zatim izvri instrukciju 2 ako nije ispunjen uvjet 1 ali je ispunjen uvjet 2 izvri instrukciju 3 ako ni jedan gornji uvjet nije ispunjen onda izvri instrukciju 4 kraj If-Then sekvence

Ovaj se oblik razlikuje od prethodnog po tome, to e se izvrenje instrukcije 3 obaviti samo ako je ispunjen uvjet 2. Navoenjem vie ElseIf uvjeta, moemo odabrati instrukcije ili subprocedure iz ireg popisa moguih instrukcija ili procedura, zavisno o ostvarenim uvjetima. Sekvenca odluivanja moe biti "ugnijeena" i unutar druge sekvence odluivanja u vie nivoa. U tom sluaju glavna sekvenca, ali i svaka pod-sekvenca mora zavravati sa End If. SELECT CASE odluke Select Case imeVarijable Case X Instrukcija1 Case Y Instrukcija2 Case is > Z Instrukcija3 End Select mogle bi se prevesti kao "odluka u sluaju" ' ' ' ' ' ' ' ' ispitaj vrijednost navedene varijable u sluaju da varijabla ima vrijednost X izvedi instrukciju (naredbu ili sub-proceduru) 1 u sluaju da je varijabla = Y izvedi instrukciju 2 u sluaju da je varijabla vea od Z izvedi instrukciju 3 kraj sekvence odluivanja

Primijeujemo da u sluaju poredbene verzije uz Case stoji is. Doputeno je kombinirati Case sa IF-THEN petljama u sklopu iste sekvence (ovdje je If-Then "ugnijeena" u Case-Select). Select Case imevarijable ' ispitaj vrijednost navedene varijable Case X ' Ako je varijabla = X nastavi, inae idi na End Select Instrukcija1 ' izvedi instrukciju (naredbu ili sub-proceduru) 1 If imeVarijable >0 Then ' ako je varijabla pozitivna nastavi, inae End If Instrukcija2 ' izvri instrukciju 2 End If ' kraj If Then odluivanja End Select ' kraj Case select sekvence

36 / 36

PETLJE
Petlje koristimo kada treba vie puta ponoviti neki niz naredbi ili (pod)proceduru. Ona u principu predstavlja niz od nekoliko uvjetovanih odluka, koji se nijednom, jednom ili vie puta ponavlja, zavisno o postavljenim uvjetima i vrste ili varijante petlje. VB prihvaa pet varijanti petlji, navedenih u nastavku, kao i njihove kombinacije unutar iste programske sekvence. Da se raunalo ne bi blokiralo neprekidnim ponavljanjem iste programske sekvence, petlja mora imati siguran nain za prekidanje ponavljanja. To se ostvaruje na dva razliita naina: unaprijed se odreuje koliko puta e se slijed naredbi u petlji ponoviti (FORNEXT petlje) osigurati dobar "izlazni kriterij" za prekid ponavljanja sekvence(DOWHILE i DO-UNTIL petlje). su najjednostavnije petlje. Unaprijed definiraju broj i vrijednost "koraka" suglasno definiranom uvjetu za prekid ponavljanja. Koriste se kad je poznat broj izvoenja nekog slijeda instrukcija ili kad elimo ograniiti broj izvoenja kakve ponavljajue procedure. Opi oblik takve petlje je:

FOR NEXT petlje (Od Slijedee)

For Broja = poetna_vrijednost To zavrna_vrijednost Step vrijednost_koraka Instrukcija_1 ..... Instrukcija_n Next Broja U gornjem prikazu crvene su slubene rijei VB, a plavo proizvoljni podaci koje daje korisnik Slijedei primjer malo zornije objanjava navedeni oblik FOR-NEXT petlje: For Counter = 2 To 12 Step 2 ' postavi vrijednost brojaa na 2 (Counter = 2) i ' ponavljaj instrukcije od te vrijednosti brojaa do ' vrijednosti 12, s tim to iza svakog izvrenja ' slijeda instrukcija vrijednost brojaa raste za 2 ' ' izvri instrukciju 1, zatim ' izvri instrukciju 2 ' ako broja (Counter) jo nije 12, ponovi slijedei ' krug instrukcija

Insrtukcija1 Instrukcija2 Next Counter

U ovom primjeru, petlja se izvriti 5 puta, iza ega broja poprima vrjednost 12, to je znak za prekid ponavljanja. Broj koraka je (12 2)/2 = 5. Negativnom vrijednou koraka (Step) postiemo brojanje unazad (smanjenje vrijednosti Counter u svakom koraku). U jednostavnom sluaju kada neku instrukciju elimo izvesti 7 puta, pa petlja poprima oblik: For X = 1 To 7 ' Kreiraj varijablu X i pridijeli joj vrijednost 1. i ' ponavljaj slijed instrukcija sve dok je vrijednost X ' 1, 7 ili izmeu toga. ' Izvedi navedene instrukcije ' Varijabli X dodaj 1 i nastavi slijedei krug sve dok ' X ne poprimi vrijednost razliitu od 1 do 7.

Instrukcije Next X

PAZI ! Ne stavljaj naredbu za definiranje vrijednosti brojaa unutar For-Next, jer to uzrokuje nastanak beskonane petlje, tj. blokiranje raunala ! Ako naime vrijednost brojaa definiramo unutar petlje, broja e u svakom koraku poprimiti tu vrijednost i nikada nee dosei vie od te vrijednosti uveane za 1 (ili vrijednost koraka ako je on zadan).Takoer treba biti oprezan s decimalnim Stepbrojevima, ili takvima kod kojih broj koraka nije cjelobrojan (ako je ta vrijed-nost proizala iz prethodne obrade podataka, moda treba uzeti njenu cjelobrojnu vrijednost). Navedena sekvenca predstavlja i najjednostavniji broja, ako se brojanje smije ograniiti na neku zadanu vrijednost.

37 / 37

DO-UNTIL petlje izvravaju petlju sve dok vrijednost datog uvjeta nije istinita (tj. dok je False). ("radi dok uvjet ne postane istinit")

Uvjet = False Do Until Uvjet = True Instrukcije Loop

' definira uvjet i postavlja mu vrijednost na False ' ako je vrijednost True prekini petlju, inae nastavi 'Izvedi ove instrukcije ' ponovi slijedei krug petlje

Uvjet treba biti neki izraz iju istinitost je mogue provjeriti. Prvom linijom osiguran je poetak izvoenja petlje. Naime ako bi uvjet bio istinit, petlja se ne bi izvela ni prvi puta. Druga linija (tj. prva linija petlje) ispituje istinitost uvjeta, pa se prvi krug realizira samo ako uvjet nije istitnit. Takvu petlju koristimo ako ju je potrebno izvriti nula ili vie puta, zavisno od istinitosti uvjeta

DO-LOOP UNTIL petlja

takoer prekida ponavljanje petlje kad uvjet postane istinit (True). Za razliku od prethodne vrste petlji, ovdje se slijed instrukcija bezuvjetno izvrava barem prvi puta, a provjera istinitosti uvjeta obavlja se tek nakon izvrenja instrukcija u posljednjoj liniji petlje. ' ' ' ' ' izvri slijedee instrukcije ovdje niemo jednu ili vie instrukcija ili procedura ako je uvjet istinit, nastavi slijedeu naredbu (tj. prekini petlju), a u protivnom ponovi sve od Do do Loop.

Do Instrukcije Loop Until Uvjet

Evo primjera brojanja do 5 uz pomo Do-Loop Until petlje (prvom linijom je postavljena poetna vrijednost brojaa, a samu petlju ine masno tiskane linije): Counter = 0 Do Counter = Counter + 1 Loop Until Counter > 5

' ' ' '

izvri slijedeu naredbu poveaj vrijednost brojaa za 1 ako je uvjet istinit (tj. broja premai 5) prekini ponavljanje i prijei na slijedeu naredbu procedure

P A M T I M O, da do sada objanjene petlje ponavljaju slijed naredbi dok je vrijednost uvjeta FALSE. Za razliku od njih, slijedee vrste petlji ba obrnuto, prestaju ponavljati postupak ako uvjet postane laan, tj. "rade" dok je vrijednost uvjeta TRUE, odnosno dok je izraz u uvjetu istinit. DO-WHILE petlje ("radi, jer je:") Uvjet = True Do While Uvjet Instrukcija_1 .... Instrukcija_n If Uvjet2 Then Uvjet = False Loop ponavljaju petlju dok je zadani uvjet istinit (True). ' ' ' ' ' ' ' definira se uvjet i njegova vrijednost na TRUE ponavljaj slijed u nastavku dok je uvjet istinit izvri prvu instrukciju, a zatim . . . . eventualne daljnje naredbe izvri posljednju naredbu petlje ako je zadovoljen uvjet 2 glavni uvjet postaje False ponovi sve od Do While dalje

Prvom linijom osigurana je istinitost uvjeta, jer u protivnom, petlja se ne bi izvrila ni jednom. Samu petlju ine masno tiskane linije. Predzadnji redak u ovom sluaju osigurava izlazak iz petlje. Vano je dobro postaviti uvjet 2, koji koristimo kao izlazni kriterij, kako se ni u jednoj konstelaciji podataka ne bi dogodilo beskonano ponavljanje (tzv. "mrtva petlja") koja bi mogla blokirati raunalo. Ako se raunalo kojim sluajem ipak blokira, prije nasilnog gaenja pokuajmo prekinuti neposluni program postupkom CTRL ALT DEL (u panelu koji e se prikazati klikni End Task).

38 / 38

I s ovom vrstom petlje lako emo realizirati broja: Nr = 0 Do While Nr < 10 Nr = Nr + 1 Loop

Slijedea petlja broji unatrag, od 10 prema 0: Nr = 10 Do While Nr >0 Nr = Nr - 1 Loop Posljednji hod petlje odigrat e se dok je vrijednost brojaa 1 a petlja predzadnjom linijom mijenja vrijednost brojaa na 0, pa prestaje daljnje ponavljanjejer je uvjet postao laan. DOLOOP WHILE petlja prekida ponavljanje kad zadani uvjet postane laan. Uvjet mora biti izraz ili varijabla kojoj je mogue provjeriti istitnitost. Koristi se kad elimo da se slijed instrukcija u petlji bezuvjetno izvri barem jednom, a iza toga ponavlja zavisno o istinitosti zadanog uvjeta. ' izvri instrukcije u nastavku ' ovdje niemo instrukcije ' ponavljaj gornje instrukcije dok je uvjet istitnit

Do Instrukcije Loop While Uvjet

I u ovom se sluaju (slino DO-LOOP UNTIL petlji) prvi puta slijed instrukcija u petlji prvi puta izvodi bezuvjetno, a istinitost uvjeta ispituje se tek nakon izvoenja instrukcija u posljednjoj liniji petlje. U konkretnim sluajevima, u predzadnjoj liniji moe se ugraditi neki izlazni kriterij (tipa: If Uvjet2 = true Then Uvjet = False), koji e prekinuti petlju, ako to po prirodi stvari ne osigura glavni uvjet. Evo i brojaa do 100 ostvarenog uz pomo ove vrste petlje: Br = 0 Do Br = Br + 1 Loop While Br < 100

JO O IZLASKU IZ PETLJE Izlaz iz petlje mogu osigurati naredbe oblika: If Uvjet Then Exit Do If Uvjet Then Exit For ' kod DoLoop ili DoLoop While petlji ili ' kod For-Next petlji

Umeemo je kao predzadnju liniju u sekvencu petlje.

39 / 39

FUNKCIJE
u ovom opsegu spominjemo samo sasvim saeto. One se mogu shvatiti kao jednostavne procedure opeg ili javnog dosega (zavisno da li su pohranjene u datoteci FRM ili BAS vidi doseg varijabli i procedura), koje vraaju samo jednu vrijednost. Za razliku od konstanti, ta je vrijednost zavisna o nekom argumentu (kao to npr. sinus nekog kuta zavisi o kutu). Argument piemo u zagradu. Za razliku od procedura, imenu funkcije treba uvijek dodijeliti vrijednost, u protivnom funkcija ne daje rezultat. Opi oblik izraza koji koristi funkciju je : ImeVarijable = imeFunkcije(Popis Argumenata) As vrstaVarijable Razlikuje se nekoliko vrsta funkcija:

Funkcije za promjenu tipa varijabli.


Cint(38,6) pretvara varijablu u cjelobrojnu vrijednost ( u ovom sluaju rezultat je 39). Bulean varijabla FALSE rezultira s vrijednou 0 a TRUE sa 1. Clng(izraz) pretvara vrijednost izraza u varijablu tipa long Cbyte(izraz) pretvara izraz u rezultat tipa bajt (byte), tj. u vrijednost izmeu 0 i 255 Cdbl(izraz) pretvara izraz ili vrijednost u varijablu tipa double (dvostruke preciznosti) Csng(izraz) pretvara izraz u varijablu tipa single Cbool(izraz) daje TRUE ako je izraz razliit o d 0 ili FALSE ako je jednak nuli. Ccur(izraz) pretvara izraz u tip Currency (vrijednost u nekoj valuti) Cdate(izraz) numeriku ili tekstualnu datumsku vrijednost u aktualni oblik datuma Cstr(izraz) izraz u zagradi pretvara u tekstualni (string) oblik

Jo dvije funkcije iste namjene takoer spadaju u ovu grupaciju. To su: VarType(varijabla) i TypeName(varijabla) Obje otkrivaju tip podatka varijable u zagradi, odnosno vraaju vrijednosti iz slijedee tabele, zavisno o tome kakav podatak sadri varijabla u zagradi. Vrijednosti VarType i TypeName funkcija za razliite vrste varijabli. vrsta podatka vrijedn.funkcije VarType Vrijedn. funkcije TypeName Empty Null Integer Long Single Double Currency Date String tip objekta Error Boolean Byte Unknowv Object Nothing

prazna varijabla 0 neispravan podatak 1 Integer 2 Long 3 Sigle 4 Double 5 Currency 6 Date 7 String 8 Object 9 greka 10 Boolean 11 Variant 12 Dana Access Object 13 Decimal 14 Byte 17 Array 8192 / 8204 nepoznato Generic bject varijabla nije pridijeljena -

Mogue je i ispitivanje vrste varijable izrazima IsNull(x), IsDate(x), IsNumeric(x) i sl, koji vraaju vrijednost TRUE ako je odgovor potvrdan ili FALSE u suprotnom sluaju.

40 / 40

Matematske funkcije
Abs(broj) daje apsolutnu vrijednost Atn(broj) daje arcus tangens (kut iji tangens je broj u zagradi) Cos(broj) kosinus kuta u zagradi (izraen u radijanima) broj Exp(broj) potenciju broja e: e (eksponent je broj u zagradi) Fix(broj) ili Int(broj) cjelobrojni dio broja u zagradi (decimale se odbacuju) Hex (broj) prevodi broj u heksadecimalni oblik Log(broj) prirodni logaritam (po bazi e) broja u zagradi Oct(broj) prevodi broj u zagradi u oktalni oblik Rnd generira sluajni broj izmeu 0 i 1 (prethodno treba koristiti Randomize) Round(broj) zaokruuje broj na cjelobrojnu vrijednost Round(broj,dec) zaokruuje broj na navedeni (dec) broj decimala Sgn(broj) daje predznak broja u zagradi Sin(broj) sinus kuta u zagradi (izraen u radijanima) Sqr(broj) drugi korijen broja u zagradi Tan(broj) tangens kuta u agradi (izraenog u radijanima) Ako kao argument koristimo znakovnu umjesto numerike vrijednost, funkcija vraa greku.

Datumske funkcije
Date vraa tekui (sistemski) datum Time vraa trenutno (tj. sistemsko) vrijeme Now vraa trenutni datum i vrijeme DateAdd(interval,broj, datum) pribraja naznaen broj intervala naznaenom datumu. Pri tome interval moe biti: "yyy" godina, "q" kvartal, "m" mjesec, "n" minuta, "s" sekunda "d" dan, "ww" tjedan, "h" sat,

Year(Date) vraa godinu datuma u zagradi Hour(Time) vraa sat vremena u zagradi Month(Date) vraa mjesec datuma u zagradi Minute(Time) vraa minute naved. vrem Day(Date) vraa dan datuma u zagradi Second(Time) vraa sekunde vremena Wekday(Date) vraa dan u tjedu u obliku vbSunday, vbMonday . . itd.

Teksualne funkcije
mijenjaju tekstualne varijable ili izvlae dijelove zadanog teksta: UCase(tekst) zadani tekst ispisje velikim slovima LCase(tekst) zadani tekst ispisuje malim slovima LTrim(tekst) uklanja praznine ispred teksta RTrim(tekst) uklanja praznine iza teksta Trim(tekst) uklanja praznine ispred i iza teksta Space(x) umee x praznih mjesta u tekst, osim u HTML dokumentima, u kojima se vie od jedne praznine prihvaa samo unutar tagova <PRE> . . . </PRE> String(broj,znak) Len(tekst) Right(tekst,x) Left(tekst,x) Mid(tekst,x,y) upisuje navedeni znak navedeni broj puta (string(3,X) vraa XXX) vraa duljinu teksta u zagradi (izraeno u broju znakova) vraa desnih x znakova teksta vraa lijevih x znakova teksta vraa y znakova teksta poevi od x-tog znaka (npr: Mid("preokupacija",4,9) vraa tekst okupacija)

Koriste se i neke druge funkcije (primjerice funkcije za pretvorbu colnih u metrike mjere i sl.) Mnoge se mogu nai u Visual Basic-ovom HELP-sistemu, tj. u MSDN Library-u opcijom Search (trai) Functions pa odaberite Character Functions za znakovne funkcije ili Environment za druge vrste funkcija. Ako funkcija ukljuuje argumente, pri pozivanju funkcije mogu nastati greke ako je broj argumenata u pozivu funkcije razliit od broja argumenata navedenih pri deklariranju funkcije, ili ako su tip argumenta u pozivu funkcije i u deklariranju funkcije razliiti.

41 / 41

KLASE
Takoer samo saeo: U objektnom programiranju glavni program nalae objektu (npr. eliji za tekstualni podatak) da pristupi podacima, umjesto da im sam neposredno pristupa. Time je dobivena mogunost da se nain pristupa podacima po potrebi promijeni promjenom objekta, umjesto promjenom glavnog programa na mnogo mjesta od kojih neka moemo previdjeti i time uzrokovati programsku greku. Strukturni dio objekta (vrsta podataka koje e objekt prihvaati, odnosno deklaracija varijabli, te svojstva objekta) moe se definirati i u otsustvu podataka. Tako definirane "ljuture" za podatke zovemo modul klase (Class Module) koje karakterizira ekstenzija .CLS Modul klase sadri: deklaracije varijabli prihvatljivih u buduem objektu Deklaracije svojstava objekta naredbe za manipulaciju varijablama i svojstvima u obliku procedura koje zovemo metode

(samo Bog zna zato su odabrani tako aavi nazivi). Moe se shvatiti da aplikacije "umeu" ciljane podatke u varijablu definiranu unutar modula klase. I ovdje se ponavlja pria sa privatnim i javnim varijablama, pa samo jedna klasa moe koristiti varijablu koja se deklarira oblikom: Private imeVarijable As Integer ' naravno mjesto Imteger moe stajati drugi tip

dok procedure bilo kog objekta mogu staviti podatke u javnu varijablu deklariranu na nain: Public imeVarijable As String Kad je rije o deklariranju svojstava, razlikujemo dva sluaja: Property Let svojstvo(varijabla As Tip) ' doputa proceduri da definira vrijednost svojstva i: Property Get svojstvo() As Tip ' doputa proceduri da uzme vrijednost iz svojstva

U oba sluaja u drugoj liniji dolazi izraz koji vrijednost svojstva izjednaava s varijablom definiranom u modulu klase, a sekvenca zavrava sa End Property. Slijedi kd uobiajenog oblika javne procedure, kojim definiramo metodu Public Sub metoda () ..... naredbe ..... End Sub ili Public Function imeFunkcije () As Tip ' za funkciju

ili

End Function

Metoda se poput svake druge procedure ili subrutine poziva upisom imena metode u programsku liniju (uz navoenje objekta koga metoda obrauje) m_Objekt.metoda Kreiranje mudula klase moe se povjeriti ugraenom arobnjaku VB Class Builder-u. On uz kreiranje i imenovanje modula klase pomae i definiranju svojstava i metode. Kad je kreiran modul klase (npr. imeKlase), moe se kreirati na njemu zasnovan novi objekt, a to se zove kreiranje instance (jo jedan blesavi naziv). Opi oblik naredbe za takvo kreiranje je: Set imeObjekta = New imeKlase ' Kreiraj novi objekt imeObjekta zasnovan na imeKlase

Tako napravljen objekt moe: stavljati vrijednost u svojstvo objekta, uzeti vrijednost iz svojstva ili koristiti metodu objekta, odnosno proceduru njegovog modula klase koju zovemo "metoda". Pri spremanju aplikacije, VB e sam kreirati datoteku s nastavkom .CLS koja uva ove kreacije.

42 / 42

KREIRANJE IZVJETAJA
Sa izlaskom Visual Basic-a 6 omogueno je koritenje Microsoft-ovog Data Reporter-a za kreiranje izvjetaja, koji su esto (iako ne uvijek) krajnji cilj uporabe gotovih aplikacija. Kreiranje izvjetaja poinje kreiranjem Data Enviroment- a ("podatkovno okruenje"), kojim se definiraju veze do ciljanih podataka. Data Environment Designer poznat je i pod kraticom DED. Slijedi povezivanje budueg izvjetaja na Data-Environment s dodavanjem objekata na izvjetaj, to je identino kreiranju izvjetaja, te pozivanje izvjetaja iz aplikacije. Prikazat emo saeto itav postupak. KREIRANJE PODATKOVNOG OKRUENJA (DATA ENVIRONMENT) S USPOSTAVOM VEZA Visual Basic pri poinjanju novog projekta uz prazan poetni obrazac nudi jo dvije programske sastavnice: Data Environment i Data Report. koje koristimo za dizajniranje izvjetaja. Pretpostavimo da izvjetaj temeljimo na bazi podataka koja se zove imeBaze, i to na tabeli imeTabele, na koju se izvjetaj mora povezati postupkom koji poinje pokretanjem Visual Basic-a i slijedom naredbi iz glavnog izbornika : Project > Add Data Environment (Ako ta sastavnica nije prikazana pod opcijom Project izbornika VB suelja, klikni Project > Components > Designers > i stavi kvaice na Data Environment i Data Report ). Otvara se prozor Project1 Data Environment1, koji se ubacuje i u emu projekta na desnoj margini VB suelja. Slijedi podui postupak, pa pripazite da sve izvedete kako je prikazano: Klik na DataEnvironment1 u prozoru DataEnvironment unesi imeBaze podataka u svojstvo Name Data Environment1 se mijenja u imeBaze klik na Connection1 u prozoru DataEnvironment unesi imeTabele u svojstvo Name u Propertisu Connection1 se mijenja u imeTabele desni klik na ovu vezu (bivi Connection1) i Propertis u otvorenoj izbornoj listi otvara prozor "Data Link Propertis" (svojstva veze s podacima) dugme Next > connection > Use connection String > dugme Build > Machine Data Source > dugme New > radio gumb SYSTEM Data Source > dugme Next > u listi biraj Microsoft Access Driver > dugme Next > dugme Finish.

Uitava se ODBC definition djalog (lijevo). dugme Select otvara interni pretraiva (Find dijalog) pa nai ciljani imeBaze.MDB. U Database Name unesi imeBaze.MDB i klikni OK, ime pamti unesenu definiciju. Preostaje spremanje aplikacije, pri emu se trai unos imena obrasca (s prefiksom frm) i designer datoteke koju emo nazvati deImeBaze.DSR, DataReport dizajnera s imenom drImeBaze.DSR i projekta XXX.VBP.

KREIRANJE KOMANDNOG OBJEKTA slino navigacijskoj kontroli kod obrazaca, kreiranje "komandnog objekta" neophodno je za uspostavu veze sa poljima izvora podataka, pa obavimo to

43 / 43

desni klik na Commands u Data Environment dizajneru > Add Command otvara dijalog. u Command Name unesi comImeTabele > otvori combo-eliju Connection biraj cnnImeTabele > YES (eli promjenu). U Database Object koji treba biti oznaen, biraj Table. U kombo-eliji "Object Name" vidljive su tabele ciljane baze, tj. veza je ostvarena. Biraj tabelu imeTabele i klikni OK. Uz novu komandu comImeTabele u Data Environment dizajneru stoji (+). Klik na njega prikazuje polja odabrane tabele.

IZRADA JEDNOSTAVNOG IZVJETAJA


Ako je u potpunosti zavreno prethodno opisano definiranje Data Environment i Command konekcije, tj. budui izvjetaj je vezan na ciljanu bazu podataka i njezine tabele, Izvjetaj e iz nje izvlaiti podatke koji e se u njega upisivati. Treba ga jo samo kreirati.

Dvoklik na DataReport1

u emi projekta otvara "prazan" izvjetaj

u Name (u propertisu) upii drImeTabele u DataSource unesi deImeBaze u DataMember ubesi comImeTabele Zadnje dvije karakteristike veu izvjetaj na DataEnvironment. Slijedi unoenje polja iz DataEnvironment- prozora u DataReport, slino kreiranju kontrola na obrascima. U tom cilju treba otvoriti DataEnvironment : Dvoklik na DataEnvironment u emi projekta otvara DataEnvironment prozor. prevuci ciljana polja iz DataEnvironment u izvjetaj, te ih pozicioniraj Pretpostavljeno automatsko dodavanje labela prevuenim poljima moe se iskljuiti skidanjem kvaice u Options > Field Mappings > Drag & Drop Field Captions.

Spremi projekt

44 / 44 Raspoloive opcije Visual Basic-a 6 i novijih verzija (to u ovom opsegu neemo opisivati), omoguuju dodavanje zaglavlja (Header) i podnoja (Futer), dodavanje zbirnih funkcija u izvjetaj i dr, te uredno i funkcionalno rasporeivanje elemenata na izvjetaju, koji trebaju biti prilagoeni namjeni, to pregledniji i lieni nepotrebnih podataka. Takoer u ovom opsegu nije mogue opisati izradu sloenijih izvjetaja, kreiranje izvjetaja SQL naredbama, kreiranje izvjetaja iz povezanih tabela i dr, no sad te mogunosti moete lake prouiti u opsenijoj literaturi. Na kraju, opcijom File > Print izbornika moete ispisati i sam program (obrazac, kd ili svojstva svih objekata).

VISDATA program za pristup podacima


Verzije Visual Basica 6 i novije, ukljuuju program pod imenom Visdata sample za: kreiranje novih baza podataka odravanje baze podataka, tj. kreiranje i prepravke tabela unutar baze, unos jednostavnih podataka ili brisanje podataka u postojeim tabelama kopiranje zapisa iz jedne tabele u drugu ili tabela iz jedne baze podataka u drugu povezivanje na postojee MS ACCESS, dBAZE, FOXPRO i PARADOX baze podataka pristup podacima iz EXCEL radnih listova ili tekstualnih datoteka te ODBC-baza. reguliranje korisniki prava, odnosno prava pristupa podacima u viekorisnikim sustavima. izradu backup (tj. sigurnosne) kopije postojeih baza podataka

Upoznavanje Visdata programa ujedno je priprema i za osnovno koritenje SQL-jezika, koji e Vam, kako e se pokazati u nastavku, omoguiti uobiajen nain dohvatanja podataka u Visual Basic-u. Idemo odmah "u sridu" !: otvori VB > izbornik Add-Ins > Visual Data Manager ' otvara se prazan Visdata prozor

File > Open Database > Microsoft Access > biraj bazu ' prikazuje se Database i SQL okvir

prikaz karakteristika i objekata trenutno otvorene baze podataka omoguuje otvaranje i izmjenu tabela i njihovih karakteristika, te polja i njihovih karakteristika

PROZOR SQL NAREDBI za upisivanje i izvravanje SQL naredbi za trenutno otvorenu bazu

Najea je Microsoft ACCESS baza podataka, koja se naziva i Microsoft Jet format baze podataka. Iz Vistada izbornika biramo: File > Open > Database > Microsoft Access ' otvara dijaloki okvir ACCESS baze

45 / 45 ' tabele i njihova polja postaju dostupna za pregled i izmjene Desni klik na ime ciljane tabele otvara listu s opcijama. Budui da je uloga pojedinih opcija manjevie jasna sama po sebi, o svakoj samo nekoliko rijei: biraj ciljanu bazu podataka Design Rename i Delete Copy Structure prikazat e polja te tabele. Klik na ciljano polje omoguuje izmjenu sadraja i karakteristika tog polja. preimenovat e polje. brie oznaeno polje omoguuje kopiranje rasporeda i karakteristika polja sa ili bez samih podataka u drugu bazu podataka. osvjeava popis sadraja uitane baze podataka. otvara dijalog za kreiranje novih tabela ili indeksa, a omoguuje kreiranje QSL naredbi. O oba ta postupka neto kasnije.

Refresh list New Table New Query

SQL PROZOR
Klik u prazninu SQL prozora aktivira ga i unosi kursor u prvi red prozora, pa se naredbe mogu unositi. Upisane SQL naredbe koje ine tzv. SQL-upit (SQL-QUERY), moemo zapamtiti dugmetom Save, a VB e traiti upis imena upita koje treba imati prefiks qry. U pravilu na pitanje V.Basica da li je rije o "Passthrough" upitu odgovaramo sa NO. Default objekt je "pretpostavljeni" tip objekta. Bira se putem ikona na vrhu Visdata prozora. U pravilu emo kao pretpostavljeni tip odabrati Dynaset, budui da omoguuje auriranje podataka iz jedne ili vie tabela. Za razliku od toga, Table tip "vidi" samo jednu tabelu, a Snapshot ne doputa izmjene (tj. to je Read-only tip prikaza izvornika). srednja grupa ikona bira pretpostavljeni tip novog obrasca. DBGrid Control opcija uitava sva polja ciljanog objekta u obliku tabele i esto predstavlja najbolji izbor. Ostale dvije opcije uitavaju jedan po jedan zapis iz izvorne tabele, sa ili bez navigacijske kontrole (Data Control polja).

Default Form

Desni klik na ime tabele (npr. "Projekti") prikazat e podatke iz izvorne tabele kao na slici. Ako smo birali Dynaset tip objekta, pojedini podaci u prikazu mogu se po potrebi i izmijeniti.

tabelarni prikaz obrasca dobivamo izborom opcije Use DBGrid Control on New Form

46 / 46 Ako umjesto DBGrid Control odaberemo oblik obrasca Use Data Control on New Form, prikazuje se klasini oblik obrasca prema slijedeoj slici (obrazac aktiviramo opet desnim klikom na ciljane ime tabele:

Neznatno se razlikuje oblik obrasca u sluaju izbora Don't Use Data Control on New Form. Prilikom izmjena neke baze podataka, polazi se od postojeeg stanja. Po unoenju izmjena, rezultat nam se moe dopasti, ali moe ispasti i neeljen rezultat. U tom sluaju moramo imati mogunost za vraanje polaznog stanja. Zbog toga Visdata koristi princip privremene promjene, koja se nakon pregleda moe prihvatiti ili ponititi. U tom cilju promjenu ili tzv. transakciju poinjemo klikom na ikonu Begin Transaction Commit Current Transaction Rollback Current Transaction izvrit e se privremena izmjena baze podataka izvrena privremena transakcija se prihvaa, tj. postaje trajna baza podataka vraa se u ranije stanje (izmjena se ne prihvaa)

Ne mogu se ponititi transakcije koje su postale trajne (tj. nakon Commit Current Transaction). Visdata uitava jednu po jednu bazu podataka, pa ako su izvorni podaci sadrani u vie od jedne baze, objekte baze koja nije uitana morat emo prikljuiti primjenom opcije Utility > Attachments. Prethodno je pokazan nain uitavanja MS ACCESS baza podataka (s ekstenzijom .MDB). Verzija ACCESS-a mora biti kompatibilna sa Vaom verzijom Visual Basic-a (VB 6 prihvaa ACCESS 7.0) Od ostalih formata spomenimo jo EXCEL radne listove, budui da emo vjerojatno i njih koristiti. Visdata nakon naloga Open > Database > EXCEL i pozicioniranja na ciljanu .XLS datoteku u prirunom pretraivau diska sve listove te datoteke prikazuje u Database prozoru kao tabele. Visdata EXCEL-ovu datoteku otvara ekskluzivno, tj. ista ne moe istovremeno biti otvorena nigdje na mrei, ali ni na istom raunalu uz pomo nekog drugog programa. Visdata moe otvoriti i tekstualne datoteke (s poljima odvojenima zarezom), ali samo za itanje. Konano, tu je i mogunost otvaranja ODBC izvora podataka (primjerice koji sadre slike).

47 / 47

New je opcija koja omoguuje kreiranje potpuno nove baze podataka uz pono Visdata programa.
Iako je mogue kreirati i baze drugaijeg formata, preferira se kreiranje Microsoft ACCESS baza, ili to je isto, Microsoft Jet format baze podataka. Ako namjeravate aplikaciju davati nekome sa starijim softverom, koristite ACCESS 7.0, koga bi trebali moi koristiti ili barem konvertirati praktiki i svi korisnici OFFICE-a. Ako je baza izraena ili konvertirana u neku noviju verziju ACCESSa, nee vie biti kompatibilna sa Visual Basic-om 6, pa se mora unazad konvertirati u ACCESS 7.0. Morate dakako sauvati i izvornu verziju zbog mogueg auriranja. Iso vai za kompatibilnost novijih verzija. Visual Basic 6 i ACCESS 7.0 navodimo, jer jo mnogi korisnici imaju instaliran OFFICE 2000, pa ak i OFFICE 97 pa ne mogu koristiti novije verzije Visual Basic-a. S gledita razmjenjivosti podataka bolje je dakle koristiti starije verzije, koje ipak osiguravaju najmanje one mogunosti koje su prisutne u Visual Basic-u 6 (primjerice koritenje Data Environmenta i Data Report-a za kreiranje izvjetaja, suradnja sa SQLom i dr.). KREIRANJE NOVE TABELE POMOU VISDATA PROGRAMA - Postupak: otvori VB (New > Standard.exe > Open) Add-ins > Visual Data Manager > File > New > Microsoft Access >version 7.0 MDB upii ime datoteke npr. ADRESAR.MDB > Save ' nova baza podatka je upisana na disk otvori novu bazu (Add-ins > Visual Data Manager > File > Open > ADRESAR.MDB desni klik na prazan prostor Database prozora > New Table > u Table Name unesi: osobe sa Add Field ubaci polja (upii naziv i karakteristike svih polja). Iza unosa OK pamti polje unesi polja: ID_osobe, Prezime_i_ime, telefon, mobitel, e_mail, prebivaliste, ulica_i_kbr, i primjedba. ID_osobe e biti primarni klju, odnopsno identifikator tabele osobe, no prvo ga unosimo kao obino polje. Za svako tekstualno polje korigiraj duinu u broju znakova. klik na Build Table pamti uneseno (prozor se ne smije zatvoriti (Close) prije te radnje) desni klik na ime tabele i Design otvara dijalog za unos indeksa. Ujedno definirajmo polje ID_osobe kao primarni klju. Ako to ispravno izvedemo, polje e se upisati u okviri Indeks List. Napomena: Nije mogue istovremeno kreirati polja i primarni klju, odnosno indekse, ve prije definiranja indeksa tabela ve mora postojati. zatvori prozor i spremi projekt.

Nakon unosa novog polja, ispravak svojstava polja nije mogu, ali je mogue brisati polje i ponovo ga kreirati. Strukturu tabele moemo otisnuti na papir, odnosno poslati na default printer (samo) iz Design moda dugmetom Print Structure. Unos podataka koritenjem obrasca Da bismo u novu tabelu mogli unositi podatke, mora biti kreiran obrazac za tu tabelu, i taj obrazac treba biti definiran kao Startup Object u Project > imeProjekta Propertis-u. Na opisan nain kreiran primarni klju nee se automatski unositi u nove zapise. Postupak za punjenje tabele je slijedei: klik na dugme Dodaj (ADD) novi zapis I prvi zapis poinjemo klikom na dugme Dodaj (Add) novi zapis, u protivnom se unos blokira uz pojavu greke "No current record". u protivnom VB pokazuje greku upisuje zapis, tj. podatke iz obrasca u tabelu

unesi primarni klju unesi vrijednosti ostalih polja klik na dugme Prihvati (Update) ponovi postupak za svaki novi zapis

Umjesto klika na Update, nove upise u obrazac moemo unijeti u tabelu i izlaskom iz aktivnog zapisa uz pomo navigacijske kontrole, ali povratkom na prethodni zapis, budui da slijedei zapis jo ne postoji. Za razliku od toga, navigacijskom kontrolom moemo se kretati u bilo kom smjeru prilikom ispravljanja postojeih zapisa, osim iz posljednjeg zapisa, iz kojih moemo izai takoer samo u smjeru prethodnih zapisa.

48 / 48 Ako elimo da se primarni klju u novi zapis upisuje automatski, moemo ga definirati u ACCESS-u, ili tabelu trebamo kreirati uz pomo SQL naredbe CREATE TABLE s primjenom PRIMARY KEY CONSTRAINT klauzule na nain opisan pod CONSTRAINT klauzule.

Import / Export omoguuje uvoz ili izvoz baze podataka u/iz trenutno otvorene baze. Pri tome
u dijalokom okviru za uvoz / izvoz treba definirati izvorini ili odredini format i naziv datoteke. Compact je opcija slina repariranju u ACCESSu i koristi se za uklanjanje praznina nastalih brisanjem bivih zapisa iz baze podataka. Preporua se compaktiranje u datoteku novog imena, jer je u protivnom u sluaju problema sa zbijanjem mogu gubitak dijela ili svih podataka iz baze. Pa ako zbijanje valjano uspije, zbijena baza se moe naknadno preimenovati. Raunajte da e se baza u ACCESSu 7.0 zbiti u format Microsoft Jet 3.0, pa je i to razlog vie da sauvano izvornu verziju. Repair je opcija za "popravak" eventualno oteene baze podataka (zbog prekida napajanja, ruenja sistema, greke na povrini diska i sl.), ali u to se ne treba previe pouzdati. Obavezno radite sigurnosne kopije vae baze podataka, jer u sluaju njenog oteenja samo Vas to sigurno spaava od gubitka podataka. Query Builder slui za kreiranje, testiranje i pamenje tzv. upit-a, a to su ustvari izvodi iz tabela kojima Visdata pristupa, prilagoeni za neku konkretnu svrhu (primjerice za pripremu pisanog izvjetaja). Postupak se izvodi iz visdata prozora slijedeim postupkom: svojstvo Tables Field Name osobe.prezime_i_ime Ako ne navedemo uzlazni ni silazni redoslijed operator sortiranja u posljednjem retku, VB pretpostavlja Value uzlazni (ASC). Po potrebi, navodimo ASC ili Desc Fields to show iza zareza na kraju upisa u Order by. Order by osobe.prezime_i_ime Utility > Query Builder > unesi svojstva => vrijednost osobe

> nanizati polja .......

Time jo nisu iscrpljene sve mogunosti Visdata programa. Na raspolaganju su jo i: Data Form Designer za kreiranje obrazaca, s kontrolama i dugmetima za upravljanje podacima. Global Replace Attachments Groups/Users za masovno auriranje podataka za prilaganje vanjskih datoteka na postojee MS Access baze podataka za definiranje odobrenja pristupa i koritenja podataka.

i jo nekoliko raznih opcija, to sve prelazi opseg ovih uputstava

SQL
je kratica za Structured Query Language - moemo ga shvatiti kao standardni univerzalni jezik za pristup podacima, koga koristi veina relacijskih baza podataka, pa i Visual Basc i MS Access, odnosno Microsoft Jet baze podataka, iako meu verzijama SQL-a postoje manje razlike. Razvijen je u namjeri da omogui koritenje podataka iz baza podataka razliitih formata, te nije pisan u ni u jednom programskom jeziku, ali ga svi jezici mogu koristiti. Ukljuuje dvije kategorije naredbi: DML (data manipulation langage) naredbe za izbor, sortiranje, sumiranje i raunanje i DDL (data definition language) za kreiranje tabela, indeksa i odnosa mau bazama podataka. Prije prikaza najee koritenih SQL naredbi i klauzula, razjasnimo kako uz pomo SQL-a kreirati tabele. Podsjeamo da je Visual Basic u stanju preuzeti postojee tabele ACCESS-a, EXCEL-a i drugih baza podataka, pa e esto korisniku biti jednostavnije kreirati tabelu u npr. ACCESS-u

49 / 49 (osobito u sluaju sloenijih relacijskih baza podataka) ili EXCEL-u, nego u Visual Basic-u. No tabela se moe kreirati i SQL naredbom CREATE TABLE koja se upisuje u SQL prozor i po tom izvri komandom EXECUTE. Poznavateljima ACCESSa je poznata i vanost primjene primarnog i stranog kljua u definiranju meuzavisnosti meu tabelama baze podataka, pa se postavlja pitanje kako ostvariti:

KREIRANJE TABELA S PRIMARNIM I STRANIM KLJUEM

CONSTRAINT klauzule
Primarni (Primary key) i sekundarni ili tzv. "strani" klju (Foreign key), koristimo za opisivanje veza meu tabelama relacijskih baza podataka. Primarni klju neke tabele jest ono polje, koje jednoznano definira svaki zapis (svaki redak tabele), odnosno ima unikatne vrijednosti koje se ne mogu ponavljati unutar tabele i koje uz to ni u jednom zapisu ne moe imati nultu vrijednost. Najee se kao primarni klju koristi redni broj zapisa koga program automatski generira prilikom upisa prvog znaka ili podatka u novi zapis ili prilikom aktiviranja dugmeta Add (Dodaj) novi zapis. Sekundarni klju s druge strane jest (najee istoimeno) polje u drugoj tabeli koje se koristi za definiranje odnosa prema prvoj tabeli. Zapisi u sekundarnoj tabeli iji sekundarni kljuevi imaju istu vrijednost kao primarni klju zapisa u prvoj tabeli, zapisi su koji govore o istom subjektu. Na taj nain, "sparuju" se zapisi iz razliitih tabela koji sadre podatke relevantne za isti predmet obrade. U adresar osoba primjerice moemo uklopiti sekundarni klju koji e sadravati vrijednost pripadajueg primarnog kljua iz tabele potanskih brojeva. Svi podaci iz tabele potanskih brojeva (naziv grada, pozivni telefonski broj, upanija i potanski broj) s upisanim sekundarnim kljuem neke osobe, bit e relevantni za tu osobu, ali i za sve druge osobe s istim sekundarnim kljuem. Za razliku od primarnog kljua, sekundarni klju naime ne moe biti jedinstven, tj. mora biti doputeno njegovo ponavljanje u vie zapisa. Kako je ve reeno, ouvanje integriteta baze podataka svodi se na pravilo, da ne smiju postojati zapisi sa sekundarnim kljuem koji ne postoji kao primarni klju u vezanoj tabeli, jer bi to rezultiralo grekom u programu. Takva bi greka mogla nastati osobito prilikom brisanja zapisa, kad programski ne bi bilo sprijeeno takvo brisanje. Postavlja se pitanje, kako kreirati primarne kljueve u Visual Basic-u. Upravo tome najee slui klauzula PRIMARY KEY CONSTRAINT, koja se koristi obavezno u sklopu SQL naredbe za kreiranje nove tablice CREATE TABLE na slijedei nain: CREATE TABLE imeTabele (imeKljua TEXT (4) CONSTRAINT PKimeKljua PRIMARY KEY, ostala polja odvojena zarezima) definira max. broj znakova kljua Dakle u sintaksi za kreiranje tabele, na ime kljua dodaje se: COSTRAINT PKimeKljua PRIMARY KEY. Time se odabrano polje imeKljua proglaava primarnim kljuem nove tabele. Naredba EXECUTE izvrava naredbu upisanu u SQL prozor. Sekundarni klju moemo unutar iste SQL naredbe kreirati primjenom slijedee CONSRTAINT klauzule nad odabranim poljem nove tabele: ,imeKolone CONSTRAINT FKimeKolone REFERENCES imeTabele(imeKolone), Ova sintaksa umee se kao jedno od "ostalih polja" izmeu zareza unutar CEATE TABLE naredbe. Uz navedene dvije najvanije CONSTRAINT klauzule, na raspolaganju je i UNIQUE CONSTRAINT klauzula, koja omoguuje stvaranje kljua na temelju vie od jednog polja. No detalje o tome preputamo opsenijim prirunicima. Iz prethodnog prikaza slijedi, da je pojam CONSTRAINT-a najue vezan uz definiranje meuzavisnosti tabela u relacijskim bazama podataka, dakle da SQL naredbe CREATE TABLE ali i CREATE INDEX s ukljuenim CONSTRAINT klauzulama imaju istu namjenu kao i indeksi.

50 / 50

OSTALE SQL naredbe i klauzule izvodi iz izvornih tabela


Najeu uporabu u SQL-u imaju naredbe i klauzule: SELECT_FROM WHERE ORDER_BY za izbor podataka iz jedne ili vie tabela i prikaz izvoda iz izvornih tabela klauzula za ui izbor podataka izdvojenih SQL naredbom SELECT klauzula za preureenje - promjenu redoslijeda niza podataka

SQL naredbe i klauzule se obiavaju pisati velikim slovima. Postoji jo itav niz drugih klauzula, no u ovom saetku smo ukljuili samo nekoliko najvanijih. Ostale potraite u opsenijoj literaturi. SELECT FROM naredba djeluje kao arobna rije iz 1001 noi. Upis sintakse: SELECT imePolja_1, imePolja_2, . . ., imePolja_n FROM imeTabele ORDER BY imepolja_x u SQL prozor i klik na dugme EXECUTE, rezultirat e ispisom izvoda iz izvorne tabele sa svim navedenim poljima imePolja_1 do imePolja_n, pri emu e redovi izvoda biti sortirani po polju imePolja_x. Izvod e sadravati sve redove izvorne tabele. Na hrvatskom jeziku ta bi naredba glasila: ODABERI imePolja_1, . . . , imePolja_n IZ imeTabele REDOSLJEDOM imePolja_x. Dakako koristiti moemo samo izvornu, englesku sintaksu. Redosljed e biti uzlazni, ako iza "ORDER BY" izrito ne navedemo DESC, ime bi uzrokovali silazno redanje po polju imePolja_x. Ako se ORDER BY izostavi, redovi e biti jednako sortirani kao u izvornoj tabeli. Ako se iza ORDER BY izostavi DESC ili upie ASC, primijenit e se uzlazno sortiranje. Sintaksa SELECT * FROM imeTabele izvui e sva polja tabele s imenom imeTabele, pa i u sluaju kad nam nazivi tih polja nisu poznati. Isprobajmo sada konkretno primjenu ove, najee koritene SQL naredbe. Pokrenimo Visual Basic, > Existing > biramo postojeu bazu Adresar.vbp" > open Add Ins > Visual Data Manager > File > Open Database > Microsoft Access Sa diska biramo bazu podataka Adresar.mdb U desni prozor "SQL Statement" upisujemo SQL naredbu: SELECT ID_osobe, preziime, telefon FROM osobe OREDR BY preziime klik na Execute prikazuje tabelu traenih podataka, tj. telefonski imenik. Dugme Save sprema izdvojene podatke u tabelu kojoj dajemo ime tel-imenik spremamo projekt sa File > Save

WHERE klauzula Naredba SELECT uvijek vraa sve zapise (tj. redove) izvorne tabele, u emu lei opasnost njene primjene u sluaju vrlo velikih baza podataka, jer koliina podataka moe blokirati obradu, odnosno raunalo. To sprjeavamo ograniavanjem skupa podataka samo na one zapise koji se trebaju ukljuiti u obradu ili izvjetaj, uz pomo klauzule WHERE. Suavanje opsega podataka u obradi, povoljno e utjecati i na brzinu obrade kod velikih baza podataka. WHERE klauzula se uvijek koristi iza naredbe SELECT, npr. na slijedei nain: SELECT imePolja_1, . . . imePolja_n FROM imeTabele WHERE imePolja_x = 'vrijednost' Ovakva naredba dat e izvod iz izvorne tabele s ukljuenim poljima imePolja_1 do imePolja_n, ali e izvod sadravati samo zapise u kojima je vrijednost polja imePolja_x jednaka vrijednosti na kraju naredbe. Vidimo da je ona upisana izmeu apostrofa. Primjer: upis u SQL prozor

51 / 51

SELECT prezime_i_ime, telefon FROM osobe WHERE prebivaliste = 'Rijeka' i klik na EXECUTE izvui e iz adresara imena i telefonske brojeve osoba s prebivalitem u Rijeci. Vidimo da se imePolja_x ne mora ukljuiti meu polja koja se izdvajaju naredbom (iza) SELECT. Where klauzila doputa uporabu kombiniranje vie slijedeih logikih i poredbenih operatora: AND (i) OR (ili) =, >, <, <=, >=, <> (logike operatore) BETWEEN_AND (IZMEU_I) IN (u) LIKE (kao)

Slijedei primjer iz adresara ispisuje preime i ime osoba starosti izmeu (ukljuivo) 18 i 22 godine: SELECT Prezime_i_ime FROM osobe WHERE starost BETWEEN 18 AND 22 Koritenje operatora IN (naredba e iz adresara izvui imena iz Rijeke. Pule i Karlovca): SELECT prezime_i_ime FROM osobe WHERE prebivalite IN ('Rijeka', 'Karlovac', 'Pula') Operator LIKE omoguuje selektiranje vrijednosti koje su sline zadanoj, pri emu moemo koristiti i znak *. Slijedea naredba izdvojit e iz adresara imena iz svih mjesta koja poinju na K. SELECT prezime_i_ime FROM osobe WHERE prebivalite LIKE (K*) WHERE omoguuje i selekcije temeljene na vie tabela, takoer uz mogunosti primjene AND i OR operatora, to se moe koristiti i za

POVEZIVANJE TABELA UZ POMO KLAUZULE WHERE Slijedei primjer povezuje zapise iz tabele Osobe i tabele potanskih brojeva Mjesta i stvara podskup sa poljima ime, mjesto, i post_broj iz obih tabela, pri emu je potanski broj sadran samo u drugoj, a prezime i ime samo u prvoj tabeli.:

SELECT osobe.prezime_i_ime AS ime, osobe.prebivaliste As mjesto, mjesta.postbr As post_broj FROM osobe, mjesta WHERE osobe.prebivaliste = mjesta.naselje
Pri tome smo primjenom AS preimenovali izvorne nazive polja jer smo u izvodu htjeli drugaija imena polja od onih u originalnim tabelama. Naravno, zeleni dio naredbe za preimenovanje nije obavezan. Neka Vas ne buni to je naredba "rastegnuta" kroz vie redaka, imala bi jednaku sintaksu i da je ispisana u jednom retku (saki redak bi od prethodnog bio odvojen prazninom).

ZBIRNE (AGREGATNE) SQL FUNKCIJE Svi database sustavi podravaju slijedeih pet agregatnih funkcija koje iskazuju: AVG COUNT SUM MAX MIN prosjek svih vrijednosti u koloni broj redaka u koloni (moe se primijeniti na sve vrste vrijednosti) zbirna vrijednost kolone najvea vrijednost u koloni najmanja vrijednost u koloni Primjer se odnosi na kolonu uplaene lanarine. Naravno, moemo koristiti i samo jednu ili samo neke od navedenih funkcija, a na kraj naredbe moe se dodati i WHERE klauzula za ogranienje izraunatih vrijednosti samo na odabrane zapise (npr. WHERE mjesec = 7). Slijedi EXECUTE

52 / 52

Nain primjene ilustrira slijedea SQL naredba, koja sadri sve navedene agregatne funkcije: SELECT COUNT (uplaceno) AS clanova AVG (uplaceno) AS prosjek SUM (uplaceno) AS ukupno MIN (uplaceno) AS minimum MAX (uplaceno) AS maksimum FROM clanarina

VIEKORISNIKI RAD I PRISTUP UDALJENIM PODACIMA


(Budui da je ovo elementarni Visual Basic, ovaj prikaz samo informativno objanjava pojmove) Rad udaljenim podacima obavlja se u pravilu u viekorisnikom okruenju, pa moramo rei nekoliko rijei i o viekorisnikom radu. Viekorisniki rad ukljuuje tri vrste potreba: eme zakljuavanja podataka Jasno je da istovremena intervencija dvaju korisnika na istoj tabeli moe stvoriti greku. VB stoga ne doputa takvu mogunost, tj. predvia tri nivoa zakljuavanja podataka: na nivou baze podataka izvodi se ako istovremeno treba raditi na vie tabela ili upita na nivou tabela izvodi se ako istovremeno treba raditi na vie polja jedne tabele na nivou strane (automatski se ukljuuje prilikom svakog auriranja podataka u VB-u)

Otvorimo li neku izvrnu (EXE) VB aplikaciju koja je ve aktivna, javit e se poruka greke, a prethodno aktivirana aplikacija nastavlja rad u pozadini, to e u sluaju "mrtve petlje" onemoguiti daljnji rad s aplikacijom (to se esto dogaa i s ACCESSom). Ako se to desi, morat emo restartati raunalo, ili barem koritenjem opcije LOG OFF i ponovnim logiranjem prekinuti obradu u pozadini, pri emu e sve eventualno uinjene izmjene biti izgubljene. Zakljuavanje podataka na nivou baze podataka moe se ostvariti i postavom svojstva Exclusive na True. Programski, moemo to izvesti i slijedeom naredbom: Set b = DbEngine.Opendatabase ("put:imeBaze", True) Naredba namjeta svojstvo "OpenDatabase" na "True". Kad zakljuamo bazu, izmjene na njoj moemo vriti samo mi, a drugim korisnicima e to biti onemogueno uz poruku da je baza podataka ve u uporabi. Tako emo "u miru" moi obaviti potrebne izmjene i auriranja. Zakljuavanje na nivou tabele stvara Recordset sa zabranom pristupa drugim korisnicima, koji meutim mogu otvoriti bazu podataka, samo ne mogu koristiti zakljuanu tabelu. Iza zakljuavanja, odnosno otkljuavanja tabele dakako potrebno je kompajlirati (ponovo stvoriti EXE verziju) aplikaciju. Kaskadno auriranje i brisanje je druga potreba koja se neminovno javlja u viekorisnikom radu. Moe se ostvariti samo na bazama u Microsoft Jet formatu (baze tipa MS ACCESS). Opcije Kaskadnog auriranja treba ugraditi jo prilikom kreiranja baze podataka uz pomo Visdata programa, a moe se osigurati i programski, to meutim prelazi opseg poetnikog poznavanja VB-a. Uspostavu relacija meu tabelama moda emo lake obaviti u ACCESS-u, pa sreenu MDA bazu podataka otvoriti u VB-u. Sve se svodi na automatsko auriranje izmijenjenih ili brisanih podataka u svim relacijski vezanim tabelama u cilju odranja integriteta podataka, kada korisnik izvri bilo koju izmjenu.

53 / 53

Upravljanje transakcijama U opisu Visdata programa i rada sa SQL prozorom ve smo naveli da pri auriranju baze podataka VB koristi formiranje privremenih rezultata aktiviranjem opcije BeginTrans, pa ako je rezultat zadovoljavajui, usvajamo ga opcijom CommitTrans, a ako je proizveo greku ili nije zadovoljavajui, sve vraamo u poetno stanje opcijom Rollback. Ovo se moe izvesti i programski. Uz osnovnu funkciju mogunost vraanja poetnog stanja u sluaju neuspjenih izmjena, primjena transakcija doprinose integritetu podataka. Neki formati baza podataka meutim ne podravaju ove opcije, a mogui su i problemi u sluaju tijesnog diskovnog prostora.

RAD S UDALJENIM PODACIMA Pokae li se potreba obrade podataka smjetenih izvan aktualne aplikacije, tj. van njene "vlastite" baze podataka, "vanjski" podaci se moraju na prikladan nain dodati, odnosno integrirati u aktivnu aplikaciju, imajui u vidu da je rije o dinamikim izvorima razliitih tipova koji su podloni promjenama, koje se moraju automatski aurirati i u aktualnoj aplikaciji. Vanjski podaci mogu biti smjeteni na vlastitom raunalu, na internoj informatikoj mrei tvrtke, (intranet) ili nekoj globalnoj mrei (Internet, Carnet ili druge korporacijske ili javne mree), tj. na nekom serveru (raunalu koje uva i razmjenjuje tue podatke) koji takve mree posluuje. Koncentriranje relevantnih aurivih podataka na jednom mjestu ukljuuje brojne prednosti, od omoguenja konzistentnog odluivanja ili upravljanja procesima nezavisno o lokaciji izvornih podataka, do eliminiranja potrebe da se korisnik - operater (koji esto ne pozna ni osnove baza podataka) ui sluiti izvornim aplikacijama i bazama podataka. No, ostvarenje takvog "dodavanja podataka" je sve prije nego jednostavno i ukljuuje brojne probleme (zakljuavanje podataka, odravanje dodatih podataka, nemogunost koritenja Rollback opcije za neke tipove vanjskih podataka, problem primjene referencijalnog integriteta, osiguranje zatite podataka i prava pristupa, pouzdanost i cijena veza itd, itd.). Da bi se ovi zahtjevi manje ili vie uspjeno ostvarili, tijekom razvitka informatike razvijeno je vie naina pristupa vanjskim podacima razliitih generacija. Najvanija su slijedea tri: 1 DAO (Data Access Object) "DAO Jet pogon" je skup prevodilakih rutina koje konvertiraju zahtjeve Visual Basic-a u format razumljiv vanjskim bazama podataka razliitih tipova ( MS ACCESS, dBase, FoxPro, Paradox, EXCEL radni listovi, ASCII tekstualne datoteke i dr.). Ukljuuje rad sa tzv. upitima (Query), pomou kojih moemo obraivati baze podataka uz pomo standardnih SQL naredbi. Takoer, ukljuuje ODBCDirect Connection za pristup ODBC izvorima podataka. Danas se smatra zastarjelim, pa se nee detaljnije obraivati. su (danas ve zastarjeli) modeli pristupa udaljenim podacima. RDO je slian DAO sustavu, ali je namijenjen prvenstveno radu s udaljenim podacima i to posebno u velikim viekorisnikim sustavima (SQL Server, Oracle i dr.). Za razliku od DAO, obuhvaa i strukturu udaljenih tabela, a ne samo sam pristup podacima. Sadri slijedee koncepte koji nisu prisutni u DAO pristupu: za manipulaciju pokazivaem zapisa i pamenje njegove pozicije

2 RDO (Remote Data Object) i RDC (Remote Data Control)

kursor drajvere

tipove skupova podataka ime se reguliraju svojstva izvoda iz izvorne baze podataka (samo za itanje, za auriranje, sa ili bez bookmark mogunosti tipove zakljuavanja koji omoguuju dodatne varijante opcija za zakljuavanje podataka u odnosu na zakljuavanje u DAO sustavu. Programiranje ovim nainom ukljuuje RDC svojstva, RDC metode, RDC dogaaje i RDC obrasce, te objekte rdo Engine,

54 / 54 rdoEnvironment, rdoConnection, rdoResultset, rdoTable, rdoColimns, rdoQuery i rdoParameter. Ugradnja ODBC definicije izvora podataka u VB aplikaciju preduvjet je za primjenu RDC i RDO programskih alata, a ostvaruje se uz pomo ODBC Administratora sadranog u Control Panelu Windowsa. je suvremeni objektni model za baze podataka sadran u ActiveX Data Object Library dodatku Visual Basica (od verzije 6 na dalje). Taj koncept koristi i ranije opisani Visdata program

ODBC definicija

3 ADO (ActiveX Data Object)

ACTIVEX DATA OBJECT MODEL


S obzirom da je ovo suvremeni model, dugujemo mu neto detaljniji osvrt. On sadri tri glavna objekta (svaki sa svojom kolekcijom svojstava u sklopu Propertis-a), : Connection objekt nadlean za ostvarenje veze s bazom podataka. Sadri kolekciju podobjekata E r r o r s sa informacijama o grekama objekt za izvravanje upita nad podacima, ukljuuje kolekciju parametara (P a r a m e t e r s) koji uvaju parametre potrebne za definiranje upita skup slogova koji je definiran putem prethodna dva objekta, a sadri kolekciju podobjekata F i e l d s s informacijama o svakom polju Recordset-a. ematski se taj model moe prikazati kao na slici lijevo Slino kao to RDO koristi ODBC metodu za pristup bazama podataka, tako ADO koristi OLEDB (OLE baza podataka) metodu za povezivanje sa ciljanom bazom. OLEDB meutim omoguuje pristup onim bazama podataka koje ne razumiju SQL i fleksibilniji je i laki za uporabu od ODBC metode. Za ovakav pristup udaljenim podacima, neophodno je odgovarajue suelje, odnosno OLEDB interfejs. OLEDB koristi komponentu (provider) koja se ponaa poput prevodioca, odnosno posrednika izmeu Visual Basic aplikacije i ciljane baze podataka. Za vezivanje na razliite tipove baza podataka razvijene su razne verzije providera, poput: Microsoft OLE DB provider za ODBC drajvere za SQL Server za Oracle Microsoft Jet 3.51 OLEDB provider

Command

Recordset

Connection Command Parameter Recordset Field

Error

i drugi.

Prvi primjerice doputa ADO pristup putem postojee ODBC veze u sklopu OLEDB providera. Bez dubljeg ulaenja u detalje, spomenimo da se ADO model odlikuje svojstvima koja nisu prisutna u starijim modelima DAO i RDO, vezanim za generiranje skupa podataka iz izvornih tabela, upravljanje pokazivaem u tom skupu i za pravo pristupa podacima. Ta svojstva su: Connection String Command text Command types Cursor Locations Cursor types Lock Types Mode Types (String veze) (komandni tekst) (tipovi komandi) (pozicija kursora) (tipovi kursora) (tipovi zakljuavanja podataka) (tipovi modova)

Neemo detaljnije prouavati ove modele i svojstva, ve konstatiramo samo da je ADO model koriten u Visdata programu, odnosno Visdata Manageru ije smo osnovno koritenje upoznali ranije. Pomou njega nakon neto vjebe i pokuavanja snai e se i napredniji poetnici.

55 / 55

SUELJE VISUAL BASIC- 6


Nakon pokretanja Visual Basic programa i izbora tipa programa Standard EXE , (jer kreiramo aplikaciju koja e funkcionirati kao samostalna cjelina) na ekranu e iskrsnuti prozor (tzv. dijaloki okvir) New Project (Novi projekt), odnosno suelje za kreiranje obrasca. Isto suelje koristi se i za druge postupke u kreiranju aplikacije (npr. za pisanje programskog kda procedura, samo e sredinji prostor biti neto drugaije prilagoen. aktivira okvir Code Aktivira prikaz objekta

traka izbornika
ikone VB komandi

ime projekta
ema projekta i njegovih sastavnica

ime obrasca
izbor sastavnice projekta svojstva (propertis) aktivnog, tj. oznaenog elementa otvara i F4 objanjenje u vezi oznaenog elementa smjetaj sastavnice projekta u VB prozoru Ako ste sluajno uklonili pomone alate s desne opcijama komande View iz izbornika: margine ili ih nema, moete ih vratiti zaokruenim Project Explorer ema projekta i sastavnica Propertis Window tabela svojstava objekata Form layout Window smjetaj objekta u VB-u Pojedini okviri meusobno e se prekrivati, pa im s gornjeg ruba treba smanjiti visinu miem, tako da ne smetaju jedan drugome. Ponite od najdonjeg. Kontrole na obrazac ubacujemo dvoklikom na ikonu ciljane kontrole s lijeve margine suelja, ili kliknemo na ikonu, pa kontrolu miem ucrtamo na eljenom mjestu u eljenoj veliini. Mogu se kopirati s jednog obrasca na drugi, pa i iz jednog projekta u drugi, ali na kopiji treba podesiti odgovarajua svojstva prema uputama u nastavku. Svojstva (propertis) objekata (a to moe biti obrazac ili objekti na njemu) definiraju sve karakteristike objekta na koga smo kliknuli i time ga oznaili kao aktivnoga. Tabelu svojstava VB automatski prilagoava odabranoj vrsti objekta. Brojna svojstva su ve pretpostavljena (default).

sredinji radni prostor za kreiranje obrasca (ili za pisanje kda programskih procedura)

You might also like