Để Msgbox hiển thị ngôn ngữ tiếng Việt

Ðề: Để Msgbox hiển thị ngôn ngữ tiếng Việt

Nhấp chuột phải ở desktop, chọn properties, appearace, advanced, nhấp vào messagebox, chọn kiểu chữ là MS Sans Serif. Những thành phần phần khác đều chọn front trên là được. Chúc thành công.
 
Ðề: Để Msgbox hiển thị ngôn ngữ tiếng Việt

oh! vấn đề không giản như vậy đâu bạn ah!

mặc dù Ms Access hỗ trợ Unicoe, nhưng code editor của nó thì lại không nhập Unicode được. vì vậy bạn nên sử dụng bộ mã TCVN3, để nhập thông báo.
điều kiện hiển thị giống như bạn longho nói. tuy nhiên, font Ms San serif phải là bộ font tiếng việt(Ms San serif của việtkey chẳng hạn), hoặcc bạn có thể chọn các font VK Sans Serif, ABC... thì mới hiển thị được.
Chúc bạn thành công!
 
Ðề: Để Msgbox hiển thị ngôn ngữ tiếng Việt

Bạn Nguyễn nêu vấn đề chính xác vì trong khi coding (môi trường soản thảo của VB) chúng ta không thể gõ dấu tiếng Việt được. Để khắc phục bạn làm theo nguyên tắc sau:
1. Hãy chuyển đổi font cho hệ soạn thảo vb là Abc (các font tiếng viết chuẩn Abc ví dụ như : .vntime ....)
2. Trong các lệnh liên quan đến Msgbox... InputBox.... bạn làm như sau:
Ví dụ bạn muốn có dòng thông báo đặt trong Mstring như sau:
Mstring = "Bạn đã nhập sai thông tin" <------ Bạn gõ bằng bàng mã Abc
Msgbox TtoU(Mstring)
3. Vậy vấn đề là ta phải có 1 hàm chuyển đổi font ABC ---> Unicode
Tặng các bạn Hàm TtoU như sau:


