• Demo Tổng hợp tất cả các kiểu thông báo tiếng việt trong Access
  • RE: Demo Tổng hợp tất cả các kiểu thông báo tiếng việt trong Access

    yamakashi2003 > 03-08-20, 12:34 AM

    (02-08-20, 11:05 PM)ongke0711 Đã viết:
    (02-08-20, 08:43 PM)yamakashi2003 Đã viết: Em dùng win 10 64 bit thì vẫn bị ạ, và khi gõ code em dùng bảng mã VNI
    Dùng Unicode trong lập trình msgbox tiếng việt, thì làm như thế nào ạ, em không thấy trong demo có
    Bác chỉ giúp em với

    Tôi dùng Windows 7 - 64 bit + Office 2016 64 bit không bị lỗi font chữ.
    Bạn nào dùng Windows 10 test thử nhé.

    [Hình: EZCJM20.png]

    [Hình: suqBDJV.png]

    Còn việc dùng Unicode trong lập trình thì chỉ đơn giản là dùng toàn bộ font Unicode "dựng sẳn" trong thiết kế ứng dụng Access thôi chứ có gì đâu. Quốc tế hoá rồi thì cũng dùng font theo chuẩn quốc tế luôn ngoại trừ một số công việc đặc thù phải dùng font chữ VNI để hiển thị như thiết kế văn bản Word, Powerpoint v.v.. 
    Dùng font Unicode rồi thì đỡ được một công đoạn code là chuyển từ VNI, TCVN sang Unicode rồi mới chuyển sang mã ASCII.
    Em dùng win 10, office professional 64 bit. và dùng lệnh để test các chữ: đường, trường, trình, đã
            MsgBoxUni ChrW(272) & ChrW(432) & ChrW(7901) & "ng, tr" & ChrW(432) & ChrW(7901) & "ng, trình, " & ChrW(273) & "ã"
    thì vẫn bị lỗi font
    Không biết bác có cách nào sửa không ạ
  • RE: Demo Tổng hợp tất cả các kiểu thông báo tiếng việt trong Access

    ongke0711 > 03-08-20, 08:01 AM

    (03-08-20, 12:34 AM)yamakashi2003 Đã viết: Em dùng win 10, office professional 64 bit. và dùng lệnh để test các chữ: đường, trường, trình, đã
            MsgBoxUni ChrW(272) & ChrW(432) & ChrW(7901) & "ng, tr" & ChrW(432) & ChrW(7901) & "ng, trình, " & ChrW(273) & "ã"
    thì vẫn bị lỗi font

    Bạn dùng hàm này thử xem.

    Mã PHP:
    #If VBA7 Then
        Public Declare PtrSafe Function MessageBoxW Lib "user32" _
                                        
    (ByVal hwnd As LongPtr_
                                        ByVal lpText 
    As LongPtr_
                                        ByVal lpCaption 
    As LongPtr_
                                        ByVal wType 
    As Long) As Long
    #Else
        Public Declare Function MessageBoxW Lib "user32" _
                                
    (ByVal hwnd As Long_
                                ByVal lpText 
    As Long_
                                ByVal lpCaption 
    As Long_
                                ByVal wType 
    As Long) As Long
    #End If

    Public Function msgBoxUni(ByVal sMsgUni As StringOptional ByVal Buttons As VbMsgBoxStyle vbOKOnlyOptional ByVal sTitleUni As String vbNullString) As VbMsgBoxResult
        msgBoxUni 
    MessageBoxW(0StrPtr(sMsgUni), StrPtr(sTitleUni), Buttons)
    End Function 


    Xem thêm bài này để có thêm thông tin.
    link: https://thuthuataccess.com/forum/thread-11307.html
  • RE: Demo Tổng hợp tất cả các kiểu thông báo tiếng việt trong Access

    yamakashi2003 > 04-08-20, 12:25 AM

    (03-08-20, 08:01 AM)ongke0711 Đã viết:
    (03-08-20, 12:34 AM)yamakashi2003 Đã viết: Em dùng win 10, office professional 64 bit. và dùng lệnh để test các chữ: đường, trường, trình, đã
            MsgBoxUni ChrW(272) & ChrW(432) & ChrW(7901) & "ng, tr" & ChrW(432) & ChrW(7901) & "ng, trình, " & ChrW(273) & "ã"
    thì vẫn bị lỗi font

    Bạn dùng hàm này thử xem.

    Mã PHP:
    #If VBA7 Then
        Public Declare PtrSafe Function MessageBoxW Lib "user32" _
                                        
    (ByVal hwnd As LongPtr_
                                        ByVal lpText 
    As LongPtr_
                                        ByVal lpCaption 
    As LongPtr_
                                        ByVal wType 
    As Long) As Long
    #Else
        Public Declare Function MessageBoxW Lib "user32" _
                                
    (ByVal hwnd As Long_
                                ByVal lpText 
    As Long_
                                ByVal lpCaption 
    As Long_
                                ByVal wType 
    As Long) As Long
    #End If

    Public Function msgBoxUni(ByVal sMsgUni As StringOptional ByVal Buttons As VbMsgBoxStyle vbOKOnlyOptional ByVal sTitleUni As String vbNullString) As VbMsgBoxResult
        msgBoxUni 
    MessageBoxW(0StrPtr(sMsgUni), StrPtr(sTitleUni), Buttons)
    End Function 


    Xem thêm bài này để có thêm thông tin.
    link: https://thuthuataccess.com/forum/thread-11307.html
    Code trên chạy tốt rồi ạ,
    Em cảm ơn bác
    Tiện bác cho em hỏi sao code cũ không chạy được ạ
  • RE: Demo Tổng hợp tất cả các kiểu thông báo tiếng việt trong Access

    ongke0711 > 04-08-20, 12:08 PM

    (04-08-20, 12:25 AM)yamakashi2003 Đã viết: Code trên chạy tốt rồi ạ,
    Em cảm ơn bác
    Tiện bác cho em hỏi sao code cũ không chạy được ạ

    Tôi có đính kèm cái link một bài post về lỗi font chữ ở Windows 10 ở trên đó. Do Windows 10 nó dùng bộ mã font unicode mở rộng khác nên có mấy ký tự nó không tương thích khi chuyển đổi.
    Cái hàm msgboxUni của tôi cũng gần giống cái cũ chỉ là chuyển việc lấy chuỗi từ bộ nhớ (memory) sang trỏ thẳng ngay tới địa chỉ của cái message text trên bộ nhớ để khỏi phải qua công đoạn chuyển đổi từ chuỗi Unicode sang ANSI, lưu xuống bộ nhớ rồi chyển đổi lại Unicode để hiển thị. Chuyển Unicode qua ANSI dễ bị lỗi ký tự như trong trường hợp của Windows 10.
    Do dùng biến con trỏ (Pointer) nên phải dùng Long (cho 32bit) và LongPtr (64bit).

    Hàm API cũ:
    Private Declare Function MessageBoxW Lib "user32" (ByVal hWnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long

    Hàm API dùng pointer:

    Public Declare Function MessageBoxW Lib "user32" _
                                
    (ByVal hwnd As Long_
                                ByVal lpText As Long, _
                                ByVal lpCaption As Long
    , _
                                ByVal wType 
    As Long) As 
    Long
  • RE: Demo Tổng hợp tất cả các kiểu thông báo tiếng việt trong Access

    yamakashi2003 > 24-11-20, 09:04 PM

    (31-07-15, 10:10 PM)maidinhdan Đã viết: Còn 1 cách nửa mà mình chưa trình bày, nhưng cũng có đã sử dụng trong demo trên. Nên mình xin trình bày dưới đây luôn.

    Tên gọi: Hàm chuyển chuỗi Unicode tiếng Việt thành Chuỗi mã Unicode trong VBA
    Tác giả: Noname
    Link liên kêt để trao đổi: http://thuthuataccess.com/forum/thread-4302.html
    Tên hàm sử dụng: Chrw( mã unicode)

    Cách thức sử dụng:
    [Hình: vbaunicode.png]

    Bước 1: Bạn viết tiếng việt vào ô như hình phía trên, sau đó ta nhấn nút chuyển, Sau đó copy đoạn chữ mới tạo ra.
    Bước 2: Viết hàm MsgBox bình thường trong VBA

    Ví dụ: Tôi rất yêu em ======> "Tôi r" & ChrW(7845) & "t yêu em"

    => MsgBox ("Tôi r" & ChrW(7845) & "t yêu em")

    Chúc các bạn thành công.

    Phần này mình cũng đã bổ sung vào file đính kèm thứ 2 ở bài đầu tiên.

    Bổ sung14/5/2020: Demo khắc phục lỗi không thể chuyển một số từ:
    [Demo-Phần 2] Chuyển chữ Uni to ChrW để hiện thông báo tiếng việt
    [Hình: DemohinhUnitoChrPhan2.png]
    Các bác cho em hỏi tuần trước em có tải demo này về thì hiển thị tiếng việt tốt,
    Nhưng hôm nay. em mở lại file này, tất cả thông báo msgbox tiếng việt lại bị lỗi,
    Máy em không hề cài lại win hay chỉnh sửa gì,
    mấy hôm trước hình như có dùng ccleaner dọn rác thôi
    Nhờ ai biết chỉ giúp em cách khắc phục ạ,
    Em xin cảm ơn
  • RE: Demo Tổng hợp tất cả các kiểu thông báo tiếng việt trong Access

    maidinhdan > 24-11-20, 09:54 PM

    (24-11-20, 09:04 PM)yamakashi2003 Đã viết: Các bác cho em hỏi tuần trước em có tải demo này về thì hiển thị tiếng việt tốt,
    Nhưng hôm nay. em mở lại file này, tất cả thông báo msgbox tiếng việt lại bị lỗi,
    Máy em không hề cài lại win hay chỉnh sửa gì,
    mấy hôm trước hình như có dùng ccleaner dọn rác thôi
    Nhờ ai biết chỉ giúp em cách khắc phục ạ,
    Em xin cảm ơn

    Kiểm tra file access bạn có bị mất Modules: ModViethoaThongbao không? nếu mất tải lại và import vào file Access của bạn.
    Link Demo để tải: [Thủ Thuật] [Demo-Phần 2] Chuyển chữ Uni to ChrW để hiện thông báo tiếng việt
  • RE: Demo Tổng hợp tất cả các kiểu thông báo tiếng việt trong Access

    yamakashi2003 > 24-11-20, 10:23 PM

    (24-11-20, 09:54 PM)maidinhdan Đã viết:
    (24-11-20, 09:04 PM)yamakashi2003 Đã viết: Các bác cho em hỏi tuần trước em có tải demo này về thì hiển thị tiếng việt tốt,
    Nhưng hôm nay. em mở lại file này, tất cả thông báo msgbox tiếng việt lại bị lỗi,
    Máy em không hề cài lại win hay chỉnh sửa gì,
    mấy hôm trước hình như có dùng ccleaner dọn rác thôi
    Nhờ ai biết chỉ giúp em cách khắc phục ạ,
    Em xin cảm ơn

    Kiểm tra file access bạn có bị mất Modules: ModViethoaThongbao không? nếu mất tải lại và import vào file Access của bạn.
    Link Demo để tải: [Thủ Thuật] [Demo-Phần 2] Chuyển chữ Uni to ChrW để hiện thông báo tiếng việt
    File vẫn y nguyên bác ạ,
    kể cả code msgbox "thông báo", bình thường thì không bị lỗi font, mà giờ tự nhiên máy em lại bị lỗi font
    Em nghĩ cái này do cái khác chứ k phải do code hay file đó
  • RE: Demo Tổng hợp tất cả các kiểu thông báo tiếng việt trong Access

    maidinhdan > 24-11-20, 11:23 PM

    (24-11-20, 10:23 PM)yamakashi2003 Đã viết:
    (24-11-20, 09:54 PM)maidinhdan Đã viết:
    (24-11-20, 09:04 PM)yamakashi2003 Đã viết: Các bác cho em hỏi tuần trước em có tải demo này về thì hiển thị tiếng việt tốt,
    Nhưng hôm nay. em mở lại file này, tất cả thông báo msgbox tiếng việt lại bị lỗi,
    Máy em không hề cài lại win hay chỉnh sửa gì,
    mấy hôm trước hình như có dùng ccleaner dọn rác thôi
    Nhờ ai biết chỉ giúp em cách khắc phục ạ,
    Em xin cảm ơn

    Kiểm tra file access bạn có bị mất Modules: ModViethoaThongbao không? nếu mất tải lại và import vào file Access của bạn.
    Link Demo để tải: [Thủ Thuật] [Demo-Phần 2] Chuyển chữ Uni to ChrW để hiện thông báo tiếng việt
    File vẫn y nguyên bác ạ,
    kể cả code msgbox "thông báo", bình thường thì không bị lỗi font, mà giờ tự nhiên máy em lại bị lỗi font
    Em nghĩ cái này do cái khác chứ k phải do code hay file đó

    Xóa tất cả (Không chừa lại bất cứ cái gì )rồi đưa File bạn lên đây.
  • RE: Demo Tổng hợp tất cả các kiểu thông báo tiếng việt trong Access

    yamakashi2003 > 25-11-20, 01:11 AM

    (24-11-20, 11:23 PM)maidinhdan Đã viết:
    (24-11-20, 10:23 PM)yamakashi2003 Đã viết:
    (24-11-20, 09:54 PM)maidinhdan Đã viết:
    (24-11-20, 09:04 PM)yamakashi2003 Đã viết: Các bác cho em hỏi tuần trước em có tải demo này về thì hiển thị tiếng việt tốt,
    Nhưng hôm nay. em mở lại file này, tất cả thông báo msgbox tiếng việt lại bị lỗi,
    Máy em không hề cài lại win hay chỉnh sửa gì,
    mấy hôm trước hình như có dùng ccleaner dọn rác thôi
    Nhờ ai biết chỉ giúp em cách khắc phục ạ,
    Em xin cảm ơn

    Kiểm tra file access bạn có bị mất Modules: ModViethoaThongbao không? nếu mất tải lại và import vào file Access của bạn.
    Link Demo để tải: [Thủ Thuật] [Demo-Phần 2] Chuyển chữ Uni to ChrW để hiện thông báo tiếng việt
    File vẫn y nguyên bác ạ,
    kể cả code msgbox "thông báo", bình thường thì không bị lỗi font, mà giờ tự nhiên máy em lại bị lỗi font
    Em nghĩ cái này do cái khác chứ k phải do code hay file đó

    Xóa tất cả (Không chừa lại bất cứ cái gì )rồi đưa File bạn lên đây.
    Em nghĩ là do máy em bác ạ, hình như bắt đầu từ khi em chạy ccleaner thì nó bị lỗi font như vậy,
    dùng code: msgbox "thông báo", nó cũng báo lỗi, ( bình thường chữ "thông báo" hiện trong msgbox hiển thị tốt mà k cần thêm code, công cụ gì cả)
    mà dùng macro "thông báo" cũng lỗi font
    Em thử cả bên excel cũng lỗi vậy
    Em gửi ảnh lỗi mong bác và mọi người chỉ giúp
    https://drive.google.com/file/d/1x4UVe3m...sp=sharing
  • RE: Demo Tổng hợp tất cả các kiểu thông báo tiếng việt trong Access

    maidinhdan > 25-11-20, 09:34 PM

    (25-11-20, 01:11 AM)yamakashi2003 Đã viết: Em nghĩ là do máy em bác ạ, hình như bắt đầu từ khi em chạy ccleaner thì nó bị lỗi font như vậy,
    dùng code: msgbox "thông báo", nó cũng báo lỗi, ( bình thường chữ "thông báo" hiện trong msgbox hiển thị tốt mà k cần thêm code, công cụ gì cả)
    mà dùng macro "thông báo" cũng lỗi font
    Em thử cả bên excel cũng lỗi vậy
    Em gửi ảnh lỗi mong bác và mọi người chỉ giúp
    https://drive.google.com/file/d/1x4UVe3m...sp=sharing

    Lấy file của bạn mang lên máy khác thử xem...! Nếu mà dùng đến Macro mà còn lỗi font thì do hệ điều hành của bạn rồi.