- Katılım
- 12 Temmuz 2007
- Mesajlar
- 19
- Excel Vers. ve Dili
- ACCESS 2003
Merhaba Arkadaşlar;
Access'te paracevir'de bir sorun var,bunu çözebilirmiyiz.Sorun Şu; rakam olarak 1250 TL yi BİNİKİYÜZELİ TL olması gerekirken BİRBİNİKİYÜZELİ TL olarak yapıyor. Diğer rakamlarda değil sadece 1000 den 1999 olan rakamlar arasında..Bu önüne konan biri nasıl kaldırabiliriz.
Public Function ParaCevir(Para)
Dim ParaStr As String
Dim Lira As String, Kurus As String
If Not IsNumeric(Para) Then GoTo SayiDegil
ParaStr = Format(Abs(Para), "0.00")
Lira = Left(ParaStr, Len(ParaStr) - 3)
Kurus = Right(ParaStr, 2)
ParaCevir = IIf(Para < 0, "Eksi ", "") & Cevir(Lira) & " TL " & Cevir(Kurus) & " KR"
Exit Function
SayiDegil:
ParaCevir = "GİRİLEN DEĞER SAYI DEĞİL!"
End Function
Private Function Cevir(SayiStr As String) As String
Dim Rakam(15)
Dim C(3), Sonuc, E
Birler = Array("", "BIR", "IKI", "UÇ", "DORT", "BES", "ALTI", "YEDI", "SEKIZ", "DOKUZ")
Onlar = Array("", "ON", "YIRMI", "OTUZ", "KIRK", "ELLI", "ALTMIS", "YETMIS", "SEKSEN", "DOKSAN")
Binler = Array("TRILYON", "MILYAR", "MILYON", "BIN", "")
SayiStr = String(15 - Len(SayiStr), "0") + SayiStr
For I = 1 To 15
Rakam(I) = Val(Mid$(SayiStr, I, 1))
Next I
Sonuc = ""
For I = 0 To 4
C(1) = Rakam(I * 3 + 1)
C(2) = Rakam(I * 3 + 2)
C(3) = Rakam(I * 3 + 3)
If C(1) = 0 Then
E = ""
ElseIf C(1) = 1 Then
E = "YUZ"
Else
E = Birler(C(1)) + "YUZ"
End If
E = E + Onlar(C(2)) + Birler(C(3))
If E <> "" Then E = E + Binler(I)
If (I = 3) And (E = "birbin") Then E = "BIN"
Sonuc = Sonuc + E
Next I
If Sonuc = "" Then Sonuc = "SIFIR"
Cevir = UCase(Mid(Sonuc, 1, 1)) + Mid(Sonuc, 2, Len(Sonuc) - 1)
End Function
Access'te paracevir'de bir sorun var,bunu çözebilirmiyiz.Sorun Şu; rakam olarak 1250 TL yi BİNİKİYÜZELİ TL olması gerekirken BİRBİNİKİYÜZELİ TL olarak yapıyor. Diğer rakamlarda değil sadece 1000 den 1999 olan rakamlar arasında..Bu önüne konan biri nasıl kaldırabiliriz.
Public Function ParaCevir(Para)
Dim ParaStr As String
Dim Lira As String, Kurus As String
If Not IsNumeric(Para) Then GoTo SayiDegil
ParaStr = Format(Abs(Para), "0.00")
Lira = Left(ParaStr, Len(ParaStr) - 3)
Kurus = Right(ParaStr, 2)
ParaCevir = IIf(Para < 0, "Eksi ", "") & Cevir(Lira) & " TL " & Cevir(Kurus) & " KR"
Exit Function
SayiDegil:
ParaCevir = "GİRİLEN DEĞER SAYI DEĞİL!"
End Function
Private Function Cevir(SayiStr As String) As String
Dim Rakam(15)
Dim C(3), Sonuc, E
Birler = Array("", "BIR", "IKI", "UÇ", "DORT", "BES", "ALTI", "YEDI", "SEKIZ", "DOKUZ")
Onlar = Array("", "ON", "YIRMI", "OTUZ", "KIRK", "ELLI", "ALTMIS", "YETMIS", "SEKSEN", "DOKSAN")
Binler = Array("TRILYON", "MILYAR", "MILYON", "BIN", "")
SayiStr = String(15 - Len(SayiStr), "0") + SayiStr
For I = 1 To 15
Rakam(I) = Val(Mid$(SayiStr, I, 1))
Next I
Sonuc = ""
For I = 0 To 4
C(1) = Rakam(I * 3 + 1)
C(2) = Rakam(I * 3 + 2)
C(3) = Rakam(I * 3 + 3)
If C(1) = 0 Then
E = ""
ElseIf C(1) = 1 Then
E = "YUZ"
Else
E = Birler(C(1)) + "YUZ"
End If
E = E + Onlar(C(2)) + Birler(C(3))
If E <> "" Then E = E + Binler(I)
If (I = 3) And (E = "birbin") Then E = "BIN"
Sonuc = Sonuc + E
Next I
If Sonuc = "" Then Sonuc = "SIFIR"
Cevir = UCase(Mid(Sonuc, 1, 1)) + Mid(Sonuc, 2, Len(Sonuc) - 1)
End Function