Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hỏi] Giúp tôi Modules đọc số này với
#1
Tôi có đoạn mã ở dưới. Vấn đề ở chỗ khi đọc số m2 bị lỗi hiện tượng sau:
- VD1: 42 m2 nó đọc là: (Bốn mươi hai phẩy không m2) cái này rất đúng;
- VD1: 42,7 m2 nó đọc thành (Bốn mươi hai phẩy bảy mươi m2)
- VD2: 42, 73 m2 nó đọc thành (Bốn mươi hai phẩy bảy mươi ba m2)
- VD4: 42,1 m2 nó đọc thành[i] (Bốn mươi hai phẩy mươi m2)[/i]
Tôi chỉ muốn nó đọc là (Bốn mươi hai phẩy bảy m2) hoặc (Bốn mươi hai phẩy bảy ba m2) hoặc[i] [i](Bốn mươi hai phẩy một m2)[/i][/i]
Mong các cao thủ giúp đỡ.


Public Function MET2(SoLuong)
Dim KetQua, SoTien, Nhom, Chu, Dich, S1, S2, S3 As String
Dim n, k, ViTri As Byte, S As Double
Dim Hang, DonVi, Dem
    If SoLuong = 0 Then '1
        KetQua = "Không m2"
    Else
        If Abs(SoLuong) > 1E+15 Then '2
            KetQua = "Số quá lớn"
        Else
            If SoLuong < 0 Then
                KetQua = "Trừ" & Space(1)
            Else
                KetQua = Space(0)
            End If
                SoTien = Format(Abs(SoLuong), "#################0.00")
                SoTien = Right(Space(15) & SoTien, 18)
                Hang = Array("None", "trăm", "mươi", "gì đó")
                DonVi = Array("None", "ngàn tỷ", "tỷ", "triệu", "ngàn", "phẩy", "m2")
                Dem = Array("None", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín")
                For n = 1 To 6
                    Nhom = Mid(SoTien, n * 3 - 2, 3)
                    If Nhom <> Space(3) Then
                        Select Case Nhom
                            Case "000"
                                If n = 5 Then
                                    Chu = "phẩy" & Space(1)
                                    'Chu = "m2" & Space(1)
                                Else
                                    Chu = Space(0)
                                End If
                            Case ".00", ",00"
                                Chu = "không m2"
                            Case Else
                                S1 = Left(Nhom, 1): S2 = Mid(Nhom, 2, 1): S3 = Right(Nhom, 1)
                                Chu = Space(0): Hang(3) = DonVi(n)
                                For k = 1 To 3
                                    Dich = Space(0): S = Val(Mid(Nhom, k, 1))
                                    If S > 0 Then
                                        Dich = Dem(S) & Space(1) & Hang(k) & Space(1)
                                    Else
                                        If k = 1 And n > 1 And n < 6 And Val(Mid(SoTien, (n - 1) * 3 - 2, 3)) > 0 Then
                                            Dich = "không" & Space(1) & Hang(k) & Space(1)
                                        End If
                                    End If
                                Select Case k
                                    Case 2 And S = 1
                                        Dich = "mươì" & Space(1)
                                    Case 3 And S = 0 And Nhom <> Space(2) & "0"
                                        Dich = Hang(k) & Space(1)
                                    Case 3 And S = 5 And Val(S2) > 0
                                        Dich = "l" & Mid(Dich, 2)
                                    Case 2 And S = 0 And S3 <> "0"
                                        If n > 1 And Val(Mid(SoTien, (n - 1) * 3 - 2, 3)) > 0 Or (Val(S1) > 0) Then
                                            Dich = "không" & Space(1)
                                        End If
                                End Select
                                Chu = Chu & Dich
                                Next k
                        End Select
                        ViTri = InStr(1, Chu, "mươi một")
                        If ViTri > 0 Then
                            Mid(Chu, ViTri, 9) = "mươi mốt"
                        End If
                            KetQua = KetQua & Chu
                   End If '4
                Next n
        End If '2
    End If '1
    MET2 = UCase(Left(KetQua, 1)) & Trim(Mid(KetQua, 2))
End Function
Chữ ký của xndt xndt,gia nhập Thủ Thuật Access từ 06-05 -16.
Reply
Những người đã cảm ơn
#2
(08-05-17, 11:35 AM)xndt Đã viết: Tôi có đoạn mã ở dưới. Vấn đề ở chỗ khi đọc số m2 bị lỗi hiện tượng sau:
- VD1: 42 m2 nó đọc là: (Bốn mươi hai phẩy không m2) cái này rất đúng;
- VD1: 42,7 m2 nó đọc thành (Bốn mươi hai phẩy bảy mươi m2)
- VD2: 42, 73 m2 nó đọc thành (Bốn mươi hai phẩy bảy mươi ba m2)
- VD4: 42,1 m2 nó đọc thành[i] (Bốn mươi hai phẩy mươi m2)[/i]
Tôi chỉ muốn nó đọc là (Bốn mươi hai phẩy bảy m2) hoặc (Bốn mươi hai phẩy bảy ba m2) hoặc[i] [i](Bốn mươi hai phẩy một m2)[/i][/i]
Mong các cao thủ giúp đỡ.

Trả lời:
1. Hàm của bạn không có lỗi gì cả, bởi nó làm việc đúng theo ý nghĩa của nó là đọc đến 2 số lẻ thập phân.
2. Cách khắc phục. ( chỉ Chọn 1 trong 2cách dưới đây)
+ Chỉ đọc đến 1 số lẻ thập phân
+ Hoặc chỉ đọc đến 2 số lẻ thập phân.

Lý do vì sao như thế: Bởi khi bạn format ô textbox có số liệu của bạn, về mặt hiển tuy là 42 or 42,7 thì khi dùng hàm này nó vẫn đọc là 42,00 và 42,70 ---> Đây là cơ chế của hàm này.

Hoặc khi bạn chỉnh lại hàm để đọc 1 số lẻ thập phân thì cũng tương tự nó sẽ đọc là 42,0 và 42,7. Nó không thể nào lúc thì đọc 1 số lúc thì đọc 2 số được đâu.

Bạn hãy suy nghĩ và chọn cho mình theo ý số 2 mình nói trên.
Thân mên!
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn xndt
#3
Cám ơn bạn maidinhdan nhiều! vấn đề là bạn có thể giúp tôi cái: VD4: 42,1 m2 nó đọc thành[i] (Bốn mươi hai phẩy mươi m2) được không?[/i]
Chữ ký của xndt xndt,gia nhập Thủ Thuật Access từ 06-05 -16.
Reply
Những người đã cảm ơn
#4
(09-05-17, 05:47 PM)xndt Đã viết: Cám ơn bạn maidinhdan nhiều! vấn đề là bạn có thể giúp tôi cái: VD4: 42,1 m2 nó đọc thành[i] (Bốn mươi hai phẩy mươi m2) được không?[/i]
Để làm được điều này phải viết một mod khác chứ không sửa được bạn ạ! Mod đọc số thành chữ là một mod rất khó, rất phức tạp nên cũng không phải ai có đủ thời gian và kiên nhẫn để viết đâu bạn. Mod bạn đang sử dụng là của bác Ông Văn Thông viết (bác Thông là tổ sư bồ đề access đấy bạn). Mod này ngày xưa bác Thông viết cho font VNI  sau này khi sử dụng font Unicode thì bị lỗi, vì thể nhiều người sử dụng cố gắng viết các mod khác nhưng không mod nào hoàn chỉnh như mod này bác Thông. Mình cũng sử dụng mod này để đọc số bằng cách dịch mã font Unicode rồi chuyển vào sử các từ đọc số. Do bác Thông sử định dang số để dịch nên dù bạn có sử dụng #.000,# thì khi chạy code nó vẫn chuyển thành #.000,00 như bạn Dân nói và không xử lý kiểu của bạn được. Bạn muốn viết mod theo ý bạn thì phải dùng chuyễn sang định text, nhưng nếu chuyển sang định dạng text mà format số kiểu Mỹ 0,000.00 thì code sẽ dịch bậy. Một và hai con số lẽ của bạn không đơn giản đâu.
Chữ ký của tranthanhan1962 Kết quả cuối cùng của một đời người, không phải bạn có được bao nhiêu tiền bạc, tài sản. Mà bạn còn bao nhiêu người bạn  thumbs up
ღღღღღTài sản của tranthanhan1962 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn xndt
#5
(08-05-17, 11:35 AM)xndt Đã viết: Tôi có đoạn mã ở dưới. Vấn đề ở chỗ khi đọc số m2 bị lỗi hiện tượng sau:
- VD1: 42 m2 nó đọc là: (Bốn mươi hai phẩy không m2) cái này rất đúng;
- VD1: 42,7 m2 nó đọc thành (Bốn mươi hai phẩy bảy mươi m2)
- VD2: 42, 73 m2 nó đọc thành (Bốn mươi hai phẩy bảy mươi ba m2)
- VD4: 42,1 m2 nó đọc thành[i] (Bốn mươi hai phẩy mươi m2)[/i]
Tôi chỉ muốn nó đọc là (Bốn mươi hai phẩy bảy m2) hoặc (Bốn mươi hai phẩy bảy ba m2) hoặc[i] [i](Bốn mươi hai phẩy một m2)[/i][/i]
Mong các cao thủ giúp đỡ.


Public Function MET2(SoLuong)
Dim KetQua, SoTien, Nhom, Chu, Dich, S1, S2, S3 As String
Dim n, k, ViTri As Byte, S As Double
Dim Hang, DonVi, Dem
    If SoLuong = 0 Then '1
        KetQua = "Không m2"
    Else
        If Abs(SoLuong) > 1E+15 Then '2
            KetQua = "Số quá lớn"
        Else
            If SoLuong < 0 Then
                KetQua = "Trừ" & Space(1)
            Else
                KetQua = Space(0)
            End If
                SoTien = Format(Abs(SoLuong), "#################0.00")
                SoTien = Right(Space(15) & SoTien, 18)
                Hang = Array("None", "trăm", "mươi", "gì đó")
                DonVi = Array("None", "ngàn tỷ", "tỷ", "triệu", "ngàn", "phẩy", "m2")
                Dem = Array("None", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín")
                For n = 1 To 6
                    Nhom = Mid(SoTien, n * 3 - 2, 3)
                    If Nhom <> Space(3) Then
                        Select Case Nhom
                            Case "000"
                                If n = 5 Then
                                    Chu = "phẩy" & Space(1)
                                    'Chu = "m2" & Space(1)
                                Else
                                    Chu = Space(0)
                                End If
                            Case ".00", ",00"
                                Chu = "không m2"
                            Case Else
                                S1 = Left(Nhom, 1): S2 = Mid(Nhom, 2, 1): S3 = Right(Nhom, 1)
                                Chu = Space(0): Hang(3) = DonVi(n)
                                For k = 1 To 3
                                    Dich = Space(0): S = Val(Mid(Nhom, k, 1))
                                    If S > 0 Then
                                        Dich = Dem(S) & Space(1) & Hang(k) & Space(1)
                                    Else
                                        If k = 1 And n > 1 And n < 6 And Val(Mid(SoTien, (n - 1) * 3 - 2, 3)) > 0 Then
                                            Dich = "không" & Space(1) & Hang(k) & Space(1)
                                        End If
                                    End If
                                Select Case k
                                    Case 2 And S = 1
                                        Dich = "mươì" & Space(1)
                                    Case 3 And S = 0 And Nhom <> Space(2) & "0"
                                        Dich = Hang(k) & Space(1)
                                    Case 3 And S = 5 And Val(S2) > 0
                                        Dich = "l" & Mid(Dich, 2)
                                    Case 2 And S = 0 And S3 <> "0"
                                        If n > 1 And Val(Mid(SoTien, (n - 1) * 3 - 2, 3)) > 0 Or (Val(S1) > 0) Then
                                            Dich = "không" & Space(1)
                                        End If
                                End Select
                                Chu = Chu & Dich
                                Next k
                        End Select
                        ViTri = InStr(1, Chu, "mươi một")
                        If ViTri > 0 Then
                            Mid(Chu, ViTri, 9) = "mươi mốt"
                        End If
                            KetQua = KetQua & Chu
                   End If '4
                Next n
        End If '2
    End If '1
    MET2 = UCase(Left(KetQua, 1)) & Trim(Mid(KetQua, 2))
End Function


Bạn xem các Module sau có phải bạn đang cần:

Mã PHP:
Option Compare Database

Public Function metvuong(ByVal giatriso) As String
   Dim giatri 
As String
   Dim S1
S2docphannguyendocphanle As String
   
   giatri 
Format(Abs(giatriso), "##0.00")
   
   S1 
Left(giatriInStr(giatri",") - 1)
   docphannguyen DocSoUni(S1)
   
   S2 
Right(giatri2)
   Select Case S2
       Case 
"00"
           docphanle DocSoUni("0")
       Case Else
           If Left(S21) = "0" Then
               docphanle 
DocSoUni("0") & " " DocSoUni(Right(S21))
           Else
               If Right
(S21) = "0" Then
                   docphanle 
DocSoUni(Left(S21))
               Else
                   docphanle 
DocSoUni(S2)
               End If
           End If
   End Select
       
   metvuong 
docphannguyen " " Form_Frtest.lbPhay.Caption " " docphanle " " Form_Frtest.lbM2.Caption
   metvuong 
Inhoachucaidau(metvuong)
End Function

Public Function 
DocSoUni(ByVal conso) As String
s09 
= Array(""" m" ChrW(7897) & "t"" hai"" ba"" b" ChrW(7889) & "n"" n" ChrW(259) & "m"" s" ChrW(225) & "u"" b" ChrW(7843) & "y"" t" ChrW(225) & "m"" ch" ChrW(237) & "n")
lop3 = Array(""" tri" ChrW(7879) & "u"" ngh" ChrW(236) & "n"" t" ChrW(7927))
Dim docsos123 As String

If Trim(conso) = "" Then
 DocSoUni 
""
ElseIf IsNumeric(conso) = True Then
 If conso 
0 Then dau ChrW(226) & "m " Else dau ""
 conso Abs(conso)
 conso " " conso
 conso 
Replace(conso","""1)
 vt InStr(1conso"E")
 If vt 0 Then
   sonhan 
Val(Mid(consovt 1))
   conso Trim(Mid(conso2vt 2))
   conso conso String(sonhan Len(conso) + 1"0")
 End If
 conso Trim(conso)
 sochuso Len(consoMod 9
 If sochuso 
0 Then conso String(- (sochuso Mod 12), "0") & conso
 docso 
""
 i 1
 lop 
1
 Do
   n1 
Mid(consoi1)
   n2 Mid(conso11)
   n3 Mid(conso21)
   baso Mid(consoi3)
   i 3
   If n1 
n2 n3 "000" Then
     If docso 
<> "" And lop And Len(conso) - 2 Then s123 " t" ChrW(7927) Else s123 ""
   Else
     If n1 
0 Then
       If docso 
"" Then S1 "" Else S1 " kh" ChrW(244) & "ng tr" ChrW(259) & "m"
     Else
       S1 
s09(n1) & " tr" ChrW(259) & "m"
     End If
     If n2 0 Then
       If S1 
"" Or n3 0 Then
         S2 
""
       Else
         S2 
" l" ChrW(7867)
       End If
     Else
       If n2 
1 Then S2 " m" ChrW(432) & ChrW(7901) & "i" Else S2 s09(n2) & " m" ChrW(432) & ChrW(417) & "i"
     End If
     If n3 1 Then
       If n2 
Or n2 0 Then S3 " m" ChrW(7897) & "t" Else S3 " m" ChrW(7889) & "t"
     ElseIf n3 And n2 <> 0 Then
       S3 
" l" ChrW(259) & "m"
     Else
       S3 
s09(n3)
     End If
     If i Len(consoThen
       s123 
S1 S2 S3
     Else
       s123 
S1 S2 S3 lop3(lop)
     End If
   End If
   lop lop 1
   If lop 
3 Then lop 1
   docso 
docso s123
   If i 
Len(consoThen Exit Do
 Loop
 If docso 
"" Then DocSoUni "kh" ChrW(244) & "ng" Else DocSoUni dau Trim(docso)
Else
 DocSoUni conso
End 
If
End Function

Function 
Inhoachucaidau(Word As Variant) As String
  Dim temp 
As String
  
  
If IsNull(WordThen
     Exit 
Function
   Else
       temp 
CStr(LCase(LTrim(Word)))
       Inhoachucaidau UCase(Left(temp1)) & Right(tempLen(temp) - 1)
   End If
End Function 

File Demo.
Chữ ký của nhannt4 Xin chào, mình là nhannt4, Tham gia http://thuthuataccess.com/forum từ ngày 22-07 -12.
Reply
Những người đã cảm ơn maidinhdan , tranthanhan1962 , xndt , ongke0711
#6
(10-05-17, 04:41 PM)nhannt4 Đã viết:
(08-05-17, 11:35 AM)xndt Đã viết: Tôi có đoạn mã ở dưới. Vấn đề ở chỗ khi đọc số m2 bị lỗi hiện tượng sau:
- VD1: 42 m2 nó đọc là: (Bốn mươi hai phẩy không m2) cái này rất đúng;
- VD1: 42,7 m2 nó đọc thành (Bốn mươi hai phẩy bảy mươi m2)
- VD2: 42, 73 m2 nó đọc thành (Bốn mươi hai phẩy bảy mươi ba m2)
- VD4: 42,1 m2 nó đọc thành[i] (Bốn mươi hai phẩy mươi m2)[/i]
Tôi chỉ muốn nó đọc là (Bốn mươi hai phẩy bảy m2) hoặc (Bốn mươi hai phẩy bảy ba m2) hoặc[i] [i](Bốn mươi hai phẩy một m2)[/i][/i]
Mong các cao thủ giúp đỡ.


Public Function MET2(SoLuong)
Dim KetQua, SoTien, Nhom, Chu, Dich, S1, S2, S3 As String
Dim n, k, ViTri As Byte, S As Double
Dim Hang, DonVi, Dem
    If SoLuong = 0 Then '1
        KetQua = "Không m2"
    Else
        If Abs(SoLuong) > 1E+15 Then '2
            KetQua = "Số quá lớn"
        Else
            If SoLuong < 0 Then
                KetQua = "Trừ" & Space(1)
            Else
                KetQua = Space(0)
            End If
                SoTien = Format(Abs(SoLuong), "#################0.00")
                SoTien = Right(Space(15) & SoTien, 18)
                Hang = Array("None", "trăm", "mươi", "gì đó")
                DonVi = Array("None", "ngàn tỷ", "tỷ", "triệu", "ngàn", "phẩy", "m2")
                Dem = Array("None", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín")
                For n = 1 To 6
                    Nhom = Mid(SoTien, n * 3 - 2, 3)
                    If Nhom <> Space(3) Then
                        Select Case Nhom
                            Case "000"
                                If n = 5 Then
                                    Chu = "phẩy" & Space(1)
                                    'Chu = "m2" & Space(1)
                                Else
                                    Chu = Space(0)
                                End If
                            Case ".00", ",00"
                                Chu = "không m2"
                            Case Else
                                S1 = Left(Nhom, 1): S2 = Mid(Nhom, 2, 1): S3 = Right(Nhom, 1)
                                Chu = Space(0): Hang(3) = DonVi(n)
                                For k = 1 To 3
                                    Dich = Space(0): S = Val(Mid(Nhom, k, 1))
                                    If S > 0 Then
                                        Dich = Dem(S) & Space(1) & Hang(k) & Space(1)
                                    Else
                                        If k = 1 And n > 1 And n < 6 And Val(Mid(SoTien, (n - 1) * 3 - 2, 3)) > 0 Then
                                            Dich = "không" & Space(1) & Hang(k) & Space(1)
                                        End If
                                    End If
                                Select Case k
                                    Case 2 And S = 1
                                        Dich = "mươì" & Space(1)
                                    Case 3 And S = 0 And Nhom <> Space(2) & "0"
                                        Dich = Hang(k) & Space(1)
                                    Case 3 And S = 5 And Val(S2) > 0
                                        Dich = "l" & Mid(Dich, 2)
                                    Case 2 And S = 0 And S3 <> "0"
                                        If n > 1 And Val(Mid(SoTien, (n - 1) * 3 - 2, 3)) > 0 Or (Val(S1) > 0) Then
                                            Dich = "không" & Space(1)
                                        End If
                                End Select
                                Chu = Chu & Dich
                                Next k
                        End Select
                        ViTri = InStr(1, Chu, "mươi một")
                        If ViTri > 0 Then
                            Mid(Chu, ViTri, 9) = "mươi mốt"
                        End If
                            KetQua = KetQua & Chu
                   End If '4
                Next n
        End If '2
    End If '1
    MET2 = UCase(Left(KetQua, 1)) & Trim(Mid(KetQua, 2))
End Function


Bạn xem các Module sau có phải bạn đang cần:

Mã PHP:
Option Compare Database

Public Function metvuong(ByVal giatriso) As String
   Dim giatri 
As String
   Dim S1
S2docphannguyendocphanle As String
   
   giatri 
Format(Abs(giatriso), "##0.00")
   
   S1 
Left(giatriInStr(giatri",") - 1)
   docphannguyen DocSoUni(S1)
   
   S2 
Right(giatri2)
   Select Case S2
       Case 
"00"
           docphanle DocSoUni("0")
       Case Else
           If Left(S21) = "0" Then
               docphanle 
DocSoUni("0") & " " DocSoUni(Right(S21))
           Else
               If Right
(S21) = "0" Then
                   docphanle 
DocSoUni(Left(S21))
               Else
                   docphanle 
DocSoUni(S2)
               End If
           End If
   End Select
       
   metvuong 
docphannguyen " " Form_Frtest.lbPhay.Caption " " docphanle " " Form_Frtest.lbM2.Caption
   metvuong 
Inhoachucaidau(metvuong)
End Function

Public Function 
DocSoUni(ByVal conso) As String
s09 
= Array(""" m" ChrW(7897) & "t"" hai"" ba"" b" ChrW(7889) & "n"" n" ChrW(259) & "m"" s" ChrW(225) & "u"" b" ChrW(7843) & "y"" t" ChrW(225) & "m"" ch" ChrW(237) & "n")
lop3 = Array(""" tri" ChrW(7879) & "u"" ngh" ChrW(236) & "n"" t" ChrW(7927))
Dim docsos123 As String

If Trim(conso) = "" Then
 DocSoUni 
""
ElseIf IsNumeric(conso) = True Then
 If conso 
0 Then dau ChrW(226) & "m " Else dau ""
 conso Abs(conso)
 conso " " conso
 conso 
Replace(conso","""1)
 vt InStr(1conso"E")
 If vt 0 Then
   sonhan 
Val(Mid(consovt 1))
   conso Trim(Mid(conso2vt 2))
   conso conso String(sonhan Len(conso) + 1"0")
 End If
 conso Trim(conso)
 sochuso Len(consoMod 9
 If sochuso 
0 Then conso String(- (sochuso Mod 12), "0") & conso
 docso 
""
 i 1
 lop 
1
 Do
   n1 
Mid(consoi1)
   n2 Mid(conso11)
   n3 Mid(conso21)
   baso Mid(consoi3)
   i 3
   If n1 
n2 n3 "000" Then
     If docso 
<> "" And lop And Len(conso) - 2 Then s123 " t" ChrW(7927) Else s123 ""
   Else
     If n1 
0 Then
       If docso 
"" Then S1 "" Else S1 " kh" ChrW(244) & "ng tr" ChrW(259) & "m"
     Else
       S1 
s09(n1) & " tr" ChrW(259) & "m"
     End If
     If n2 0 Then
       If S1 
"" Or n3 0 Then
         S2 
""
       Else
         S2 
" l" ChrW(7867)
       End If
     Else
       If n2 
1 Then S2 " m" ChrW(432) & ChrW(7901) & "i" Else S2 s09(n2) & " m" ChrW(432) & ChrW(417) & "i"
     End If
     If n3 1 Then
       If n2 
Or n2 0 Then S3 " m" ChrW(7897) & "t" Else S3 " m" ChrW(7889) & "t"
     ElseIf n3 And n2 <> 0 Then
       S3 
" l" ChrW(259) & "m"
     Else
       S3 
s09(n3)
     End If
     If i Len(consoThen
       s123 
S1 S2 S3
     Else
       s123 
S1 S2 S3 lop3(lop)
     End If
   End If
   lop lop 1
   If lop 
3 Then lop 1
   docso 
docso s123
   If i 
Len(consoThen Exit Do
 Loop
 If docso 
"" Then DocSoUni "kh" ChrW(244) & "ng" Else DocSoUni dau Trim(docso)
Else
 DocSoUni conso
End 
If
End Function

Function 
Inhoachucaidau(Word As Variant) As String
  Dim temp 
As String
  
  
If IsNull(WordThen
     Exit 
Function
   Else
       temp 
CStr(LCase(LTrim(Word)))
       Inhoachucaidau UCase(Left(temp1)) & Right(tempLen(temp) - 1)
   End If
End Function 

File Demo.

040 Hình như nó không đọc được bạn ơi!
Chữ ký của xndt xndt,gia nhập Thủ Thuật Access từ 06-05 -16.
Reply
Những người đã cảm ơn
#7
(10-05-17, 05:44 PM)xndt Đã viết: 040 Hình như nó không đọc được bạn ơi!

Bạn download file Demo của mình về sử dụng xem, máy mình sử dụng định dạng ngày đã điều chỉnh lại chứ không để mặc định nên bạn có thể mở code trong file Demo để điều chỉnh lại cho phù hợp:

- Decimal symbol: dấu ","
- Digit grouping symbol: dấu "."

Máy mình đã test hoạt động tốt.

(Mở file demo xem rõ hơn).
Chữ ký của nhannt4 Xin chào, mình là nhannt4, Tham gia http://thuthuataccess.com/forum từ ngày 22-07 -12.
Reply
Những người đã cảm ơn xndt
#8
Code này chạy đúng yêu cầu rồi đó. Như bạn nhannt4 đã nói, bạn phải vô Control Panel -> Regional Setting để định dạng số lại đúng như tiếng Việt: dấu chấm cho hàng ngàn, dấu phẩy cho số thập phân.
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn xndt
#9
(10-05-17, 05:54 PM)nhannt4 Đã viết:
(10-05-17, 05:44 PM)xndt Đã viết: 040 Hình như nó không đọc được bạn ơi!

Bạn download file Demo của mình về sử dụng xem, máy mình sử dụng định dạng ngày đã điều chỉnh lại chứ không để mặc định nên bạn có thể mở code trong file Demo để điều chỉnh lại cho phù hợp:

- Decimal symbol: dấu ","
- Digit grouping symbol: dấu "."

Máy mình đã test hoạt động tốt.

(Mở file demo xem rõ hơn).

Cám ơn bạn rất nhiều! nó đã đúng cái tôi cần luôn, nhưng tôi có vấn đề cần bạn giúp như sau:
Do máy của tôi còn phải dùng 1 phần mềm quan trọng phải sử dụng định dạng ngày mặc định nên bạn có thể giúp tôi điều chỉnh code cho nó sử dụng được với ngày mặc định của Windows được không, nếu được thì tốt quá. Thanks bạn nhiều.
Chữ ký của xndt xndt,gia nhập Thủ Thuật Access từ 06-05 -16.
Reply
Những người đã cảm ơn
#10
(11-05-17, 10:16 AM)xndt Đã viết: Cám ơn bạn rất nhiều! nó đã đúng cái tôi cần luôn, nhưng tôi có vấn đề cần bạn giúp như sau:
Do máy của tôi còn phải dùng 1 phần mềm quan trọng phải sử dụng định dạng ngày mặc định nên bạn có thể giúp tôi điều chỉnh code cho nó sử dụng được với ngày mặc định của Windows được không, nếu được thì tốt quá. Thanks bạn nhiều.

Bạn mở Function metvuong, sửa lại dòng số 4 như sau:

- Từ: S1 = Left(giatri, InStr(giatri, ".") - 1)

- Thành: S1 = Left(giatri, InStr(giatri, ",") - 1)

Chúc bạn vui.
Chữ ký của nhannt4 Xin chào, mình là nhannt4, Tham gia http://thuthuataccess.com/forum từ ngày 22-07 -12.
Reply
Những người đã cảm ơn xndt


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  giúp đở về trỏ chuột trong acess hvhvpdk 2 1,166 17-12-16, 12:49 PM
Bài mới nhất: hvhvpdk
  Cần giúp đỡ về hàm if trong macro hvhvpdk 2 1,460 28-11-16, 01:04 PM
Bài mới nhất: hvhvpdk
  Cần Giúp đỡ về Menu bar acess 2007 toi511 3 2,076 12-06-16, 02:34 PM
Bài mới nhất: truongtrungviet
  Cần giúp đỡ copy dữ liệu ngocanhwin 9 4,137 28-05-15, 08:24 PM
Bài mới nhất: ngocanhwin
  Xin các bạn giúp đỡ mình cách tạo 1 macro chạy 1 form với 2 điều kiện trong textbox nguyensontuan 3 3,228 12-12-13, 04:22 PM
Bài mới nhất: vulhu06

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ| PMA Nha Trang| Gỗ Acrylic Không Đường Line| Phần mềm quản lý bán hàng, công nợ- tồn kho- nhà phân phối