Access – Domen važenja procedura (II deo)

Kao što smo rekli, procedure deklarisane unutar Form ili Report modula automatski su Private. Ovo znači da one mogu biti pozvane samo iz forme ili izveštaja u kojima su i definisane. Ukoliko želite da i procedure deklarisane u drugim Access modulima imaju domen važenja samo u okviru istog modula, moraćete eksplicitno da ih deklarišete kao Private.

Private procedure uvek imaju prednost u odnosu na Public procedure. Kada Private procedure imaju isti naziv kao i Public, programski kod Private procedure biće izvršen ukoliko je pozvana iz bilo koje procedure unutar modula gde je i deklarisana. Zato se ne mogu desiti konflikti sa nazivima između Public i Private procedura.

Uvek kada je procedura deklarisana kao Static, sve varijable deklarisane unutar procedure održaće svoje vrednosti i nakon više pozivanja procedure. Ovo je alternativa eksplicitnom deklarisanju svake varijable pojedinačno kao Static. Evo i primera jedne Static procedure:


Static Sub PovecanjeVred()
Dim intCtr1 As Integer
Dim intCtr2 As Integer
Dim intCtr3 As Integer
intCtr1 = intCtr1 + 1
intCtr2 = intCtr2 + 1
intCtr3 = intCtr3 + 1
MsgBox "Vrednosti varijabli su: " & intCtr1 & _
" – " & intCtr2 & " – " & intCtr3
End Sub

Svaka varijabla u ovoj proceduri se reinicijalizuje svaki put kada se pokreće procedura. Ovo znači da će se svaki put po pokretanju procedure u message box-u pojaviti jedinice (1), jer je procedura deklarisana kao Static, pa varijable zadržavaju vrednosti i nakon višestrukog pozivanja. Svaki put kada pozovete proceduru, vrednosti unutar message box-a će se uvećati.

Pratite Krstaricu na www.krstarica.com