|
Microsoft Office Access |
|
|
Ispišite broj slovima u AccessuNivo:
Malo kombinacije nikad nije na odmet. Iako nismo to naznačili, mogli ste uočiti da VBA dodatak za jedan program radi i u drugom... Na stranici Knjige posetilaca dobili smo zahtev za postavljanje funkcije za Access, kojom se broj (npr. fakturna vrednost) ispisuje slovima. Koliko su programi paketa Microsoft Office kooperativni, pokazuje mogućnost da se davno objavljena funkcija za Excel može bez izmena upotrebiti ne samo u Accessu već i u ostalim programima Office paketa!
Uostalom, evo ponovljene funkcije:
Function slovima(broj)
If broj = 0 Then
slovima = "nula"
Exit Function
End If
ReDim imebr(9)
imebr(1) = "jedan"
imebr(2) = "dva"
imebr(3) = "tri"
imebr(4) = "četiri"
imebr(5) = "pet"
imebr(6) = "šest"
imebr(7) = "sedam"
imebr(8) = "osam"
imebr(9) = "devet"
rez = ""
celi = Int(broj)
dec = ((broj - celi) * 100) Mod 100
cbr = Str(celi)
duzina = 16 - Len(cbr)
cbroj = String(duzina, "0") & Right(cbr, Len(cbr) - 1)
i = 1
Do While i < 15
tric = Mid(cbroj, i, 3)
trojka = Val(tric)
If tric <> "000" Then
cs = Val(Mid(tric, 1, 1))
cd = Val(Mid(tric, 2, 1))
cj = Val(Mid(tric, 3, 1))
Select Case cs
Case 2
rez = rez & "dve"
Case Is > 2
rez = rez & imebr(cs)
End Select
Select Case cs
Case 1
rez = rez & "stotinu"
Case 2, 3, 4
rez = rez & "stotine"
Case Is > 4
rez = rez & "stotina"
End Select
If cj = 0 Then sl1 = "" Else sl1 = imebr(cj)
Select Case cd
Case 4
rez = rez & "eetr"
Case 6
rez = rez & "šez"
Case 5
rez = rez & "pe"
Case 9
rez = rez & "deve"
Case 2, 3, 7, 8
rez = rez & imebr(cd)
Case 1
sl1 = ""
Select Case cj
Case 0
rez = rez & "deset"
Case 1
rez = rez & "jeda"
Case 4
rez = rez & "četr"
Case Else
rez = rez & imebr(cj)
End Select
If cj > 0 Then rez = rez & "naest"
End Select
If cd > 1 Then rez = rez & "deset"
If (i = 4 Or i = 10) And cd <> 1 Then
If cj = 1 Then
sl1 = "jedna"
ElseIf cj = 2 Then
sl1 = "dve"
End If
End If
rez = rez & sl1
Select Case i
Case 1
rez = rez & "bilion"
If cj > 1 Or cd = 1 Then rez = rez & "a"
Case 4
rez = rez & "milijard"
If ((trojka Mod 100) > 11 And _
(trojka Mod 100) < 19) Then
rez = rez & "i"
ElseIf cj = 1 Then
rez = rez & "a"
ElseIf cj > 4 Or cj = 0 Then
rez = rez & "i"
ElseIf cj > 1 Then
rez = rez & "e"
End If
Case 7
rez = rez & "milion"
If ((trojka Mod 100) > 11 And _
(trojka Mod 100) < 19) Or cj <> 1 Then
rez = rez & "a"
End If
Case 10
rez = rez & "hiljad"
If ((trojka Mod 100) > 11 And _
(trojka Mod 100) < 19) Or cj = 1 Then
rez = rez & "a"
ElseIf trojka = 1 Then
rez = rez & "u"
ElseIf cj > 4 Or cj = 0 Then
rez = rez & "a"
ElseIf cj > 1 Then
rez = rez & "e"
End If
End Select
End If
i = i + 3
Loop
slovima = rez & Str(dec) & "/100"
End Function
Funkciju iz priloga prenesite u novi ili postojeći modul Accessa. Da biste isprobali rad funkcije, na nekoj formi ili izveštaju postavite polje po imenu Iznos, formatirajte ga kao broj sa dve decimale, a zatim u njega upišite neku brojnu vrednost, npr. 123,45. Dodajte još jedno polje i u njega upišite = Slovima ([Iznos]) nakon čega će se tu pojaviti tekstualni izraz brojne vrednosti. U praksi, da ne bi došlo do greške, dobro je da polje koje ćete prikazati slovima najpre inicijalizujete na nulu. Funkcija radi u počev od Accessa 97, jer zahteva VBA.
|
|
Vrh stranice Prethodna stranica Naslovna strana Mapa sajta Pretraga |
| AFORIZAM ZA DANAS | OVIH DANA SLUŠAMO... |
| Copyright © Praktikum na Webu, 2000-2010; Valinor Design; sva prava pridržana. |