Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako naterati access da broj koji je ispisan u text box napise slovima

[es] :: Access :: Kako naterati access da broj koji je ispisan u text box napise slovima

Strane: 1 2

[ Pregleda: 8044 | Odgovora: 22 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dejanmaksimovic1976
Dejan Maksimović
graficki dizajner, brendiranje vozila,
priprema stampe, fotograf,
pecatorezac...
Velika Plana

Član broj: 108361
Poruke: 177
91.150.76.*



+3 Profil

icon Kako naterati access da broj koji je ispisan u text box napise slovima27.08.2008. u 18:13 - pre 189 meseci
Naime, potrebno mi je da mi cena koja je konacna i koja se nalazi kao suma odredjenih kolona bude ispisana slovima u formi ili u raportu.
Dejan Maksimovic
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2828



+45 Profil

icon Re: Kako naterati access da broj koji je ispisan u text box napise slovima27.08.2008. u 18:36 - pre 189 meseci
Ima funkcija postavljena na forumu. Pogledaj bazu znanja: http://www.elitesecurity.org/t52046-0#385077
Korišćenje polja za pretragu foruma bi ti dobro došla.
 
Odgovor na temu

dejanmaksimovic1976
Dejan Maksimović
graficki dizajner, brendiranje vozila,
priprema stampe, fotograf,
pecatorezac...
Velika Plana

Član broj: 108361
Poruke: 177
91.150.76.*



+3 Profil

icon Re: Kako naterati access da broj koji je ispisan u text box napise slovima27.08.2008. u 23:13 - pre 189 meseci
Getsbi nije mi bas najjasnije sta se desava i kad treba da pozovem tu funkciju i gde ce da je ispise. Iskopirao sam kod napravio modul ali nista se ne desava.
Dejan Maksimovic
 
Odgovor na temu

Catch 22

Član broj: 148083
Poruke: 6176
93.86.84.*



+21 Profil

icon Re: Kako naterati access da broj koji je ispisan u text box napise slovima27.08.2008. u 23:58 - pre 189 meseci
Primer:
-Funkcija za ispis broja slovima se zove SLOVIMA

-Na reportu imaš neki unbound text box koji se zove TxtSLV i u kome će se pojavljivati ispis broja slovima
-Takođe imaš i text box koji se zove SubTotal2 u kome se izračunava nekakav međuzbir, tj. tvoj broj koji želiš da prikažeš slovima...

Negde u kodu pozivaš ispis rezultata iz SubTotal2 slovima u TxtSLV:
Code:

Me.TxtSLV = "Slovima =" & SLOVIMA(Me.SubTotal2)

 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2828



+45 Profil

icon Re: Kako naterati access da broj koji je ispisan u text box napise slovima28.08.2008. u 06:21 - pre 189 meseci
Evo još jedan način. Iskopiraj tu funkciju u jedan objekat tipa Modules, kako bi bila javna i dostupna za više izveštaja ili formi. Recimo ovako:

Public Function slovima(broj As Currency) As String.......End Function

Snimi i izkompajliraj. Ovo je najčešće potrebno na izveštaju, a možda i na fomri. Recimo da na izveštaju imaš neki texst box koji se zove "Ukupno" (Name = Ukupno) i koji želiš da napišeš slovima. Ispod tog text boxa napraviš novi text box, čije je ime nebitno za ovaj deo priče i u Control Source tog novog text boxa napišeš:

=Slovima(Ukupno).

Znači u zagradi navedeš kao parametar eksplicitan naziv tvog text boxa koji sadrži brojčanu vrednost za iskazivanje slovima.
 
Odgovor na temu

PR.VB.OR.00.MS.CR.01
Developer Programmer
Stolica ispred RACUNARA

Član broj: 185542
Poruke: 22
*.teol.net.



Profil

icon Re: Kako naterati access da broj koji je ispisan u text box napise slovima28.08.2008. u 07:56 - pre 189 meseci
Mogu ti pomoci na ovaj nacin, imam uradjenu funkciju. E ovako ovo stavi u Modul (modPretvaranjebrojauTekst)

Code:

'****************************************************************************
'                 FUNKCIJA ZA PRETVARANJE BROJA U TEKST
'****************************************************************************
Private varCifreJedinice As Variant
Private varCifreDoDvadeset As Variant
Private varCifreDesetice As Variant
Private varCifreStotine As Variant

Public Function PretvoriBrojUTekst(ByVal dblUlazniBroj As Double) As String
   Dim strCifra As String
   Dim intDuzinaCifre As Integer
   Dim intBrojTrojki As Integer
   Dim intOstatak As Integer
   Dim intBrojac As Integer
   Dim strMINUS As String
   
   varCifreJedinice = Array("", "jedan", "dva", "tri", "èetiri", "pet", _
                             "šest", "sedam", "osam", "devet")
   
   varCifreDoDvadeset = Array("deset", "jedanaest", "dvanaest", "trinaest", _
                             "èetrnaest", "petnaest", "šesnaest", "sedamnaest", "osamnaest", "devetnaest")
   
   varCifreDesetice = Array("", "", "dvadeset", "trideset", "èetrdeset", _
                             "pedeset", "šezdeset", "sedamdeset", "osamdeset", "devedeset")
   
   varCifreStotine = Array("", "sto", "dvesto", "tristo", "èetirsto", "petsto", _
                            "šesto", "sedamsto", "osamsto", "devetsto")
   
   If dblUlazniBroj < 0 Then
      strMINUS = "-"
      dblUlazniBroj = Abs(dblUlazniBroj)
   End If
   
   PretvoriBrojUTekst = ""
   strCifra = Format(dblUlazniBroj, "###################.00")
   strCifra = Left(strCifra, Len(strCifra) - 3)
   intDuzinaCifre = Len(strCifra)
   intOstatak = intDuzinaCifre Mod 3
   intBrojTrojki = (intDuzinaCifre / 3) - ((intDuzinaCifre Mod 3) / 3)
   
   If dblUlazniBroj < 1000000000000# Then
       If intOstatak > 0 Then
           PretvoriBrojUTekst = OdrediTekstPodcifre(Left(strCifra, intOstatak), intBrojTrojki)
           strCifra = Right(strCifra, Len(strCifra) - intOstatak)
       End If
       For intBrojac = intBrojTrojki To 0 Step -1
           PretvoriBrojUTekst = PretvoriBrojUTekst & OdrediTekstPodcifre(Left(strCifra, 3), intBrojac - 1)
           If Len(strCifra) > 3 Then
               strCifra = Right(strCifra, Len(strCifra) - 3)
           End If
       Next
   Else
   End If
   
   strCifra = Format(dblUlazniBroj, "###################.00")
   strCifra = Right(strCifra, 2)
   
   If Len(PretvoriBrojUTekst) > 0 Then
       'PretvoriBrojUTekst = UCase(Left(PretvoriBrojUTekst, 1)) & Right(PretvoriBrojUTekst, Len(PretvoriBrojUTekst) - 1)
       If (Right(PretvoriBrojUTekst, 5) = "Jedan") Or (Right(PretvoriBrojUTekst, 5) = "jedan") Then
           PretvoriBrojUTekst = PretvoriBrojUTekst & " " & strCifra & "/100."
       Else
           PretvoriBrojUTekst = PretvoriBrojUTekst & " " & strCifra & "/100."
       End If
   End If
End Function

Private Function OdrediTekstPodcifre(ByVal strPodcifra As String, _
                                     intVelicina As Integer) As String
   
   Dim strTekst As String
   
   OdrediTekstPodcifre = ""
   
   If Val(strPodcifra) <> 0 Then
       strTekst = OdrediTekst(strPodcifra)
       
       Select Case intVelicina
           Case 0
           
               OdrediTekstPodcifre = strTekst
               
           Case 1
               
               'Slucaj za 11000,12000,13000,14000
               If strPodcifra = "11" Or strPodcifra = "12" Or strPodcifra = "13" Or strPodcifra = "14" Then
                  
                  OdrediTekstPodcifre = strTekst
                  OdrediTekstPodcifre = OdrediTekstPodcifre & "hiljada"
               
               Else
                  
                  'korekcija za slucaj za 2000, 22000, 32000 ....
                  If Right(strPodcifra, 1) = "2" Then
                     OdrediTekstPodcifre = Left(strTekst, Len(strTekst) - 1) & "e"
                  Else
                     OdrediTekstPodcifre = strTekst
                  End If
               
                  Select Case Right(strPodcifra, 1)
                     'Slucaj za 21000, 31000 ....
                     Case "1"
                        OdrediTekstPodcifre = Left(OdrediTekstPodcifre, Len(OdrediTekstPodcifre) - 2) & "nahiljada"
                     Case "2", "3", "4"
                        OdrediTekstPodcifre = OdrediTekstPodcifre & "hiljade"
                     Case Else
                        OdrediTekstPodcifre = OdrediTekstPodcifre & "hiljada"
                  End Select
               
                  'Slucaj za 1000
                  If Val(strPodcifra) = 1 Then
                     OdrediTekstPodcifre = "hiljadu"
                  End If
                  
               End If
           Case 2
               OdrediTekstPodcifre = strTekst & "miliona"
               If Val(strPodcifra) = 1 Then
                   OdrediTekstPodcifre = "milion"
               End If
           Case 3
               If Val(strPodcifra) = 1 Then
                   OdrediTekstPodcifre = "milijardu"
                   Exit Function
               End If
               If Val(Right(strPodcifra, 2)) > 5 And Val(Right(strPodcifra, 2)) < 21 Then
                   OdrediTekstPodcifre = strTekst & "milijardi"
                   Exit Function
               End If
               If Right(strPodcifra, 1) = "2" Then
                   OdrediTekstPodcifre = Left(strTekst, Len(strTekst) - 1) & "e"
               Else
                   OdrediTekstPodcifre = strTekst
               End If
               Select Case Right(strPodcifra, 1)
                   Case "1"
                       OdrediTekstPodcifre = Left(OdrediTekstPodcifre, Len(OdrediTekstPodcifre) - 2) & "namilijarda"
                   Case "2", "3", "4"
                       OdrediTekstPodcifre = OdrediTekstPodcifre & "milijarde"
                   Case Else
                       OdrediTekstPodcifre = OdrediTekstPodcifre & "milijardi"
               End Select
               If Val(strPodcifra) = 1 Then
                   OdrediTekstPodcifre = "milijardu"
               End If
       End Select
   End If
End Function

Private Function OdrediTekstDoSto(strPodcifra As String) As String
   OdrediTekstDoSto = ""
   
   Select Case Val(strPodcifra)
       Case 1 To 9
           OdrediTekstDoSto = varCifreJedinice(Val(strPodcifra))
       Case 10 To 19
           OdrediTekstDoSto = varCifreDoDvadeset(Val(strPodcifra) - 10)
       Case 20 To 99
           OdrediTekstDoSto = varCifreDesetice(Val(Left(strPodcifra, 1))) & varCifreJedinice(Val(Right(strPodcifra, 1)))
   End Select
End Function

Private Function OdrediTekst(strPodcifra As String) As String
   OdrediTekst = ""
   Select Case Val(strPodcifra)
       Case 1 To 99
           OdrediTekst = OdrediTekstDoSto(Val(strPodcifra))
       Case 100 To 999
           OdrediTekst = varCifreStotine(Val(Left(strPodcifra, 1))) & OdrediTekstDoSto(Val(Right(strPodcifra, 2)))
   End Select
   
End Function


Znaci onda u formi pises kod npr. ako imas Text1 u kome upisujes broj i Label1 u kom ti treba ispisati rijecima pisi ovaj kod:

Code:

Label1.Caption = PretvoriBrojUTekst(Text1.Text)


Mislim da ce ti ovo pomoci, mozes malo prouciti kod i samo pici napred.

Pozdrav!!!
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
79.101.255.*



+41 Profil

icon Re: Kako naterati access da broj koji je ispisan u text box napise slovima28.08.2008. u 09:21 - pre 189 meseci
Bilo bi lepo (a i kulturno) da navedes originalnog autora ;)

