Access – Funkcije i opcioni parametri

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.
U sledeฤ‡em primeru moลพete videti kako se koriste podrazumevane vrednosti umesto nedostajuฤ‡ih parametara:


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