Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

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 » Procedure,funkcije,sub,argumenti,parametri
pmiroslav 07.08.2013 14:53
Predmet:Re: Procedure,funkcije,sub,argumenti,parametri

Ovo sam pitao zato što vidim da se u Ms Accessu unutar Modula koriste uglavnom Procedure koje se zovu Function
Zanima me dali se unutar modula može koristiti Sub procedura i ako može u kojim slučajevima. Daj neki primjer.

zxz 07.08.2013 18:05
Predmet:Re: Procedure,funkcije,sub,argumenti,parametri

Naravno da moze.
Ja licno pisem uvijek function kada dajem primjer iz razloga da nekome nebi trebala dorada odnosno da hoce vratiti neku vrijednost.
Ukoliko ne vraca nikakvu vrijednost slobodno je mozes prepraviti u sub svaki i sve ce da radi.
Vidis ova tema izgleda nece biti djaba.
Nesto ce se i nauciti u njoj.

pmiroslav 07.08.2013 21:02
Predmet:Re: Procedure,funkcije,sub,argumenti,parametri

U primjeru sam napisao jednu jednostavnu proceduru koja ne vraća nikakvu vrijednost nego samo izvršava neku radnju.
DoCmd.OpenReport
Jednom kao Sub na formi, drugi puta kao Function u modulu i treći puta kao Sub u modulu.
Svaku proceduru pokrećem klikom na dugme.
Zašto je kod Sub procedure iz modula greška?
Prilozi:
ProcedureMP.rar (Velicina datoteke:11.19 KB)

Getsbi 07.08.2013 21:08
Predmet:Re: Procedure,funkcije,sub,argumenti,parametri

Tema nije beskorisna. Polako bi mogli da je zaključimo. Moraću malo da se korigujem sa tvrdnjom da

"...Ovako nešto ne postoji:

Function functionname ()
statements
EndFunction..."


Ipak je u programiranju moguće. Razlika između matematičke funkcije, iza koje sam ja stao na početku ove teme i programske funkcije postoji. Ova druga bi mogla da vrati vrednost, a da ne traži argument, dok matematičke traže argument.

Dakle, osnovna razlika između procedura i funkcija je u tome što Function vraća vrednost kroz ime funkcije, a Sub ne vraća ništa osim što odrađuje posao. Neka Sub traži parametre, druga ne. Punjenje neke varijable, kroz Private Sub ili Public Sub nije isto što i vraćanje vrednosti.

Još neke stvari su me nagnale da delom korigujem mišljenje. U matematici se sve posmatra statički dok je programiranje dinamičko. Matematika ne priznaje:

f(X)=f(X+1)
ili još bolje u matematici je jeres napisati:
a=a+1
dok je takav iskaz u programiranju uobičajen.

Jedino pri čemu ostajem, da bi obavezno trebalo pisati Sub tamo gde se ne vraća neka vrednost, a sintakasa VBA dozvoljava da napišete i Function. Ovo bi unelo malo vise reda u pisanje programskog kooda.

pmiroslav 08.08.2013 09:10
Predmet:Re: Procedure,funkcije,sub,argumenti,parametri

Nisam dobio ni odgovor na pitanje iz posta #13

zxz 08.08.2013 12:51
Predmet:Re: Procedure,funkcije,sub,argumenti,parametri

Posto si napisao na on klik =PrintajS() a sub ne vraca nikakav rezultat i prema tome nemoze biti jednako nicemu.
Otvori proceduru na on klik i iz nje pozovi i radit ce.

pmiroslav 08.08.2013 13:58
Predmet:Re: Procedure,funkcije,sub,argumenti,parametri

OK sada mi je jasno. na trećem dugmetu napisao sam

Private Sub Command3_Click()
PrintajS
End Sub

i sada radi. Znači to je primjer kako istu radnju napraviti na tri načina. Sub procedurom na formi, Funkcijom u modulu i Sub procedurom u modulu