Access 2000 i VBA omoguฤavaju koriลกฤenje opcionalnih parametara. Drugim reฤima, ovom moguฤnoลกฤu nije neophodno da znamo koliko ฤe parametara biti poslato funkciji na obradu. U sledeฤem primeru imamo funkciju „VratiInicijalne()“, koja prihvata drugi i treฤi parametar kao opcionalne. Funkcija proverava da li neki od parametara nedostaje i na osnovu toga kreira odgovor:
Function VratiInicijalne(ByVal strIme As String, _
Optional ByVal strSred,
Optional ByVal strPrezime)
If IsMissing(strSred) Then
strSred = InputBox("Unesi srednji inicijal")
If IsMissing(strPrezime) Then
strPrezime = InputBox("Unesite prezime")
VratiInicijalne = strPrezime & "," & strIme & "
" & strSred
End Function
Funkcija moลพe biti pozvana na sledeฤi naฤin:
strName = VratiInicijalne("Milan", ,"Maric")
Kao ลกto moลพete videti, drugi parametar nedostaje. Funkcija „IsMissing“, koja je ugraฤena u Access, odreฤuje da li je parametar poslat funkciji. Nakon identifikacije nedostajuฤih parametara, morate odluฤiti kako ฤete dalje upravljati kodom. U naลกem primeru, funkcija od korisnika traลพi unos nedostajuฤih parametara (ukoliko veฤ nisu poslati). Drugi moguฤi izbor bi mogao da bude sledeฤi:
- Ukoliko nema parametara, ubacite podrazumevane vrednosti.
- Obezbedite nedostajuฤe parametre programskim kodom.
Function VratiInicijalne2(ByVal strIme As String, _
Optional ByVal strSred,
Optional ByVal strPrezime)
If IsMissing(strSred) Then
strMI = "K"
If IsMissing(strPrezime) Then
strLName = "Maric"
VratiInicijalne2 = strPrezime & ",
" & strIme & " " & strSred
End Function
Funkcija koristi podrazumevanu vrednost „K“ za srednji inicijal i podrazumevano prezime „Maric“ ukoliko dati parametri nisu prosleฤeni. Poลกto ovakva dodela vrednosti uglavnom nema smisla, u sledeฤem primeru videฤemo kako funkcija moลพe da vrati razliฤite vrednosti, a u odnosu na to da li je parametar ukljuฤen u poziv ili ne.
Function VratiInicijalne3(ByVal strIme As String, _
Optional ByVal strMSred,
Optional ByVal strPrezime)
Dim strRezultat As String
If IsMissing(strSred) And IsMissing(strPrezime)
Then
VratiInicijalne3 = strIme
ElseIf IsMissing(strSred) Then
VratiInicijalne3 = strPrezime & ",
" & strIme
ElseIf IsMissing(strPrezime) Then
VratiInicijalne3 = strIme & " " & strSred
Else
VratiInicijalne3 = strPrezieme & ",
" & strIme & " " & strSred
End If
End Function
U ovom primeru manipuliลกemo vrednostima koje funkcija vraฤa, i to onim parametrima koji su primljeni. Kada nije prosleฤen nijedan opcioni parametar, funkcijom se vraฤa samo obavezni parametar „strIme“.
Pratite Krstaricu na www.krstarica.com