yamakashi2003 > 03-08-20, 12:34 AM
(02-08-20, 11:05 PM)ongke0711 Đã 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, đã(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é.
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.
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
#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 String, Optional ByVal Buttons As VbMsgBoxStyle = vbOKOnly, Optional ByVal sTitleUni As String = vbNullString) As VbMsgBoxResult
msgBoxUni = MessageBoxW(0, StrPtr(sMsgUni), StrPtr(sTitleUni), Buttons)
End Function
yamakashi2003 > 04-08-20, 12:25 AM
(03-08-20, 08:01 AM)ongke0711 Đã viết:Code trên chạy tốt rồi ạ,(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 String, Optional ByVal Buttons As VbMsgBoxStyle = vbOKOnly, Optional ByVal sTitleUni As String = vbNullString) As VbMsgBoxResult
msgBoxUni = MessageBoxW(0, StrPtr(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
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 ạ
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.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,
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:
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
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
yamakashi2003 > 24-11-20, 10:23 PM
(24-11-20, 09:54 PM)maidinhdan Đã viết:File vẫn y nguyên bác ạ,(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
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:File vẫn y nguyên bác ạ,(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
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 đó
yamakashi2003 > 25-11-20, 01:11 AM
(24-11-20, 11:23 PM)maidinhdan Đã 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,(24-11-20, 10:23 PM)yamakashi2003 Đã viết:(24-11-20, 09:54 PM)maidinhdan Đã viết:File vẫn y nguyên bác ạ,(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
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.
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