การแปลงตัวเลขเป็นตัวอักษร
กระทู้เก่าบอร์ด อ.Yeadram

 33,151   31
URL.หัวข้อ / URL
การแปลงตัวเลขเป็นตัวอักษร

ต้องการแปลงตัวเลขในรายงาน ของยอดรวมสุดท้าย ตย. เช่น รวมเป็นเงินทั้งสิ้น = 1,238.50 บาท แปลงเป็น>>> (หนึ่งพันสองร้อยสามสิบแปดบาทห้าสิบสตางค์)


ต้องเขียน Code อย่างไร? ช่วยชี้แนะด้วย จักขอบคุณยิ่ง

31 Reply in this Topic. Dispaly 2 pages and you are on page number 2

21 @R10487
พยายามก็ยังไม่ได้ซักที ไม่รู้ว่าทำผิดตรงไหนค่ะ
เนื่องจาก ช่องผลรวมสุดท้ายได้ทำ แบบ Groub By
Format เป็นแบบ Standard
- ส่วนใน Text Box จำนวนเงินตัวอักษร ได้กำหนดเป็น Currency แล้ว
- ได้จัดทำในตัว Report และ Form ก็ไม่ได้ทั้งสองที่เลย
ใครก็ได้ช่วยหน่อยนะคะ
22 @R10488
ขอบคุณมาก ทำสำเร็จแล้ว
23 @R10489
เมื่อทดลองทำได้ แต่โปรแกรมมันฟ้องว่า โค้ดเป็น Debug
ตรงแถบ Hilight สีเหลือง จะต้องแก้ไขอย่างไรดีคะ

24 @R10490
25 @R10491
ใช้โค้ดตามด้านล่างนี้ค่ะ แล้วมี Debeg
Function BahtText(ByVal sNum)
Dim sNumber , sDigit , sDigit10
Dim nLen , sWord , sWord2
Dim sByte , I , J

sNumber = Array("", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า")
sDigit = Array("", "สิบ", "ร้อย", "พัน", "หมื่น", "แสน")
sDigit10 = Array("", "สิบ", "ยี่สิบ", "สามสิบ", "สี่สิบ", "ห้าสิบ", "หกสิบ", "เจ็ดสิบ", "แปดสิบ", "เก้าสิบ")
sNum = Replace(FormatNumber(sNum, 2), ",", "")
nLen = Len(sNum)

If sNum = ".00" Then BahtText = "ศูนย์"
For I = 1 To nLen - 3
J = (15 + nLen - I) Mod 6
sByte = Mid(sNum, I, 1)
If sByte <> "0" Then
If J = 1 Then sWord = sDigit10(sByte) Else sWord = sNumber(sByte) & sDigit(J)
BahtText = BahtText & sWord
End If
If J = 0 And I <> nLen - 3 Then BahtText = BahtText & "ล้าน": BahtText = Replace(BahtText, "หนึ่งล้าน", "เอ็ดล้าน")
Next
If Left(sNum, 1) = "1" Then BahtText = Replace(BahtText, "เอ็ดล้าน", "หนึ่งล้าน")
If Left(sNum, 2) = "11" Then BahtText = Replace(BahtText, "สิบหนึ่งล้าน", "สิบเอ็ดล้าน")
If Len(BahtText) > 0 Then BahtText = BahtText & "บาท"
If nLen > 4 Then BahtText = Replace(BahtText, "หนึ่งบาท", "เอ็ดบาท")
sNum = Right(sNum, 2)
If sNum = "00" Then
BahtText = BahtText & "ถ้วน"
Else
If Left(sNum, 1) <> "0" Then BahtText = BahtText & sDigit10(Left(sNum, 1))
If Right(sNum, 1) <> "0" Then BahtText = BahtText & sNumber(Right(sNum, 1))
BahtText = BahtText & "สตางค์"
If Left(sNum, 1) <> "0" Then BahtText = Replace(BahtText, "หนึ่งสตางค์", "เอ็ดสตางค์")
End If
End Function
26 @R11294
ขอความกรุราช่วยบอกขั้นตอนแต่ละขั้นในการแปลงตัวเลขเป็นภาษาอังกฤษให้ด้วยเพราะทำไม่ป็นจริงๆ ขอบคุณ
27 @R11296
อ่านดูก็ไม่น่าจะมีปัญหานะครับ
ลองตรวจดูในหัวข้อ Display When ของสิ่งที่ต้องการเปลี่ยนสีหรือยังครับ ว่าเป็น Always นะครับ ถ้าเป็น Screen Only ก็ให้เปลี่ยน
28 @R11301
โทษทีครับ พิมพ์ผิดกระทู้
29 @R19173
คุณอายจัง ทำจำเงินนวนเงินเป็นตัวหนังสือทำไงครับ
30 @R19378
บังเอิญผ่านเข้ามา กำลังต้องการแปลงตัวเลขเป็นตัวหนังสือ แต่ยังทำไม่ได้เลยค่ะ
31 @R19384
ฟังก์ชั่นของคุณ ฝน ที่ (R00831) หน้าแรกของกระทู้นี้ใช้ได้เลยครับ ผมทดสอบดูแล้ว
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2490s