• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Paracevir'de Bir Sorununu Nasıl Yaparız

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
 
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

kırmızı olan birbin ifadesini bin olarak değiştirkayıt et kullan kolay gelsin
 
Sayın Parametre bende mi bir yanlışlık var bilemedim. Dediğiniz gibi yaptım yine önünde bir var.Eğer müsaitseniz bir örnek verebilirseniz çok iyi olurç Kolay gelsin... iyi çalışmalar...
 
Sayın Nevzat Gürbüz,

Bir de aşağıdaki fonksiyonu deneyn.


Kod:
Function YTL(sayi)
    x = InStr(1, sayi, ",")
    If x > 0 Then
        Lira = yaz$(Mid(sayi, 1, x - 1)) & " TÜRK LIRASI "
        TempKurus = Mid(sayi, x + 1, 98)
        If Len(TempKurus) = 1 Then TempKurus = TempKurus * 10
        If Len(TempKurus) > 2 Then TempKurus = Mid(TempKurus, 1, 2)
        Kurus = yaz$(TempKurus) & "  KURUS"
    Else
        Lira = yaz$(sayi) & " TÜRK LIRASI "
    End If
    YTL = Lira & Kurus
End Function
'
Function yaz$(sayi)
Dim b$(9)
Dim y$(9)
Dim m$(4)
Dim v$(15)
Dim c$(3)
b$(0) = ""
b$(1) = "BİR"
b$(2) = "İKİ"
b$(3) = "ÜÇ"
b$(4) = "DÖRT"
b$(5) = "BEŞ"
b$(6) = "ALTI"
b$(7) = "YEDİ"
b$(8) = "SEKİZ"
b$(9) = "DOKUZ"
y$(0) = ""
y$(1) = "ON"
y$(2) = "YİRMİ"
y$(3) = "OTUZ"
y$(4) = "KIRK"
y$(5) = "ELLİ"
y$(6) = "ALTMIŞ"
y$(7) = "YETMIŞ"
y$(8) = "SEKSEN"
y$(9) = "DOKSAN"
m$(0) = "TRİLYON"
m$(1) = "MİLYAR"
m$(2) = "MİLYON"
m$(3) = "BİN"
m$(4) = ""
a$ = Str(sayi)
If Left$(a$, 1) = "" Then pozitif = 1 Else pozitif = 0
a$ = Right$(a$, Len(a$) - 1)
For x = 1 To Len(a$)
If (Asc(Mid$(a$, x, 1)) > Asc("9")) Or (Asc(Mid$(a$, x, 1)) < Asc("0")) Then GoTo hata
Next x
If Len(a$) > 15 Then GoTo hata
a$ = String(15 - Len(a$), "0") + a$
For x = 1 To 15
v(x) = Val(Mid$(a$, x, 1))
Next x
a$ = ""
For x = 0 To 4
c(1) = v((x * 3) + 1)
c(2) = v((x * 3) + 2)
c(3) = v((x * 3) + 3)
If c(1) = 0 Then
e$ = ""
ElseIf c(1) = 1 Then
e$ = "YÜZ"
Else
e$ = b$(c(1)) + "YÜZ"
End If
e$ = e$ + y$(c(2)) + b$(c(3))
If e$ <> "" Then e$ = e$ + m$(x)
If x = 3 And e$ = "BİRBİN" Then e$ = "BİN"
s$ = s$ + e$
Next x
If s$ = "" Then s$ = "SIFIR"
If pozitif = 0 Then s$ = "" + s$
yaz$ = s$
GoTo tamam
hata: yaz$ = "hata"
tamam:
End Function

İyi çalışmalar
 
İşte bu oldu elinize sağlık. Teşekkür ederim.
 
Geri
Üst