To je kao neki red u ovom poslu.
 
Odgovor na temu

PR.VB.OR.00.MS.CR.01
Developer Programmer
Stolica ispred RACUNARA

Član broj: 185542
Poruke: 22
*.teol.net.



Profil

icon Re: Kako naterati access da broj koji je ispisan u text box napise slovima28.08.2008. u 09:40 - pre 189 meseci
@goranvuc
Znam da je fer, ali ovo vec imam oko godinu dana i stvarno ne znam ko je autor, skinuo sam sa neta.
Nisam mislio nista lose, niti sam napisao da sam ja ovo uradio, ali da znam ko je NARAVNO da bi napisao.
Pozdrav
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
79.101.255.*



+41 Profil

icon Re: Kako naterati access da broj koji je ispisan u text box napise slovima28.08.2008. u 10:10 - pre 189 meseci
Pa ja sam to objavio na ovom forumu 18.08.2006. (na zalost temu je neko obrisao, ili se izgubila u jednom od rusenja baze ES-a, ili ja ne mogu da je nadjem) tako da ne mogu da te uputim na originalan post.

Eto sta je internet, cim nesto objavis to postaje "drustvena svojina" Nisam mislio da te kritikujem, nemoj pogresno da me shvatis, drago mi je sto to koristi i drugima.
 
