-
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:
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.
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 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 -
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:
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
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.
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
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:
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 đó -
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:
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. -
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:
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.
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.