Tehnika Krstarice > Programiranje > Access - Funkcije i opcioni parametri

Access - Funkcije i opcioni parametri

20.10.2001.

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".

Preporučite ovaj članak

4.00 (glasova: 1)