Odgovor na temu

PR.VB.OR.00.MS.CR.01
Developer Programmer
Stolica ispred RACUNARA

Član broj: 185542
Poruke: 22
*.teol.net.



Profil

icon Re: Kako naterati access da broj koji je ispisan u text box napise slovima28.08.2008. u 10:39 - pre 189 meseci
@goranvuc
Naravno, i ja bi sigurno tako reagovao kao ti, ali ti kazem stvarni nisam znao.
ALI SADA ZNAM
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2828



+45 Profil

icon Re: Kako naterati access da broj koji je ispisan u text box napise slovima28.08.2008. u 11:14 - pre 189 meseci
Pošto smo saznali da je kolega goranvuc autor, a i da se ne bi ponovo zagubila dodaću tu funkciju u Top temu "Access Baza Znanja". Ta tema je inače otključana i možete slobodno da dodate svoja rešenja koja smatrate da su opšteg karaktera i mogu drugima pomoći.
 
Odgovor na temu

dejanmaksimovic1976
Dejan Maksimović
graficki dizajner, brendiranje vozila,
priprema stampe, fotograf,
pecatorezac...
Velika Plana

Član broj: 108361
Poruke: 177
91.150.76.*



+3 Profil

icon Opet Kako naterati access da broj koji je ispisan u text box napise slovima29.08.2008. u 22:17 - pre 189 meseci
Posto mi pokazuje da je tema zakljucana a ja idalje nemogu da se snadjem da posaljem ja malu bazu za primer pa nek neko to ubudzi da vidim gde gresim.
Dejan Maksimovic
Prikačeni fajlovi
 
