AccessTr.neT

Tam Versiyon: Access Sayıyı Yazıya Çevirme
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2 3
Sizin işinize ne kadar yarar bilmiyorum ama ben bunu kullanıyorum. Sorguda, formda, raporda nerede kullanmak istersen orada.
Arkadaşlar bu modülün YTL ilk çıktığında tarafımdan yeni paraya göre Dolar ve Cent'li örneğinden düzeltilmiş ve kuruş hanesinde sıfır değeri varsa "O kuruş" yazmaması sağlanmış halini kullanıyorum. Modülü aşağıda veriyorum. Özellikle kuruş hanesindeki "Sıfır" ifadesinin nasıl engellendiğine bakarak aynı şeyi TL tarafında da yapabilirsiniz. Böylece "Sıfır YeniTl" ifadesi de yerini "" ifadesine terkeder. Daha önce eklenen örnek üzerindeki çalışamaya eski modül yerine bu modülü ekledim. Koddan anlamayan arkadaşlar da ordan inceler.

Kolay gelsin.

KODUN AÇIK HALİ:

Public Function ParaCevir(Para)
Dim ParaStr As String
Dim YTL As String, Kurus As String
Dim sifirsa As String
Dim ve As String
If Not IsNumeric(Para) Then GoTo SayiDegil

ParaStr = Format(Abs(Para), "0.00")

YTL = Left(ParaStr, Len(ParaStr) - 3)
Kurus = Right(ParaStr, 2)
If Cevir(Kurus) = "SIFIR" Then sifirsa = "" Else sifirsa = Cevir(Kurus) & " YENİ KURUŞ"
If Cevir(Kurus) = "SIFIR" Then ve = "" Else ve = " ve "
ParaCevir = IIf(Para < 0, "Eksi ", "") & Cevir(YTL) & " YENİTL " & ve & sifirsa

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("", "BİR", "İKİ", "ÜÇ", "DÖRT", "BEŞ", "ALTI", "YEDİ", "SEKİZ", "DOKUZ")
Onlar = Array("", "ON", "YİRMİ", "OTUZ", "KIRK", "ELLİ", "ALTMIŞ", "YETMİŞ", "SEKSEN", "DOKSAN")
Binler = Array("TRİLYON ", "MİLYAR ", "MİLYON ", "BİN ", "")

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 = "YÜZ"
Else
e = Birler(c(1)) + "YÜZ"
End If
e = e + Onlar(c(2)) + Birler(c(3))
If e <> "" Then e = e + Binler(i)
If (i = 3) And (e = "BİRBİN ") Then e = "BİN "
Sonuc = Sonuc + e
Next i

If Sonuc = "" Then Sonuc = "SIFIR"


Cevir = UCase(Mid(Sonuc, 1, 1)) + Mid(Sonuc, 2, Len(Sonuc) - 1)
End Function
Sn Demiral ben de kendi matemetiksel yaklaşımlarımla sayıyı yazıya çeviren bir kod yazmıştım ama sizin paylaşımınız çok daha pratik, teşekkürler. Kodu kendi programıma entegre ettim ancak bir konuda yardıma ihtiyacım var: Fatura yazdırıyorum. raporda ayrıntı kısmında verilerin sayısına göre kağıt dışına çıkıp azalabiliyor. Örneğin bir faturada bir kalem varsa alt toplam, fatura bedeli kdv ve yazı yukarı çıkıyor; 35 kalem mal varsa bir sonraki sayfaya geçiyor. İstediğim: faturaya göre bir klişe şeklinde yazdırayım .Birinci fatura biterse en alta genel toplam kdv filan yazmasın sadece sayfa toplamını yazssın, ikinci sayfaya yine fatura başlığı, kalan veriler ve genel toplam yazsın . Şimdiden teşekkürler.
(09/11/2008, 16:45)mehmetdemiral yazdı: [ -> ]Aslında celoy'un gönderdiği çalışmada form üzerinde kullanımı görülüyor. Raporda da aynı şekilde kullanılıyor. Ben size raporda kullanımını da ekledim aynı örnek içine. Fakat tabloda BIRIM_FIYATI alanında sayı değerleri olduğu için oradaki değeri okuttum. Bu arada sorguda kullanımı yoktur. Sorguda neden kullanalım ki? Bu işlem bir çıktı işlemidir. Ya ekrana, ya da kağıda göndermek yeter.
Kolay gelsin.

hocam kusura bakmayın ben bu işte biraz yeniyim bende yazacağım programda rakamı yazıya çevirmek istiyorum fakat sizin örnekleri de uyguladığımda yazıya çevrilecek kısımda #Ad şeklinde bir ifade beliriyor bu çalışmayı kaydettikten sonra oluyor.[Resim: n5MyzB] yardımcı olursanız sevinirim  http://hizliresim.com/n5MyzB
Sayın teomantzl,


Site Kuralları’nın 1.maddesinin b ve d bendlerini incelemenizi ve ilgili bu bendlere göre cevaplanmış ve kapatılmış bir konuda tekrar bir soru sormak yerine lütfen yeni bir konu açmaya özen gösteriniz.konunuz içerisinde buradaki konuya yönelik olarak bağlantı gösterebilirsiniz.teşekkürler.bilginize.

İyi çalışmalar,
Saygılar.
saygıdeğer hocalarım konu hakkında bişey sormak istiyorum. Yapmış olduğunuz kodu projeme uyguladım gayet düzgün çalışıyor. Tek sorunum , den sonraki kuruş kısmı 3 basamak olunca olunca onu yukarı yuvarlayıp yazıya çeviriyor.
Örneğin: 792.364,4150 'i YEDİYÜZDOKSANİKİBİN ALTIYÜZOTUZDÖRT TL ve KIRKİKİ KURUŞ olarak çeviriyor. kodda değiştirmem veya dosyalarda değiştirmem gereken bir yer varmı

ilginize teşekkürler
Sayfalar: 1 2 3