hàm đổi số thành chữ trong access
trico9.0 > 10-07-11, 10:26 PM
xin mọi ngùời xem giúp mình hàm này sai chổ nào mà nó không chạy. bất kể là số mấy thì cũng ra "Không đồng chẳn"
cám ơn!!!
Public Function DoiSoRaChu(ByVal number As Long)
Dim KetQua, SoTien, Nhom, Chu, Dich, N1, N2, N3 As String
Dim I, J, N As Byte
Dim Hang, Nghin, Dem
Hang = Array("", "tam", "muoi", "")
Dem = Array("", "mot", "hai", "ba", "bon", "nam", "sau", "bay", "tam", "chin")
Nghin = Array("", "nghin ty", "ty", "trieu", "ngin", "dong")
If nunber = 0 Then
KetQua = "Khong dong "
Else
If Abs(number) >= 1E+15 Then
KetQua = "So lon qua muc cho phep!"
Else
KetQua = ""
If number < 0 Then
KetQua = "Am"
End If
SoTien = Format(Abs(number), "###############0.00")
SoTien = Right(Space(15) & SoTien, 18)
For I = 1 To 5
Nhom = Mid(SoTien, I * 3 - 2, 3)
If Nhom <> Space(3) And Nhom <> "000" Then
Chu = ""
N1 = Left(Nhom, 1)
N2 = Mid(Nhom, 2, 1)
N3 = Right(Nhom, 1)
Hang(3) = Nghin(I)
For J = 1 To 3
Dich = ""
N = Val(Mid(Nhom, J, 1))
If N > 0 Then
Dich = Dem(N)
If N3 = "1" And N2 > "1" And J = 3 Then Dich = "mot"
If N = "5" And N2 > "0" And J = 3 Then Dich = "lam"
Dich = Dich & Hang(J)
End If
Select Case J
Case 1 And N1 = "0"
Dich = "Khong tram "
Case 2 And N = "1"
Dich = "Muoi "
Case 3 And N = "0" And Val(Nhom) <> 0
Dich = Hang(J)
Case 2 And N = "0" And Val(N3) > 0 And Len(Chu) > 0
Dich = "linh "
End Select
Chu = Chu & Dich
Next J
KetQua = KetQua & Chu
End If
Next I
End If
End If
If KetQua = "So lon qua muc cho phep!" Then
DoiSoRaChu = "So lon qua muc cho phep!"
Else
DoiSoRaChu = UCase(Left(KetQua, 1)) & Mid(KetQua, 2) & "chan."
End If
End Function