Odgovor na temu

miso.miso
Backa

Član broj: 184452
Poruke: 28
*.tippnet.co.rs.



Profil

icon Re: Opet Kako naterati access da broj koji je ispisan u text box napise slovima30.08.2008. u 00:01 - pre 189 meseci
Promeni naziv Modula da se ne zove SLOVIMA stavi bilo sta drugo.

evo kod na formi
Code:


Private Sub SubTotal2_LostFocus()
Me.TxtSLV = SLOVIMA(Me.SubTotal2)

End Sub


u SubTotal2 unesi broj i ispisace ga slovima

Poz
 
Odgovor na temu

dejanmaksimovic1976
Dejan Maksimović
graficki dizajner, brendiranje vozila,
priprema stampe, fotograf,
pecatorezac...
Velika Plana

Član broj: 108361
Poruke: 177
91.150.76.*



+3 Profil

icon Re: Kako naterati access da broj koji je ispisan u text box napise slovima30.08.2008. u 15:29 - pre 189 meseci
Izbacuje mi gresku:
Compile error:
Expected variable or procedure, not module.
Dejan Maksimovic
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2828



+45 Profil

icon Re: Kako naterati access da broj koji je ispisan u text box napise slovima30.08.2008. u 16:48 - pre 189 meseci
U prvo polje ukucaj broj sa zarezom ispred decimala. na enter ćeš dobiti ispis slovima u drugom text boxu.

Savet: U VBA uvek drži ključeno Option explicit. Tako ćeš imati manje neugodnosti kad ne deklarišeš varijable. Bićeš upozoren već kod kompajliranja.

Prikačeni fajlovi
 
Odgovor na temu

Catch 22

Član broj: 148083
Poruke: 6176
79.101.198.*



+21 Profil

icon Re: Kako naterati access da broj koji je ispisan u text box napise slovima30.08.2008. u 16:54 - pre 189 meseci
Evo ti nazad tvoja baza sa urađenim primerom.
Ako ti se pojavljuje u vrhu prozora Security Warning kao na slici, zatvori otvorenu formu, klikni na Options i potvrdi kao na slici dole




Prikačeni fajlovi
 
Odgovor na temu

dejanmaksimovic1976
Dejan Maksimović
graficki dizajner, brendiranje vozila,
priprema stampe, fotograf,
pecatorezac...
Velika Plana

Član broj: 108361
Poruke: 177
91.150.76.*



+3 Profil

