caosieu > 08-04-13, 10:44 AM
Xuân Thanh > 08-04-13, 10:59 AM
MieuNu > 19-06-13, 04:41 PM
Xuân Thanh > 19-06-13, 05:10 PM
Private Sub SoTien_AfterUpdate()
Me.SoTienBangChu = DocSo(Me.SoTien)
End Sub
MieuNu > 19-06-13, 05:27 PM
(19-06-13, 05:10 PM)Xuân Thanh Đã viết:Mã PHP:Private Sub SoTien_AfterUpdate()
Me.SoTienBangChu = DocSo(Me.SoTien)
End Sub
Bạn thử xem, tôi chưa test
Thân mến
P/S : Trong table phải có 2 trường là SoTien và SoTienBangChu. Cả 2 trường này đều được thể hiện trên form và lấy nguồn từ table
MieuNu > 19-06-13, 05:56 PM
Xuân Thanh > 20-06-13, 12:28 PM
tranthanhan1962 > 03-11-14, 05:11 AM
thiennamlong > 23-03-16, 11:45 PM
(03-11-14, 05:11 AM)tranthanhan1962 Đã viết: Có một cách tương đối đơn giản vì tôi nghĩ bạn nào cũng có hàm đọc số VNI. Chọn đại một hàm đọc số VNI nào bạn thích nhất, xong xử dụng Vietnamese keyboard của windows để gõ lại các ký tự tiếng Việt ...
Public Function VND(BaoNhieu) '1
Dim KetQua, SOTIEN, NHOM, Chu, Dich, S1, S2, S3 As String
Dim I, J, Vitri As Byte, S As Double
Dim Hang, DOC, DEM
If BaoNhieu = 0 Then
KetQua = "Không đồng"
Else
If Abs(BaoNhieu) > 1E+15 Then
KetQua = "Số Qúa Lớn"
Else
If BaoNhieu < 0 Then
KetQua = "Trừ" & Space(1)
Else
KetQua = Space(0)
End If
SOTIEN = Format(Abs(BaoNhieu), "###############")
SOTIEN = Right(Space(15) & SOTIEN, 15)
Hang = Array("None", "trăm", "mươi", "gì đó")
DOC = Array("None", "nghìn tỷ,", "tỷ,", "triệu,", "nghìn,", "đồng.")
DEM = Array("None", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín")
For I = 1 To 5
NHOM = Mid(SOTIEN, I * 3 - 2, 3)
If NHOM <> Space(3) Then
Select Case NHOM
Case "000"
If I = 5 Then
Chu = "đồng chẵn." & Space(1)
Else
Chu = Space(0)
End If
Case Else
S1 = Left(NHOM, 1)
S2 = Mid(NHOM, 2, 1)
S3 = Right(NHOM, 1)
Chu = Space(0)
Hang(3) = DOC(I)
For J = 1 To 3
Dich = Space(0)
S = Val(Mid(NHOM, J, 1))
If S > 0 Then
Dich = DEM(S) & Space(1) & Hang(J) & Space(1)
End If
Select Case J
Case 2 And S = 1
Dich = "mười" & Space(1)
Case 3 And S = 0 And NHOM <> Space(2) & "0"
Dich = Hang(J) & Space(1)
Case 3 And S = 5 And S2 <> Space(1) And S2 <> "0"
Dich = "l" & Mid(Dich, 2) 'Ký tự en lờ
Case 2 And S = 0 And S3 <> "0"
If (S1 >= "l" And S1 <= "9") Or (S1 = "0" And I = 1) Or (S1 = "0" And I = 2) Or _
(S1 = "0" And I = 3) Or (S1 = "0" And I = 4) Or (S1 = "0" And I = 5) Then
Dich = "linh" & Space(1)
End If
Case 1 And S = 0 And S3 <> "0"
If (S1 >= "1" And S1 <= "9") Or (S1 = "0" And I = 1) Or (S1 = "0" And I = 2) Or _
(S1 = "0" And I = 3) Or (S1 = "0" And I = 4) Or (S1 = "0" And I = 5) Then
Dich = "không trăm" & Space(1)
End If
Case 1 And S = 0 And S3 = "0"
If (S1 >= "1" And S2 <= "9") Or (S1 = "0" And I = 1) Or (S1 = "0" And I = 2) Or _
(S1 = "0" And I = 3) Or (S1 = "0" And I = 4) Or (S1 = "0" And I = 5) Then
Dich = "không trăm" & Space(1)
End If
End Select
Chu = Chu & Dich
Next J
End Select
Vitri = InStr(1, Chu, "mươi mốt", 1)
If Vitri > 0 Then Mid(Chu, Vitri, 9) = "mươi mốt"
KetQua = KetQua & Chu
End If
Next I
End If
End If
VND = UCase(Left(KetQua, 1)) & Mid(KetQua, 2)
End Function
Public Function USD(BaoNhieu) '2
'Dollar mỹ'
Dim KetQua, SOTIEN, NHOM, Chu, Dich, S1, S2, S3 As String
Dim I, J, Vitri As Byte, S As Double
Dim Hang, DOC, DEM
If BaoNhieu = 0 Then
KetQua = "Không đồng"
Else
If Abs(BaoNhieu) > 999999999999.99 Then
KetQua = "Số Qúa Lớn"
Else
If BaoNhieu < 0 Then
KetQua = "Trừ" & Space(1)
Else
KetQua = Space(0)
End If
SOTIEN = Format(Abs(BaoNhieu), "###########0.00")
SOTIEN = Right(Space(12) & SOTIEN, 15)
Hang = Array("None", "trăm", "mươi", "gì đó")
DOC = Array("None", "tỷ", "triệu", "nghìn", " dollar mỹ", "cent")
DEM = Array("None", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín")
For I = 1 To 5
NHOM = Mid(SOTIEN, I * 3 - 2, 3)
If NHOM <> Space(3) Then
Select Case NHOM
Case "000"
If I = 4 Then
Chu = "dollar mỹ" & Space(1)
Else
Chu = Space(0)
End If
Case ".00"
If I = 5 Then
Chu = "chẵn" & Space(0)
Else
Chu = Space(0)
End If
Case Else
S1 = Left(NHOM, 1)
S2 = Mid(NHOM, 2, 1)
S3 = Right(NHOM, 1)
Chu = Space(0)
Hang(3) = DOC(I)
For J = 1 To 3
Dich = Space(0)
S = Val(Mid(NHOM, J, 1))
If S > 0 Then
Dich = DEM(S) & Space(1) & Hang(J) & Space(1)
End If
Select Case J
Case 2 And S = 1
Dich = "mười" & Space(1)
Case 3 And S = 0 And NHOM <> Space(2) & "0"
Dich = Hang(J) & Space(1)
Case 3 And S = 5 And S2 <> Space(1) And S2 <> "0"
Dich = "l" & Mid(Dich, 2) 'Ký tự en lờ
Case 2 And S = 0 And S3 <> "0"
If (S1 >= "1" And S1 <= "9") Or (S1 = "0" And I = 1) Or (S1 = "0" And I = 2) Or (S1 = "0" And I = 3) Or (S1 = "0" And I = 4) Then
Dich = "linh" & Space(1)
End If
W = Mid(SOTIEN, 14, 2)
If W > "0" And I = 5 Then
Dich = "lẻ" & Space(1)
End If
Case 1 And S = 0 And S3 <> "0"
If (S1 >= "1" And S1 <= "9") Or (S1 = "0" And I = 1) Or (S1 = "0" And I = 2) Or (S1 = "0" And I = 3) Or (S1 = "0" And I = 4) Or (S1 = "0" And I = 5) Then
Dich = "không trăm" & Space(1)
End If
Case 1 And S = 0 And S3 = "0"
If (S1 >= "1" And S1 <= "9") Or (S1 = "0" And I = 1) Or (S1 = "0" And I = 2) Or (S1 = "0" And I = 3) Or (S1 = "0" And I = 4) Then
Dich = "không trăm" & Space(1)
End If
End Select
Chu = Chu & Dich
Next J
End Select
Vitri = InStr(1, Chu, "mươi mốt", 1)
If Vitri > 0 Then Mid(Chu, Vitri, 9) = "mươi mốt"
KetQua = KetQua & Chu
End If
Next I
End If
End If
USD = UCase(Left(KetQua, 1)) & Mid(KetQua, 2)
End Function