Public Function TtoU(candoi As String) As String
Dim Uchuoi As String, Tchuoi As String, dai As Byte, I As Byte, Kq As String * 1, vitri As Byte, tstr As String
tstr = tstr & ChrW(&HE1) & ChrW(&HE0) & ChrW(&H1EA3) & ChrW(&HE3) & ChrW(&H1EA1) & ChrW(&H103) & ChrW(&H1EAF) & ChrW(&H1EB1) & ChrW(&H1EB3) & ChrW(&H1EB5) & ChrW(&H1EB7) & ChrW(&HE2) & ChrW(&H1EA5) & ChrW(&H1EA7) & ChrW(&H1EA9) & ChrW(&H1EAB) & ChrW(&H1EAD) & ChrW(&HE9) & ChrW(&HE8) & ChrW(&H1EBB)
tstr = tstr & ChrW(&H1EBD) & ChrW(&H1EB9) & ChrW(&HEA) & ChrW(&H1EBF) & ChrW(&H1EC1) & ChrW(&H1EC3) & ChrW(&H1EC5) & ChrW(&H1EC7) & ChrW(&HED) & ChrW(&HEC) & ChrW(&H1EC9) & ChrW(&H129) & ChrW(&H1ECB) & ChrW(&HF3) & ChrW(&HF2) & ChrW(&H1ECF) & ChrW(&HF5) & ChrW(&H1ECD) & ChrW(&HF4) & ChrW(&H1ED1)
tstr = tstr & ChrW(&H1ED3) & ChrW(&H1ED5) & ChrW(&H1ED7) & ChrW(&H1ED9) & ChrW(&H1A1) & ChrW(&H1EDB) & ChrW(&H1EDD) & ChrW(&H1EDF) & ChrW(&H1EE1) & ChrW(&H1EE3) & ChrW(&HFA) & ChrW(&HF9) & ChrW(&H1EE7) & ChrW(&H169) & ChrW(&H1EE5) & ChrW(&H1B0) & ChrW(&H1EE9) & ChrW(&H1EEB) & ChrW(&H1EED) & ChrW(&H1EEF)
tstr = tstr & ChrW(&H1EF1) & ChrW(&HFD) & ChrW(&H1EF3) & ChrW(&H1EF7) & ChrW(&H1EF9) & ChrW(&H1EF5) & ChrW(&H111) & ChrW(&HC1) & ChrW(&HC0) & ChrW(&H1EA2) & ChrW(&HC3) & ChrW(&H1EA0) & ChrW(&H102) & ChrW(&H1EAE) & ChrW(&H1EB0) & ChrW(&H1EB2) & ChrW(&H1EB4) & ChrW(&H1EB6) & ChrW(&HC2) & ChrW(&H1EA4)
tstr = tstr & ChrW(&H1EA6) & ChrW(&H1EA8) & ChrW(&H1EAA) & ChrW(&H1EAC) & ChrW(&HC9) & ChrW(&HC8) & ChrW(&H1EBA) & ChrW(&H1EBC) & ChrW(&H1EB8) & ChrW(&HCA) & ChrW(&H1EBE) & ChrW(&H1EC0) & ChrW(&H1EC2) & ChrW(&H1EC4) & ChrW(&H1EC6) & ChrW(&HCD) & ChrW(&HCC) & ChrW(&H1EC8) & ChrW(&H128) & ChrW(&H1ECA)
tstr = tstr & ChrW(&HD3) & ChrW(&HD2) & ChrW(&H1ECE) & ChrW(&HD5) & ChrW(&H1ECC) & ChrW(&HD4) & ChrW(&H1ED0) & ChrW(&H1ED2) & ChrW(&H1ED4) & ChrW(&H1ED6) & ChrW(&H1ED8) & ChrW(&H1A0) & ChrW(&H1EDA) & ChrW(&H1EDC) & ChrW(&H1EDE) & ChrW(&H1EE0) & ChrW(&H1EE2) & ChrW(&HDA) & ChrW(&HD9) & ChrW(&H1EE6)
tstr = tstr & ChrW(&H168) & ChrW(&H1EE4) & ChrW(&H1AF) & ChrW(&H1EE8) & ChrW(&H1EEA) & ChrW(&H1EEC) & ChrW(&H1EEE) & ChrW(&H1EF0) & ChrW(&HDD) & ChrW(&H1EF2) & ChrW(&H1EF6) & ChrW(&H1EF8) & ChrW(&H1EF4) & ChrW(&H110)
Tchuoi = "¸µ¶·¹¨¾»¼½Æ©ÊÇÈÉËÐÌÎÏѪÕÒÓÔÖÝ×ØÜÞãßáâä«èåæçé¬íêëìîóïñòô­øõö÷ùýúûüþ®¸µ¶·¹¡¡¡¡¡¡¢¢¢¢¢¢ÐÌÎÏÑ££££££Ý×ØÜÞãßáâ䤤¤¤¤¤¥¥¥¥¥¥óïñòô¦¦¦¦¦¦ýúûüþ§"
Uchuoi = tstr
TtoU = ""
Kq = ""
For I = 1 To Len(candoi)
Kq = Mid(candoi, I, 1)
vitri = InStr(1, Tchuoi, Kq, vbBinaryCompare)
If vitri <> 0 Then
TtoU = TtoU & Mid(Uchuoi, vitri, 1)
Else
TtoU = TtoU & Kq
End If
Next
End Function
 
Ðề: Để Msgbox hiển thị ngôn ngữ tiếng Việt

Xin góp với anh em một ý:

Không ai nói là không hiển thị được tiếng Việt trên MsgBox hoặc trên cửa sổ VBA. Nhưng hoặc là anh em phải định lại property trong Desktop - Appearance của hệ thống, hoặc phải viết thêm thủ tục phức tạp cầu kỳ.

Mà bảng mã lại không hề là Unicode, trong khi xu hướng tất yếu hiện nay là Unicode. Một điều các bạn sẽ không ngờ rằng, dù không thể hiện được Unicode có dấu tiếng Việt trên MsgBox nếu làm theo "truyền thống", nhưng vẫn hoàn toàn thực hiện mà không phải tốn quá nhiều công sức.

Các bạn thử nhé:

1. Làm một table resource (tblMessages) chứa các thông báo mà bạn muốn, nó có hai cột:
tagName (Text, 20 hoặc hơn tùy), content (Text, 255)
Trong đó tagName là tên để chúng ta tham chiếu sau này, content là nội dung của thông báo.
Ví dụ tôi có một record mà:
tagName: NO_RECORD
content: Hiện tại bây giờ trong bảng chưa có bất kỳ dữ liệu nào (gõ theo Unicode nhé)

