• 23 odgovora
  • 11.367 pregleda
Konvertovanje broja u tekstualni izraz 12.03.2007. u 07:00 · pre 238 meseci #1
Da li je moguce u Accessu da kada na fakturi imamo neki iznos,isti taj iznos u drugom text boxu se ispise i slovima.Ima nekih detalja na forumu u vezi ovog pitanja ,ali nema potpun odgovor tako da nisam mogao da se snadjem sa onim sto je dato.Zahvaljujem svakom ko moze da pomogne.
Re: Konvertovanje broja u tekstualni izraz 12.03.2007. u 11:27 · pre 238 meseci #2
Evo u prilogu ti šaljem jedan primjer.

Ovaj primjer je bio za konvertiranje novčanog iznosa izraženog u dolarima u tekst, a ja sam ga za svoje potreve preimenovau u kune.

Ti si to pogledaj pa izmjeni za svoje potrebe.
Re: Konvertovanje broja u tekstualni izraz 12.03.2007. u 11:28 · pre 238 meseci #3
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
Potpis
https://mzahorjanski.wixsite.com/mzahorjanski
https://www.fiverr.com/miroljubzahorja?up_rollout=true
https://www.youtube.com/@miroljubzahorjanski


Re: Konvertovanje broja u tekstualni izraz 12.03.2007. u 13:06 · pre 238 meseci #4
Zahvaljujem na poslatim odgovorima.Oba se mogu lako primeniti,s tim sto prvi zahteva izvesne modifikacije ,kako je i istaknuto.I jedna iskrena konstatacija:Zaista ste najbolji forum za access i uvek spremni da pomognete.
Pozdrav.
Re: Konvertovanje broja u tekstualni izraz 31.05.2007. u 10:12 · pre 236 meseci #9
Evo cim sam otvorio u polju gdje treba ispisati slovima pise #Name? ; a nista nisam radio sem sto sam otvorio...

Znaci nisam nista mijenjao, a pojavila mi se ta poruka u polju...


Da mozda nema veze o podesenosti racunara...jer cim ni jedna funkcija ne radi na mome racunaru...


Zamolio bih pomoc hitno...moram fakturisati a ne radi mi ta funkcija...pls


pozdrav

[Ovu poruku je menjao zikret dana 31.05.2007. u 11:26 GMT+1]
Potpis
https://kakosepise.info/
Re: Konvertovanje broja u tekstualni izraz 01.06.2007. u 10:19 · pre 236 meseci #13
EVO MENE HEHE

NECETE VJEROVATI STA MI SE DESAVA sa ovom funkcijom...

Jucer sam zavrsio s poslom i odlucio da svoj programcic ponesem kuci doradjivati, odnosno da pokusam kod kuce rjesiti problem sa ovom funkcijom. Kada sam na racunaru kod kuce otvorio svoj programcic ispostavilo se da sam dobro uradio sa vasom funkcijom i sve mi funkcionise. Ali, kada sam opet dosao jutros na posao, na ovome racunaru ne radi... opet se u polju 2 pojavi "#Name?" ili "Error". Ja stvarno ne znam do cega bi to moglo biti....na jednom racunaru radi a na ovome ne radi nikako....

Da li je to moguce?


Pozdrav
Potpis
https://kakosepise.info/
Re: Konvertovanje broja u tekstualni izraz 01.06.2007. u 15:48 · pre 236 meseci #18
A da probaš da isključis ili DAO, a posle i ActiveX Data Library, tj. obrnuto, mada mislim da u ovom slučaju nema veze.
Onda vidi gde se nalaze ove Reference, kopiraj ih kući pa ih donesi i ubaci na mesto gde se nalaze, moguće da ti je neka oštećena.
I još nešto može da ti se desi, sada sam video po tvom potpisu, ako ti je regional setings na "bosnian" moguće je da je i tu problem jer access ima neke bug-ove što se tiče bosanskog jezika. Probaj prvo ovo i izmeni ga.
Pozdrav

http://www.elitesecurity.org/t250498-big-problem-help
http://www.elitesecurity.org/t215688-0#1292165
Re: Konvertovanje broja u tekstualni izraz 02.06.2007. u 07:39 · pre 236 meseci #19
Ako izračunata kontrola ima ime koje već ima neka od kontrola iz računskog izraza onda će se u kontroli umesto rezultata pojaviti reč: #Error, ili #Name, znači treba proveriti nayive kontrola
Re: Konvertovanje broja u tekstualni izraz 02.06.2007. u 11:36 · pre 236 meseci #20
Sve sam uradio sem ovog kopiranja kod kuce i opet ne radi....

Sad mi je naumpalo, imao sam Office 2003 koji nije bio (valjda) potpun, pri svakom otvaranju accesa pojavljivala mi sa poruka sa opcijom Windows Update, tako da mi je vise dojadila i kliknuo sam na tu opciju. Poslije Updates-a pojavilo mi se ovo da neke funkcije ne rade kako treba....


Nadam se da ce ovo pomoci da se rjesi moj problem.

Pozdrav


Jos nesto: Primjer koji je gore zakacen "Broj_Slovima" ima manu....

Kada se pojavi prazno polje "Broj" prijavi gresku. Ili kada u formi postavim dugmic Add New Record i kliknem na njega, polje "Broj" postane prazno i tada mi prijavi grešku u funkciji (String ...).

Provjerite...











Potpis
https://kakosepise.info/
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme