zxz | 04.08.2013 23:53 |
---|---|
Predmet:Re: Skola Vb-a za napredne ----------------------------------------P O C E T A K-------------------------------------------- PROCEDURE: Kao sto smo prosli puta naveli svaka procedura se sastoji od: -zaglavlja procedure -tijela procedure (Koda) -Podnozja procedure. Tip procedure moze biti: -Sub -Function (Funkcija) Svaka od ovih procedura moze biti: -Private -Public -Static Ova prva dva tipa procedure odredjuju u stvari doseg procedure. Doseg procedure odredjuje njeno djelovanje (Dostupnost) Private procedura ima dostupnost samo u objektu u kome je napisana. Ako smo je napisali u okviru neke forme ona ce nam biti dostupna odnosno mozemo je pozivati samo u okviru modula od te forme ili ako je u nekom samostalnom modulu isto tako je mozemo pozivati samo u okviru toga modula. Public procedura ima doseg na nivou nase aplikacije sto znaci da je mozemo pozivati sa bilo kojeg mjesta u aplikaciji. Static procedure ce biti stticne odnosno vrijednosti ce se u njima zadrzati i poslije izvrsenja procedure. |
zxz | 05.08.2013 00:15 |
---|---|
Predmet:Re: Skola Vb-a za napredne Opsti oblik procedure: Vrsta Tip ImeProcedure(argument1, argument2, ...) VBA naredbene linije koda end tip Vrsta procedure moze biti: Private Public Static Vrstu procedure mozemo i izostaviti. Ukoliko izostavimo tip procedure moze biti: Sub Function. Vrast procedure moze biti: Public Private Static Ime procedure: Ime proceure se mora sastojati iz jedne rijeci odnosno ne smije imati prezno mjesto u imenu procedure. Nesmije biti ni prvi znak broj u imenu procedure. Takodje nesmijemo koristiti nazive koji vec imaju gotove procedure(naredbe) Ukoliko zelimo da imamo dvije rijesi onda ih mozemo spojiti donjom crtom: Primjer: Moja_Procedura Preporuka: Za nazive procedure koristite samo engleske znakove i donju crtu. Ne preporucujem nasa slova kao niti opertaore u nativima procedura. Argumenti procedure: Sto se tice naziva argumenata isto vazi kao i za nazive procedura. Argumente je pozeljno i definisati odnosno odrediti tip variable za koju ce se koristiti. Primjer: MojArg1 as Integer,MojArg2 as string,MojArg3 as Boolean Ukoliko ispred argumenta dodamo Optional tada je taj argument neobavaeza pri pozivu procedure. Primjer: Optiona ImeArgumenta as tipArgumenta Broj argumenata u nekoj proceduri nije ogranicen. |
zxz | 05.08.2013 00:24 |
---|---|
Predmet:Sub Procedure Sub Procedure Sub-procedure su najčešći tip procedura koje se koriste. Subprocedure ne vraćaju nikakvu vrijednost u imenu procedure. Sub procedure počinju sa SUB i završavaju sa END SUB, argumenti su odvojeni zarezom. Jedna Subprocedura može pozvati drugu Subproceduru. U koliko nijedna od njih nisu Private tada se mogu nalaziti u različitim Modulima. U koliko je jedna od njih postavljena kao "Private" tada se obje moraju nalaziti u istom Modulu Workbook. U zagradama iza ImenaProcedure postavljaju se argumenti odvajani zarezom. Sub ImeProcedure(argument1, argument2, ...) VBA naredbene linije koda End Sub Pored ovoga ispred naziva procedure mozemo dodati i izraz Static. Ukoliko dodamo izraz static vrijednosti variabli ce biti stticne odnosno vrijednosti ce se u njima zadrzati i poslije izvrsenja procedure. |
zxz | 05.08.2013 09:22 |
---|---|
Predmet:Funkcije Funkcija moze a i nemora imati ulazne argumente. Broj ulazniha ragumenata nije ogranicen. Ulazni argumenti (Parametri) su oiviceni malom zagradom. Svaki ulazni argument može biti dimenzionisan. a aukoliko ga ne dimenzionisemo on ce biti tipa variant. U funkciji izlazni argument je samo ime funkcije Mozemo dimenzionisati i izlazni argument i to nako zatvaranje male zagrade odnosno ispisa ulaznih argumenata. Ukoliko ga ne dimenzionisemo bit ce tipa variant. Dimenzionisanje izlaznog argumenta nije obavezno. Primjer: Function ImeProcedure(argument1 as Integer, argument2 as string, ...) as String VBA naredbene linije koda End Function Ispred ulaznog argumenta mozemo dodati 'Optional'. Ukoliko navedemo da je argument optional onda pri pozivu te preocedure nije obavezan unos podatka za ovaj argument Function PrimjerOptional(argument1 as Integer, Optional argument2 as string, ...) as String VBA naredbene linije koda End Function Ovu proceduru mozemo pozvati ovako: call PrimjerOptional(2) ili ovako: call PrimjerOptional(2,"nekistring") Ukoliko kao ulazne parametre postavljamo druge variable onda one moraju biti istok tipa ka i sto je argument u ulaznom parametru. Primjer: Dim a as integer a=2 call PrimjerOptional(a,"nekistring") Ukolilo ova variabla nije istoga tipa onda u proceduri moramo ispred naziva ragumenta napisati 'Byval'. Primjer: Function PrimjerOptional(byVal argument1 as Integer, Optional argument2 as string, ...) as String VBA naredbene linije koda End Function sada mozemo imati i ulaznu variablu drugoga tipa. Dim a as single a=2 call PrimjerOptional(a,"nekistring") |
zxz | 05.08.2013 14:55 |
---|---|
Predmet:Varijable ili Promjenjive VARIABLE u prijevodu znači nešto varijabilno ili promjenjivo. Kao i svi programski jezici tako i VBA koristi Variable u svom kodu. Za razliku od nekih programskih jezika, u VBA ne morate explicitno deklarirati varijablu prije nego je upotrijebite iako je to poželjno. Ukoliko želite explicitno deklarisati variable onda na vrhu modula upisite: Option Explicit VBA sadrži veliki broj tipova Varijabli. Varijable se koriste za pohranu privremenih podataka koji se upotrebljavaju u izvršavanju neke procedure. Postoje i neka pravila u radu sa Variablama: - Naziv (Ime) Variable mora početi "slovom" a ne brojem. Broj može biti sastavni dio Variable ali ne na početku. Kao i kod procedura - Naziv (Ime) Variable ne smije biti duže od 255 znakova - Naziv (Ime) Variable ne smije biti istog naziva kao i nazivi naredbi odnosno gotovih procedura - Naziv (Ime) Variable mora biti kontinuirani niz znakova bez prekida. Ako želite istaknuti neke dijelove to možete pomoću velikih početnih slova (npr: MojaVar, Moj_Popis) Poželjno je da Varijable imenujete nekim smislenim imenom (nazivom) da bi ste mogli lako na prvi pogled uočiti o čemu se radi u dotičnom VBA kodu.(ovo je važno kod eventualno naknadnih promjena). Na internetu ćete naći VBA kodova koji kao Variablu koriste samo "jedno slovo". Ovo nije dobra praksa i treba je izbjegavati. Nakon izvjesnog vremena i vi sami cete zaboraviti cemu vam sluzi ta variabla a mozete misliti kako je nekome drugome ko zeli iscitati vas kod. Broj Variabli nije ogranicen u jednoj proceduri ali se netreba rasipati jer samim time trosite memoriju i vasa app. ce sporije raditi. |
zxz | 05.08.2013 14:58 |
---|---|
Predmet:Re: Skola Vb-a za napredne E sad to bi bilo uopsteno sto bi trebali znati prije no sto pocnemo sa pisanjem samih procedura. Jos bih vas zamolio da procitate i ovu temu: http://www.icentar.ba/print.php?id=1149&page=1 Te u slucaju nekih nejasnoca da slobodno postavite pitanje. Tek kada ovo teoretski razjasnimo onda idemo dalje. |
pmiroslav | 05.08.2013 15:34 |
---|---|
Predmet:Re: Skola Vb-a za napredne Dali Sub procedure koristimo samo unutar Formi i Reporta da odrade neki zadatak ili ih se može koristiti i na neki drugi način? |
zxz | 05.08.2013 15:53 |
---|---|
Predmet:Re: Skola Vb-a za napredne Sub Procedure se koriste svuda ne samo na formama. Na formama moraju biti private sub zbog automatkog kreiranja. primjer: Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Privatna mora biti jer pod istim nazivom mozemo je imati i na drugoj formi. Sub mora biti jer vraca podatke koji je taster pritisnut i polozaj misa. Isto tako pravimo mi neku proceduru kao funkciju ukaze se potreba da napravimo neku sub proceduru koja ce obradivati neki odredjeni sklop podataka i vracati vise rezultata. Sub procedura vraca vrijednosti kroz ulazne parametre odnosno ulazne variable. Ti cesto koristis pretragu iz solution koja je kreirana sa jednom procedurom i jednom sub procedurom. |
zxz | 05.08.2013 18:47 |
---|---|
Predmet:Re: Skola Vb-a za napredne Molio bih one koji prate ovu temu da na vrhu teme topic Option odaberu instant obavijest tako da dobijaju stalna obavjestenja te samim tim prate temui budu aktivni. |
dex | 05.08.2013 18:56 | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Predmet:Re: Skola Vb-a za napredne Hteo bih jos da dodam da Access od logickih operacija prepoznaje jos i ekvivalenciju obelezava se sa Eqv
kao i implikaciju obelezava se sa Imp
|