2. Tôi có một thủ tục nào đó, mà trong đó tôi cần hiện thông báo trên:
...
Dim mess
mess = DLookup("content", "tblMessages", "tagName = 'NO_RECORD'")
mess = IIf(IsNull(mess), "chuoi thong bao tu che neu khong tim thay", mess)
MsgBox mess
...

Bạn sẽ thấy nó hiện đầy đủ dấu má nghiêm chỉnh. Thử đi các bạn.
 
Ðề: Để Msgbox hiển thị ngôn ngữ tiếng Việt

Đúng như bác phat nói ta nên tự chế 1 form để hiện thông báo, nó có thể hiện được tất cả các loại font mà ta chọn.
Về cơ bản ta xem msgbox là 1 form dạng popup và có 1 textbox nằm trong cái form đó. Vậy cứ khi nào cần gọi msgbox thì ta cho gọi cái form đó lên :
Thay vì msgbox "Bác phat chịu chơi nhưng hay chơi chịu" :happy3: thì ta cho 1 lệnh DoCmd.OpenForm "Thongbao", acNormal. Còn để lấy thông báo cho vào trong textbox của form thì ta cho cái đoạn code naỳ vào khi form load:
Public V_thongbao
V_thongbao = 1 '(2, 3, ..... tuy theo STT cua thong bao voi 1 là STT trong tbl_thongbao)
txt1 = DLookup("Noidung", "tbl_thongbao", "STT='" & V_thongbao & "'")
 
Sửa lần cuối:
Ðề: Để Msgbox hiển thị ngôn ngữ tiếng Việt

Các bác nghĩ kỹ chưa, chỉ viết có 1 hàm vào và cứ vô tư mà lập trình với cách gõ tiếng Việt... khi debug hoặc đọc lại mã nguồn dễ hiểu, chứ cứ tra qua tra lại trong cái bảng từ điển như các bác thì e nó có vấn đề.
 
Ðề: Để Msgbox hiển thị ngôn ngữ tiếng Việt

Các bác nghĩ kỹ chưa, chỉ viết có 1 hàm vào và cứ vô tư mà lập trình với cách gõ tiếng Việt... khi debug hoặc đọc lại mã nguồn dễ hiểu, chứ cứ tra qua tra lại trong cái bảng từ điển như các bác thì e nó có vấn đề.

Nếu bạn dangtuanson có sử dụng VB thì bạn sẽ biết đến resource file chứ? Và bạn cũng sẽ biết localization chứ? Việc mà tôi góp ý thật ra là "ăn cắp" ý tưởng từ đó mà thôi, sau đó chế biến lại một chút cho hợp tình cảnh.

Trong lập trình, người ta chuộng dùng resource file vì như thế khi hiệu chỉnh không phải chỉnh nhiều nơi.

Đồng thời, khi chuyển ngữ từ Việt sang Anh hay Anh sang Việt (ví dụ chỉ có hai ngôn ngữ), chỉ cần trỏ tham chiếu đến resource file cần thiết là OK.

Ở đây không phải là tôi hay ai khác suy nghĩ kỹ hay không, mà chúng tôi chỉ học tập và kế thừa từ những cao nhân khác mà thôi.

Có thể bạn không ưng cách này. Không sao. Bạn cứ giữ phong cách riêng của mình. Chẳng ai chê trách gì bạn mà còn hoan nghênh nữa.
 
Ðề: Để Msgbox hiển thị ngôn ngữ tiếng Việt

Các bạn ơi! Ai biết làm sao để thông báo trên msgbox hiển thị tiếng Việt, mình dùng Unicode để đánh.

Bạn có thể tham khảo ở chỗ này:
http://www.*********.com/forum/showthread.php?t=16729&page=3
 
Ðề: Để Msgbox hiển thị ngôn ngữ tiếng Việt

Làm sao biết được cái msgbox của Access nó dùng font chữ nào để chuyển chữ từ ABC sang UNICODE?
Nếu là font ABC .vnTime thì không cần chuyển sang làm gì, còn là font tahoma thì mới cần chuyển.
Có bác cao thủ nào làm được?
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top