Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190
iCentar » Racunari i oprema » Programirannje i baze podataka » Access » Skola Vb-a za napredne
zxz 08.08.2013 07:55
Predmet:Re: Skola Vb-a za napredne

Hehe dobro pitanje.
Vidis ako je Private onda ima doseg samo u okviru modula.
Znaci mozemo je pozivati samo iz tog modula a to mozemo uraditei tako (samo ako nema ulazne parametre) sto cemo kursor pozicionirati negdje izmedju sub i end sub i pritisnuti funkcijski taster F5.

pmiroslav 08.08.2013 08:43
Predmet:Re: Skola Vb-a za napredne

Ovo sa F5 radi.
Predlažem da u okviru ove teme raspravimo i o radu sa Visual basic editorim. Evo ja naprimjer nisam znao za ovaj Å¡tos sa F5, a tu ima joÅ¡ dosta stvari za naučiti. U menu-ima Visual basic Editora ima dosta ikonica za koje neznam za čega služe i kako se koriste.

zxz 09.08.2013 10:08
Predmet:Re: Skola Vb-a za napredne

Posto je sad izgleda svima jasno sto se tice naziva procedure i samog poziva iz druge onda idemo dalje.
Odma ispod naziva procedure dimenzionisaemo Variable (promjenjljive) koje cemo koristiti u samoj proceduri.
Naravno mozemo mi i bez dimenzionisanja koristiti variable ukoliko na vrhu tog modula ne pise onaj izraz:
Option explicit
Nebih nikome preporucio da radi bez ovoga odnosno da ne dimenzionise variable sem ako se ne radi samo o nekom primjeru a i tad se bolje navikavati da dimenzionisemo variable.

Sta znaci variabla pa dimenzionisanje iste?

variabla je nesto variabilno-promjeljivo.
To vam je skoro isto kao na digitronu memorija sem sto bi ih onda mogli imati neogranicen broj a kad ih imamo puno logicno je da im i ime mozemo nadjenuti tako da ih mozemo prepoznavati.
Ime variable mora biti jedna rijec ili bolje reci sve isto vazi kao sto smo naveli za ime procedure tako da ne opisujemo iste stvari ponovo.
Pored imena mozemo odrediti i tip variable. Ovo je neobavezno ali je veoma pozeljno.
Jer ukoliko ne odredimo tip variable ona ce poprimiti tip variant.
Variant zauzima i po najvise memorije a ima i drugih stvari zbog kojih je pozeljno odrediti tip variable.
O tipovima variabli cete procitati u helpu.
Sta mozemo zakljuciti?
Dimenzionisanje variabli znaci dodjeljivanje imena memorijskoj kao i tipa.
Kod stringa pored imena i tipa mozemo odrediti i broj karaktera.
Primjer:
Dim MojaVar as string *20

Znaci ova variabla moze prihvatiti samo 10 karaktera(Znakova)
Ukoliko proslijedimo ovoj variabli vise od 20 karaktera ona ce prihvatiti samo 20 slijeva na desno a ostale ce odbaciti.
Ukoliko pak proslijedimo manje od 20 karaktera ona ce ostatak do 20 zamijeniti preznim mjestima.

Variable mozemo dimenzionisati i na vrhu nekog modula i da nisu niti u jednoj proceduri.
Takva variabla se moze koristiti u svim procedurama koje se nalaze u tom modulu i posto je na nivou modula ona i zadrzava vrijednost i poslije izvrsenja procedure.
Ukoliko ovoj variabli dodamo prefix Global ili Public a ne nalazi se u modulu objekta(forme) onda takva variabla zadrzava svoju vriijednost citavim izvrsenjem aplikacije i moze se koristiti u bilo kojoj proceduri.
Znaci njen doseg je cijela app.

Mozda je ovdje dobro napomenuti da bilo kakav kod pisan u modulu forme vazi samo za tu formu.
Znaci njegov doseg je samo ta forma bez obzira na prefikse dosega.

Primjer dimenzionisanja variabli:
Dim Var1(6) As Integer, Var2 As String * 20, Var3 As Date
Dim MojaVar1(1 To 5) As Double
Static Mojavar2 As Integer
Dim Mojavar3 As Object
Dim MojaVar4(4, 4) As String

pmiroslav 12.08.2013 08:47
Predmet:Re: Skola Vb-a za napredne

Kako treba odrediti tip brojčane varijable. Kada je odrediti kao Integer, kada Single ili Double.
Naime nedavno sam pisao jednu proceduru gdje sam između ostalog imao

Dim Iznos As Integer
...
Do While Not rs.EOF
Iznos = rs.Fields(3) + Iznos
rs.MoveNext
Loop

Dobio sam grešku 'Overflow' i tek kada sam promjenio Dim Iznos As Double procedura radi kako treba.

