U trendu

Access – Domen važenja procedura (I deo)

Procedure u jeziku VBA mogu se deklarisati na tri načina:

  • Public – javne
  • Private – lokalne
  • Static – statične
Deklarisanjem procedura kao Public, Private ili Static, vi zapravo određujete njihov domen ili oblast važenja, definisanosti, odnosno područje programa u kome je procedura pristupačna i iz koga može biti pozvana. Deklarisanjem određujete i životni ciklus, odnosno dužinu vremena u kome će procedura biti rezidentna u memoriji. Svrstavanjem procedura u određeni domen može dramatično da utiče na funkcionalnost i performanse vaših aplikacija.

Public procedure mogu biti pozvane sa bilo kog mesta u aplikaciji. Procedure koje deklarišete u Access modulima automatski su definisane kao Public. Ovo znači da ukoliko ne odredite drugačije, procedure deklarisane u Code modulima mogu biti pozvane sa bilo kog mesta u aplikaciji. Verovatno pretpostavljate da dve Public procedure ne mogu da imaju isti naziv. Međutim, ovo je tačno u starijim verzijama Access-a, ali ne i u verziji 2000. Kada dve procedure imaju iste identifikatore, kod poziva morate eksplicitno navesti u kom modulu se nalazi data procedura. Ilustrovaćemo ovo jednim primerom:


Private Sub cmdPozdrav_Click()
Call basPomocni.Pozdrav_Poruka
End Sub

Procedura „Pozdrav_Poruka“ nalazi se u dva Access modula programskog koda. Prefiks „basPomocni“ indicira da se procedura koju pozivamo nalazi unutar modula zvanog „basPomocni“.

Procedure deklarisane unutar Form ili Report modula, automatski su Private za formu ili izveštaj u kojima su deklarisani. Ovo znači da mogu biti pozvane samo iz procedura unutar iste forme ili riporta. Procedure unutar Form ili Report modula mogu biti eksplicitno deklarisane kao Public procedure, korišćenjem ključne reči Public, te tada mogu biti pozvane iz bilo kog dela aplikacije. Kao ilustraciju, pretpostavimo da imate proceduru nazvanu „JaSamPublic“ koja se nalazi unutar forme, čiji je naziv „frmTest“. Iako se procedura nalazi unutar firme, ona može biti pozvana iz bilo kog dela aplikacije. Jedino na šta treba obratiti pažnju jeste to što da bi se procedura mogla pozivati, forma mora biti otvorena. Evo i kako biste zatim pozivali proceduru:


Sub PublicFormProc()
Call Forms.frmTest.JaSamPublic
End Sub

Pratite Krstaricu i preko mobilne aplikacije za Android i iPhone.