Naravno da je moguće. Im više funkcija koje rade na isti ili sličan način.
Prvo polje je "ukupno", recimo tipa tipa Currrency
U Control Source drugog polja postaviti =Iznos_U_Slova([ukupno]). Funkcija Iznos_U_Slova je dole. Nju smesti u neki globalni modul.
Code:
Public Function Iznos_U_Slova(IZNOS As Currency) As String
On Error GoTo Err_Iznos_U_Slova
Iznos_U_Slova = " "
IZNOS = Nz(IZNOS, 0)
If IZNOS > 999999999 Then Exit Function
If Not IZNOS > 0 Then Exit Function
Dim Slova(9, 1 To 9) As String
Dim Slovax(1, 1 To 9) As String
Dim Polje As String
Dim Tekuci_Znak As Integer
Dim Iznos_Str As String
Dim Duz_Str As Integer
Dim Duz_Ceo_Broj As Integer
Dim Raz_Str As String
Dim Ceo_Str As String
Dim Znak As String
Dim Znak_Iznad As String
Dim Znak_Ispod As String
Dim Index_X As Integer
Dim Index_Y As Integer
GoSub Puni_Slova
Iznos_Str = Format([IZNOS], "######0.00")
Duz_Str = Len(Iznos_Str)
Duz_Ceo_Broj = Duz_Str - 3
Ceo_Str = Left(Iznos_Str, Duz_Ceo_Broj)
Raz_Str = Right(Iznos_Str, 2)
Polje = "dinara i " & Raz_Str & "/100."
If Right(Ceo_Str, 1) = "1" Then Polje = "dinar i " & Raz_Str & "/100."
If Duz_Ceo_Broj > 1 Then Polje = IIf(Mid(Ceo_Str, Duz_Ceo_Broj - 1, 1) = "1", "dinara i " & Raz_Str & "/100.", Polje)
If IZNOS < 1 Then Iznos_U_Slova = "Nula" & Polje: Exit Function
Index_X = 0
For Tekuci_Znak = Duz_Ceo_Broj To 1 Step -1
Index_X = Index_X + 1
Znak_Iznad = 0
Znak_Ispod = 0
Znak = Mid(Ceo_Str, Tekuci_Znak, 1)
If Tekuci_Znak > 1 Then Znak_Iznad = Mid(Ceo_Str, (Tekuci_Znak - 1), 1)
If Tekuci_Znak < Duz_Ceo_Broj Then Znak_Ispod = Mid(Ceo_Str, (Tekuci_Znak + 1), 1)
GoSub Test
Next Tekuci_Znak
Iznos_U_Slova = Format(Mid(Polje, 1, 1), ">") & Mid(Polje, 2)
Exit Function
Test:
If Index_X = 1 And Znak_Iznad = 1 Then Return
If Index_X = 2 And Znak = 1 And Not Znak_Ispod = 0 Then GoSub Verzija_2: Return
If Index_X = 4 And Znak_Iznad = 1 Then Return
If Index_X = 5 And Znak = 1 And Not Znak_Ispod = 0 Then GoSub Verzija_2: Return
If Index_X = 7 And Znak_Iznad = 1 Then Return
If Index_X = 8 And Znak = 1 And Not Znak_Ispod = 0 Then GoSub Verzija_2: Return
GoSub Verzija_1
Return
Verzija_1:
If Index_X = 5 And Znak = 0 And Znak_Ispod = 0 And Znak_Iznad > 0 Then Polje = "hiljada" & Polje
If Index_X = 5 And Znak > 0 And Znak_Ispod = 0 Then Polje = "hiljada" & Polje
If Index_X = 8 And Znak = 0 And Znak_Ispod = 0 And Znak_Iznad > 0 Then Polje = "miliona" & Polje
If Index_X = 8 And Znak > 0 And Znak_Ispod = 0 Then Polje = "miliona" & Polje
For Index_Y = 1 To 9
If Znak = Index_Y Then Polje = Slova(Index_X, Index_Y) & Polje
Next Index_Y
Return
Verzija_2:
If Index_X = 5 And Znak = 1 Then Polje = "hiljada" & Polje
If Index_X = 8 And Znak = 1 Then Polje = "miliona" & Polje
For Index_Y = 1 To 9
If Znak_Ispod = Index_Y Then Polje = Slovax(1, Index_Y) & Polje
Next Index_Y
Return
Puni_Slova:
Slovax(1, 1) = "jedanaest"
Slovax(1, 2) = "dvanaest"
Slovax(1, 3) = "trinaest"
Slovax(1, 4) = "cetrnaest"
Slovax(1, 5) = "petnaest"
Slovax(1, 6) = "sestnaest"
Slovax(1, 7) = "sedamnaest"
Slovax(1, 8) = "osamnaest"
Slovax(1, 9) = "devetnaest"
Slova(1, 1) = "jedan"
Slova(1, 2) = "dva"
Slova(1, 3) = "tri"
Slova(1, 4) = "cetri"
Slova(1, 5) = "pet"
Slova(1, 6) = "sest"
Slova(1, 7) = "sedam"
Slova(1, 8) = "osam"
Slova(1, 9) = "devet"
Slova(2, 1) = "deset"
Slova(2, 2) = "dvadeset"
Slova(2, 3) = "trideset"
Slova(2, 4) = "cetrdeset"
Slova(2, 5) = "pedeset"
Slova(2, 6) = "sezdeset"
Slova(2, 7) = "sedamdeset"
Slova(2, 8) = "osamdeset"
Slova(2, 9) = "devedeset"
Slova(3, 1) = "sto"
Slova(3, 2) = "dvestotine"
Slova(3, 3) = "tristotine"
Slova(3, 4) = "cetristotine"
Slova(3, 5) = "petstotina"
Slova(3, 6) = "seststotina"
Slova(3, 7) = "sedamstotina"
Slova(3, 8) = "osamstotina"
Slova(3, 9) = "devetstotina"
Slova(4, 1) = "jednahiljada"
Slova(4, 2) = "dvehiljade"
Slova(4, 3) = "trihiljade"
Slova(4, 4) = "cetrihiljade"
Slova(4, 5) = "pethiljada"
Slova(4, 6) = "sesthiljada"
Slova(4, 7) = "sedamhiljada"
Slova(4, 8) = "osamhiljada"
Slova(4, 9) = "devethiljada"
Slova(5, 1) = "deset"
Slova(5, 2) = "dvadeset"
Slova(5, 3) = "trideset"
Slova(5, 4) = "cetrdeset"
Slova(5, 5) = "pedeset"
Slova(5, 6) = "sezdeset"
Slova(5, 7) = "sedamdeset"
Slova(5, 8) = "osamdeset"
Slova(5, 9) = "devedeset"
Slova(6, 1) = "sto"
Slova(6, 2) = "dvesto"
Slova(6, 3) = "tristo"
Slova(6, 4) = "cetristo"
Slova(6, 5) = "petsto"
Slova(6, 6) = "seststo"
Slova(6, 7) = "sedamsto"
Slova(6, 8) = "osamsto"
Slova(6, 9) = "devetsto"
Slova(7, 1) = "jedanmilion"
Slova(7, 2) = "dvamiliona"
Slova(7, 3) = "trimiliona"
Slova(7, 4) = "cetrimiliona"
Slova(7, 5) = "petmiliona"
Slova(7, 6) = "sestmiliona"
Slova(7, 7) = "sedammiliona"
Slova(7, 8) = "osammiliona"
Slova(7, 9) = "devetmiliona"
Slova(8, 1) = "deset"
Slova(8, 2) = "dvadeset"
Slova(8, 3) = "trideset"
Slova(8, 4) = "cetrdeset"
Slova(8, 5) = "pedeset"
Slova(8, 6) = "sezdeset"
Slova(8, 7) = "sedamdeset"
Slova(8, 8) = "osamdeset"
Slova(8, 9) = "devedeset"
Slova(9, 1) = "sto"
Slova(9, 2) = "dvesto"
Slova(9, 3) = "tristo"
Slova(9, 4) = "cetristo"
Slova(9, 5) = "petsto"
Slova(9, 6) = "seststo"
Slova(9, 7) = "sedamsto"
Slova(9, 8) = "osamsto"
Slova(9, 9) = "devetsto"
Return
Err_Iznos_U_Slova:
' If Vrsta_Greske(Err.Number, Err.Description) = 9 Then Exit Function
Resume
End Function