pmiroslav 13.08.2013 11:10
Predmet:Re: Skola Vb-a za napredne

Da se vratim na predhodni post, varijabla Type...End Type. Nije mi jasno koja je zapravo prednost upotrebe ovakovih varijabli. RazmiÅ¡ljam kako ovo konkretno upotrebiti u aplikaciji i ne mogu se sjetiti ničeg osim da podacima koje si dao u primjeru recimo popunimo neke text boxove na formi i tada bi imali
PreuzmiIzvorni kôd (vbnet):
  1. [/code]
  2. Private Sub cmdPopuni_Click()
  3. Dim o As osoba
  4. o.d_rodjenja = 1957
  5. o.ime = "ishab"
  6. o.prezime = "zonic"
  7.  
  8. Me.txtDatumRodjenja =o.d_rodjenja
  9. Me.txtIme =o.ime
  10. Me.TxtPrezime = o.prezime
  11. End sub

Zar to nije onda jednostavnije napraviti sa:
PreuzmiIzvorni kôd (vbnet):
  1. [/code]
  2. Private Sub cmdPopuni_Click()
  3. Me.txtDatumRodjenja = 1957
  4. Me.txtIme ="Ishab"
  5. Me.TxtPrezime = "zonic"
  6. End sub

zxz 13.08.2013 13:09
Predmet:Re: Skola Vb-a za napredne

Pa negdje gdje ti treba vise variabli a koje mozes sprovesti pod istim nazivom.
Primjera radi napr Rs artikli.
Imao bi tip artikli a variable ime sifra cijena itd.
Netreba nikad forsirano traziti gdje upotrijebiti jer kada dodjes do takvog slucaja samo ce ti se reci.
Rijetko zatreba ali kad zatreba stvarno mnogo pomogne i bude mnogo jasnije.

zxz 14.08.2013 13:44
Predmet:Re: Skola Vb-a za napredne

Posto vidim da je svima sve jasno idemo dalje.
Ostale su nap property proceure.
Ukoliko hocemo da neke podatke upisemo u memorisku ali i da ih mijenjamo mozda nebi bilo lose posegnuti za property procedurom.
Ja cu ovdje dati jedan primjer kako to koristiti ali como ponovo doci do toga kada budemo obradjivali vrste modula.
Opcija property moze biti let za unos vrijednosti i get za poziv vrijednosti.
Primjer:
PreuzmiIzvorni kôd (Visual Basic):
  1. Private VaseIme As String
  2.  
  3.  Public Property Get Ime() As String
  4.      Ime = VaseIme
  5.  End Property
  6.  Public Property Let Ime(Value As String)
  7.      VaseIme = Value
  8.  End Property
  9. Function aa()
  10.     Ime = "Mujo"
  11. End Function
  12.  
  13. Function BB()
  14. Dim a
  15.     MsgBox "Ime je:" & Ime
  16. End Function

zxz 14.08.2013 13:51
Predmet:Re: Skola Vb-a za napredne

Vrste modula:
Moduli mogu biti:
Class modul i obicni modu (module).
I obcni moduli nisu svi isti.
Ukoliko otvorimo modul na nekoj formi (a forma je niste vise neko neki Class modul-Klasa) Procedure u tom modulu imaju doseg samo te klase odnosno te forme.
Isto je i sa modulima koje otvaramo na izvjestajima.
Modul koji otvorimo u VB editoru ima doseg u cijeloj nasoj app. u njemu ima smisla pisati private public global itd.
Sta vise do sada sve sto smo radili u ovoj temi koristili smo ove module.

pmiroslav 14.08.2013 20:25
Predmet:Re: Skola Vb-a za napredne

Izgleda da je svima sve jasno i jedino ja ispitujem pa ispada da sam najslabiji učenik.

Class modul ?
Obični modul ?
Kada koji i zašto ?
Kada radimo modul u Accessu idemo na Modules > New i otvori se Microsoft Visual Basic editor.
Napišemo svoju proceduru i što sad ? Što treba napraviti da to bude Class modul?
Prilozi:
Class.jpg (Velicina datoteke:40.42 KB)

zxz 16.08.2013 14:31
Predmet:Re: Skola Vb-a za napredne

Kada zavrsimo sa Klass modulom mislim da cemo dobti i odgovor na gore postavljeno pitanje.
Za obicne module vec sam napisao i imamo dvije vrste jedan je kada stvorimo zaseban modul u vb iz menija:
U VB Kliknete na meni inser pa module i ovom modulu morate dati i ime dok moduli koje otvaramo u sastavu objekta napr. forme ili pak izvjestaja nemozemo zapisati pod nekim imenom kao modul jer on je sastavni dio tog objekta i njegov doseg je taj objekat bez obzira kakav doseg dodijelili.