[ ibrkic @ 12.03.2007. 07:00 ] @
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.
[ pmiroslav @ 12.03.2007. 11:27 ] @
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.
[ Getsbi @ 12.03.2007. 11:28 ] @
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
[ ibrkic @ 12.03.2007. 13:06 ] @
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.
[ zikret @ 30.05.2007. 14:14 ] @
Moze li malo detaljnije o tome kako i sta se treba uraditi u vezi ovog problema...

ja sam uradio sve kako ste naveli ali mi se u drugom polju pojavi "Name?" ili greška

Ovo sam radio u reportu...ako je moguce...kod mene "ne"....
[ Getsbi @ 30.05.2007. 15:54 ] @
Da li si siguran da je isto ime text polja i ono koje pozivaš u funkciji Iznos_U_Slova().
[ zikret @ 31.05.2007. 09:52 ] @
Prvom text polju sam dao ime IZNOS ,

Da kazem, kod mene ni ovaj prvi primjer u zakacci ne radi, takav kakav i jeste....zaista...
[ Kiro @ 31.05.2007. 10:00 ] @
Pogledaj ovaj primjer!
[ zikret @ 31.05.2007. 10:12 ] @
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]
[ zikret @ 31.05.2007. 11:29 ] @
Hoce li mi iko pomoc???

Vjerujte da mi nijedna od ove dvije zakacke nerade...
To je cudo...ito samo kod mene...
[ Getsbi @ 31.05.2007. 12:02 ] @
Zakači tvoj primer pa ću da vidim gde grešiš.
[ Zidar @ 31.05.2007. 14:02 ] @
A da nema neka pokidana referenca?
[ zikret @ 01.06.2007. 10:19 ] @
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
[ srdjan ub @ 01.06.2007. 11:01 ] @
Citat:
Zidar: A da nema neka pokidana referenca?


Najverovatnije je Zidar u pravu.
[ zikret @ 01.06.2007. 11:06 ] @
a kako to rijesiti ili provjeriti?

Moram navesti da mi ne radi ni Wizard...

Inace, ne koristim sam ovaj racunar, tako da mi od prije tri dana ne radi dosta toga...Wizard i slicno....


Sta bi tu moglo biti rjesenje
[ srdjan ub @ 01.06.2007. 11:38 ] @
To je onda najverovatnije:
Odeš u Vba zatim Tools > References > pa proveriš da li ti je prvih 5 čekirano kao na slici, mada je ovde kod mene i DAO i ADO ref. a ne bi trebalo
Probaj pa javi
[ zikret @ 01.06.2007. 12:02 ] @
Isao sam i sve je ukljuceno, ali opet ne radi...
[ srdjan ub @ 01.06.2007. 15:48 ] @
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
[ mmarkoni @ 02.06.2007. 07:39 ] @
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
[ zikret @ 02.06.2007. 11:36 ] @
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...











[ ibrkic @ 07.06.2007. 07:58 ] @
Ako moze da pomogne,evo kako to radi kod mene.
[ zikret @ 07.06.2007. 08:06 ] @
Riješio sam problem...

Na najgluplji mogući način...

Jučer mi je pao sistem pri naglom nestanku energije (struje) i izbrisalo mi se dosta nstalacija, kao i veci do hradwerskih instalacija, tako da sam bio primoran dizati sitem, tako da sam usput i formatizirao HDD i evo sada sve radi...


Ljudi, hvala vam u svakom slučaju...
[ deha @ 20.09.2007. 21:57 ] @
Isprobao sam prioge koje su postavljeni ali imam jedan problem i moli za pomoc, Iznos u brojevima stampam na reportu na nasem/im jezicima, engleskom i trebam to isto uraditi na arapskom a funkcija bi se trebala razlikovati samo u brojevima 21 do 99 jer se kod njih govori za 21 (dvadest jedan) > (jedandvadeset) otprilike kao na slovenackom Molim za pomoc
[ deha @ 24.09.2007. 21:40 ] @
Isprobao sam priloge koje su postavljeni ali imam jedan problem i molim za pomoc, Iznos u brojevima stampam na reportu na nasem/im jezicima, engleskom i trebam to isto uraditi na arapskom a funkcija bi se trebala razlikovati samo u brojevima 21 do 99 jer se kod njih govori za 21 (dvadest jedan) > (jedandvadeset) otprilike kao na slovenackom

Molim za pomoc, mi neko ko se vise razumije pomogne da doradim funkiciju da za desetice ispisuje kao sto sam naprijed naveo ostali je sve isto

Hvala