icon Re: Kako naterati access da broj koji je ispisan u text box napise slovima30.08.2008. u 17:06 - pre 189 meseci
Thanks ljudi. Samo da jos skockam sve pa saljem na forum sta sam napravio komplet. Moyda nekome posluzi.
Dejan Maksimovic
 
Odgovor na temu

maliradoznalac
radoznalac, okolina

Član broj: 215676
Poruke: 278
*.dynamic.stcable.net.



+10 Profil

icon Re: Kako naterati access da broj koji je ispisan u text box napise slovima22.03.2009. u 23:15 - pre 182 meseci
jel moze mala pomoc oko implementacije ovog koda ali na report

tacnije, u pitanju je subreport u kojem se nalazi rekapitulacija sa fakture (osnovica, popust, pdv, ukupno za naplatu...)
probao sam da stavim na OnOpen
Code:
Me.txt_slovima = "Slovima: " & SLOVIMA(Me.SumOfukupnosapdv)

ali mi izbaci gresku

Run-time error '2427'
You entered an expression that has no value

u stane izvrsenje na

Code:
If broj = 0 Then rez = "nula"


odnosno stane na prvom redu koda


nakon zaustavljanja debuger-a uopste ne prikaze subreport

da li je OnOpen los izbor?
da li nesto nisam definisao kako treba??

Kod je kopiran iz primera koji je okacio Catch22 koji radi ali na formi.

okacio bih celu bazu ali je 24MB velika, pa cu probati da opsem sve sto je bitno za razumevanje problema
 
Odgovor na temu

Catch 22

Član broj: 148083
Poruke: 6176
79.101.198.*



+21 Profil

icon Re: Kako naterati access da broj koji je ispisan u text box napise slovima22.03.2009. u 23:51 - pre 182 meseci
^ Probaj da staviš umesto OnOpen da procedura iz koje pozivaš funkciju SLOVIMA bude OnFormat... sad sam gledao neke svoje primere za izveštaje fakture / profakture i to kod mene stoji u sekciji OnFormat...
Mada ne verujem da ćeš time rešiti problem. Možda nisi uključio potrebne reference u VBA? Kompajlirao si kod i snimio novo stanje pre testiranja?

Evo kako to izgleda u jednom primeru koji ja koristim u nekoj aplikaciji
Code:
Private Sub ReportFooter_Format(Cancel As Integer, FormatCount As Integer)

Dim strLine1 As String, strLine2 As String, _
strSLOVIMA As String, strZAUPLATU As String

    strLine1 = Forms!PRODAJA.PRODAJA_POREZ1_Label.Caption
    strLine2 = Forms!PRODAJA.PRODAJA_POREZ1 & "%"


    Me.lblPromPorez = strLine1 & " " & strLine2
    
    
    Me.RabatTotal.Visible = Forms!PRODAJA.PRODAJA_RABAT > 0
    Me.LblRabat.Visible = Me.RabatTotal.Visible
    
    
    
    Me.PosPorez.Visible = Forms![PRODAJA].PRODAJA_POREZ2 > 0
    Me.lblPosPorez.Visible = Me.PosPorez.Visible
    If Forms![PRODAJA].[PRODAJA_BROJ_IZJAVE] <> "" Then
                
            strZAUPLATU = Format(Me!SubTotal2, "Standard")
            strSLOVIMA = SLOVIMA(Me.SubTotal2)
            Me!OsnovBezPoreza.Visible = True
            Me!Uslovi.Visible = False
        Else
            strZAUPLATU = Format(Me.TotalPorez, "Standard")
            strSLOVIMA = SLOVIMA(Me!TotalPorez)
        
End If
           Me.TxtZAUPLATU = strZAUPLATU
           Me.TxtSLOVIMA = "Slovima =" & strSLOVIMA
End Sub

 
Odgovor na temu

maliradoznalac
radoznalac, okolina

Član broj: 215676
Poruke: 278
*.dynamic.stcable.net.



+10 Profil

icon Re: Kako naterati access da broj koji je ispisan u text box napise slovima23.03.2009. u 06:44 - pre 182 meseci
jeeee

ne znam kako i zasto ali je proradilo :-)

ubacio sam u report footer od subreporta, i stavio na onFormat isti kod i proradilo

hvala Catch22
 
Odgovor na temu

[es] :: Access :: Kako naterati access da broj koji je ispisan u text box napise slovima

Strane: 1 2

[ Pregleda: 8044 | Odgovora: 22 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.