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