Cách sửa hàm Đọc số ra chữ

Liên hệ QC

chieutim2003

Thành viên mới
Tham gia
21/8/07
Bài viết
2
Được thích
0
Tôi sưu tầm được một hàm con giúp đọc số tiền ra Việt Nam đồng. Tôi đã ứng dụng được trong các chương trình Access. Tuy nhiên, chương trình này không đọc được số lớn hơn 2.147.483.647 (giới hạn của kiểu dữ liệu khai báo "Long". Mặc dù tôi đã khai lại kiểu dữ liệu "Long" thành "Double" nhưng chương trình vẫn báo lỗi số 6 (Dữ liệu quá lớn).
Mong các bạn chỉ giáo cách chỉnh lại hàm này để có thể đọc được số lớn hơn.
Cám ơn !
 
Tôi gui ban một mã Cohde cuả một người bạn dùng thử xem:
[FONT=.VnTime]Function VND(SoTien)[/FONT]
[FONT=.VnTime] If SoTien = 0 Then[/FONT]
[FONT=.VnTime] Ketqua = "®ång"[/FONT]
[FONT=.VnTime] Else[/FONT]
[FONT=.VnTime] If Abs(SoTien) > 999999999999.99 Then[/FONT]
[FONT=.VnTime] Ketqua = "Sè nµy qu¸ lín" 'Soá naøy quaù Lôùn[/FONT]
[FONT=.VnTime] Else[/FONT]
[FONT=.VnTime] If SoTien < 0 Then[/FONT]
[FONT=.VnTime] Ketqua = "Trõ"[/FONT]
[FONT=.VnTime] Else[/FONT]
[FONT=.VnTime] Ketqua = Space(0)[/FONT]
[FONT=.VnTime] End If[/FONT]
[FONT=.VnTime] RR = Space(0)[/FONT]
[FONT=.VnTime] Dem = RR[/FONT]
[FONT=.VnTime] B = Space(1)[/FONT]
[FONT=.VnTime] Tien = Format(Abs(SoTien), "###########0.00")[/FONT]
[FONT=.VnTime] Tien = Right(Space(12) + Tien, 15)[/FONT]
[FONT=.VnTime] Doc = Space(0)[/FONT]
[FONT=.VnTime] Doc = Doc + "tr¨m m&shy;¬i tû tr¨m m&shy;¬i triÖu "[/FONT]
[FONT=.VnTime] Doc = Doc + "tr¨m m&shy;¬i ngµn tr¨m m&shy;¬i ®ång "[/FONT]
[FONT=.VnTime] Doc = Doc + "tr¨m m&shy;¬i ch½n "[/FONT]
[FONT=.VnTime] Dem = Dem + "mét hai ba bèn n¨m s¸u b¶y t¸m chÝn"[/FONT]
[FONT=.VnTime] For i = 1 To 5[/FONT]
[FONT=.VnTime] Nhom = Mid(Tien, i * 3 - 2, 3)[/FONT]
[FONT=.VnTime] If Nhom <> Space(3) Then[/FONT]
[FONT=.VnTime] Select Case Nhom[/FONT]
[FONT=.VnTime] Case "000"[/FONT]
[FONT=.VnTime] If i = 4 Then[/FONT]
[FONT=.VnTime] Chu = "®ång "[/FONT]
[FONT=.VnTime] Else[/FONT]
[FONT=.VnTime] Chu = RR[/FONT]
[FONT=.VnTime] End If[/FONT]
[FONT=.VnTime] Case ",00"[/FONT]
[FONT=.VnTime] Chu = "ch½n"[/FONT]
[FONT=.VnTime] Case Else[/FONT]
[FONT=.VnTime] X = Left(Nhom, 1)[/FONT]
[FONT=.VnTime] Y = Mid(Nhom, 2, 1)[/FONT]
[FONT=.VnTime] Z = Right(Nhom, 1)[/FONT]
[FONT=.VnTime] Chu = RR[/FONT]
[FONT=.VnTime] For J = 1 To 3[/FONT]
[FONT=.VnTime] Dich = RR[/FONT]
[FONT=.VnTime] S = Val(Mid(Nhom, J, 1))[/FONT]
[FONT=.VnTime] If S > 0 Then[/FONT]
[FONT=.VnTime] Dich = Trim(Mid(Dem, S * 5 - 4, 5)) + B + Trim(Mid(Doc, (i - 1) * 18 + J * 6 - 5, 6)) + B[/FONT]
[FONT=.VnTime] End If[/FONT]
[FONT=.VnTime] Select Case J[/FONT]
[FONT=.VnTime] Case 2 And S = 1[/FONT]
[FONT=.VnTime] Dich = "m&shy;êi "[/FONT]
[FONT=.VnTime] Case 3 And S = 0 And Nhom <> Space(2) + "0"[/FONT]
[FONT=.VnTime] Dich = Trim(Mid(Doc, (i - 1) * 18 + J * 6 - 5, 6)) + B[/FONT]
[FONT=.VnTime] Case 3 And S = 5 And Y <> B And Y <> "0"[/FONT]
[FONT=.VnTime] Dich = "l" + Mid(Dich, 2)[/FONT]
[FONT=.VnTime] Case 2 And S = 0 And Z <> "0"[/FONT]
[FONT=.VnTime] If (X >= "1" And X <= "9") Then[/FONT]
[FONT=.VnTime] Dich = "lÎ "[/FONT]
[FONT=.VnTime] Else[/FONT]
[FONT=.VnTime] If X = "0" And Y = "0" Then[/FONT]
[FONT=.VnTime] Dich = "kh«ng lÎ "[/FONT]
[FONT=.VnTime] End If[/FONT]
[FONT=.VnTime] End If[/FONT]
[FONT=.VnTime] Case 1 And S = 0 And Y <> "0" And Z <> "0"[/FONT]
[FONT=.VnTime] If X = "0" Then[/FONT]
[FONT=.VnTime] Dich = "kh«ng tr¨m "[/FONT]
[FONT=.VnTime] End If[/FONT]
[FONT=.VnTime] End Select[/FONT]
[FONT=.VnTime] Chu = Chu + Dich[/FONT]
[FONT=.VnTime] Next J[/FONT]
[FONT=.VnTime] End Select[/FONT]
[FONT=.VnTime] Vitri = InStr(1, Chu, "m&shy;¬i mét", 1)[/FONT]
[FONT=.VnTime] If Vitri > 0 Then[/FONT]
[FONT=.VnTime] Mid(Chu, Vitri, 9) = "m&shy;¬i mèt"[/FONT]
[FONT=.VnTime] End If[/FONT]
[FONT=.VnTime] Ketqua = Ketqua + Chu[/FONT]
[FONT=.VnTime] End If[/FONT]
[FONT=.VnTime] Next i[/FONT]
[FONT=.VnTime] End If[/FONT]
[FONT=.VnTime] End If[/FONT]
[FONT=.VnTime] VND = UCase(Left(Ketqua, 1)) + Mid(Ketqua, 2)[/FONT]
[FONT=.VnTime]End Function[/FONT]
 
Upvote 0
chieutim2003 đã viết:
Tôi sưu tầm được một hàm con giúp đọc số tiền ra Việt Nam đồng. Tôi đã ứng dụng được trong các chương trình Access. Tuy nhiên, chương trình này không đọc được số lớn hơn 2.147.483.647 (giới hạn của kiểu dữ liệu khai báo "Long". Mặc dù tôi đã khai lại kiểu dữ liệu "Long" thành "Double" nhưng chương trình vẫn báo lỗi số 6 (Dữ liệu quá lớn).
Mong các bạn chỉ giáo cách chỉnh lại hàm này để có thể đọc được số lớn hơn.
Cám ơn !
Bạn tải tập tin "HoTroTiengViet VBA.zip" trong bài Công cụ hỗ trợ tiếng Việt cho Excel Có 3 hàm đọc số cho 3 bảng mã thông dụng
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom