• Hàm VniToUni
  • Hàm VniToUni

    pherotao > 13-12-17, 01:11 PM

    Nhờ anh / chị xem giúp e bảng code này. Khi gõ chữ "Đơn Hàng" nó không hiển thị đầy đủ chữ. E không biết tại sao.

    Mã:
    Option Explicit
    Public Function VniToUni(str$) As String
       Dim VNI$, UNI$, i&, sUni$, arrUNI() As String
       VNI = "aù,aø,aû,aõ,aï,aâ,aê,aá,aà,aå,aã,aä,aé,aè,aú,aü,aë,AÙ,AØ,AÛ,AÕ,AÏ,AÂ,AÊ,AÁ,AÀ,AÅ,AÃ,AÄ,AÉ,AÈ,AÚ,AÜ,AË,eù,eø,eû,eõ,eï,eâ,eá,eà,eå,eã,eä,EÙ,EØ,EÛ,EÕ,EÏ,EÂ,EÁ,EÀ,EÅ,EÃ,EÄ,í ,ì ,æ ,ó ,ò ,Í ,Ì ,Æ ,Ó ,Ò ,où,oø,oû,oõ,oï,oâ,ô,oá,oà,oå,oã,oä,ôù,ôø,ôû,ôõ,ôï,OÙ,OØ,OÛ,OÕ,OÏ,OÂ,Ô ,OÁ,OÀ,OÅ,OÃ,OÄ,ÔÙ,ÔØ,ÔÛ,ÔÕ,ÔÏ,uù,uø,uû,uõ,uï,ö ,öù,öø,öû,öõ,öï,UÙ,UØ,UÛ,UÕ,UÏ,Ö ,ÖÙ,ÖØ,ÖÛ,ÖÕ,ÖÏ,yù,yø,yû,yõ,î ,YÙ,YØ,YÛ,YÕ,Î ,ñ ,Ñ "
       UNI = "E1,E0,1EA3,E3,1EA1,E2,103,1EA5,1EA7,1EA9,1EAB,1EAD,1EAF,1EB1,1EB3,1EB5,1EB7,C1,C0,1EA2,C3,1EA0,C2,102,1EA4,1EA6,1EA8,1EAA,1EAC,1EAE,1EB0,1EB2,1EB4,1EB6,E9,E8,1EBB,1EBD,1EB9,EA,1EBF,1EC1,1EC3,1EC5,1EC7,C9,C8,1EBA,1EBC,1EB8,CA,1EBE,1EC0,1EC2,1EC4,1EC6,ED,EC,1EC9,129,1ECB,CD,CC,1EC8,128,1ECA,F3,F2,1ECF,F5,1ECD,F4,1A1,1ED1,1ED3,1ED5,1ED7,1ED9,1EDB,1EDD,1EDF,1EE1,1EE3,D3,D2,1ECE,D5,1ECC,D4,1A0,1ED0,1ED2,1ED4,1ED6,1ED8,1EDA,1EDC,1EDE,1EE0,1EE2,FA,F9,1EE7,169,1EE5,1B0,1EE9,1EEB,1EED,1EEF,1EF1,DA,D9,1EE6,168,1EE4,1AF,1EE8,1EEA,1EEC,1EEE,1EF0,FD,1EF3,1EF7,1EF9,1EF5,DD,1EF2,1EF6,1EF8,1EF4,111,110"
       arrUNI = Split(UNI, ",")
        For i = 1 To Len(str)
               If InStr(VNI, Mid(str, i, 2)) > 0 And Len(Mid(str, i, 2)) = 2 Then
                   sUni = sUni & ChrW("&h" & arrUNI(InStr(VNI, Mid(str, i, 2)) \ 3))
                    i = i + 1
               ElseIf InStr(VNI, Mid(str, i, 1) & " ") > 0 Then
                   sUni = sUni & ChrW("&h" & arrUNI(InStr(VNI, Mid(str, i, 1) & " ") \ 3))
               End If
           If InStr(VNI, Mid(str, i, 1)) = 0 Or InStr("a,A,e,E,o,O,u,U,y,Y, ", Mid(str, i, 1)) > 0 Then sUni = sUni & Mid(str, i, 1)
       Next
       VniToUni = sUni
    End Function

    p/s: Nguồn Internet.truongphu
  • RE: Hàm VniToUni

    lehongduc > 14-12-17, 08:28 AM

    Chào Bạn,

    Thay vì trả lời câu hỏi của Bạn theo kiểu chỉ cho 1 chiêu, để rồi Bạn chỉ biết chiêu nào được chỉ thôi, tôi sẽ chỉ cho Bạn cách học sao cho chiêu nào cũng hiểu rõ ràng và mạch lạc.
    Đây là cách tôi chỉ cho Bạn: Bạn hãy đọc tài liệu sau khoảng 1 ngày và thực tập thêm 1 ngày nữa, sang ngày thứ 3 thì Bạn đạt đến cảnh giới xử lý Unicode như ăn cơm hàng ngày vậy.

    Đây là tài liệu Bạn cần đọc và học: http://www.vovisoft.com/unicode/BasicUnicode.htm

    Tôi thành thật góp ý cho những Bạn nào muốn học lập trình: đừng bao giờ học theo kiểu "xin 1 chiêu" mà hãy học từ căn bản.
  • RE: Hàm VniToUni

    DooHoaangPhuuc > 14-12-17, 10:41 PM

    (14-12-17, 08:28 AM)lehongduc Đã viết: Tôi thành thật góp ý cho những Bạn nào muốn học lập trình: đừng bao giờ học theo kiểu "xin 1 chiêu" mà hãy học từ căn bản.

    Để học lập trình căn bản dành riêng cho Access  thì nên học từ tài liệu nào đầu tiên rồi tiếp đến tài liệu nào. 
    Vì quá nhiều tài liệu liên quan về lập trình, nhưng khi đọc vào , mỗi tài liệu đôi khi lại đi chuyên sâu đôi khi đi xa khỏi căn bản về lập trình cho Access. Đối với người mới tiếp cận vào cảm thấy như quá sức để phù hợp với các tài liệu đấy.
    Nhờ Chú HongDuc có thể hướng dẫn các tài liệu cơ bản cho phần lập trình cho Access.
    Cảm ơn Chú.
    Cháu DooHoaangPhuuc
  • RE: Hàm VniToUni

    lehongduc > 15-12-17, 01:14 PM

    (14-12-17, 10:41 PM)DooHoaangPhuuc Đã viết:
    (14-12-17, 08:28 AM)lehongduc Đã viết: Tôi thành thật góp ý cho những Bạn nào muốn học lập trình: đừng bao giờ học theo kiểu "xin 1 chiêu" mà hãy học từ căn bản.

    Để học lập trình căn bản dành riêng cho Access  thì nên học từ tài liệu nào đầu tiên rồi tiếp đến tài liệu nào. 
    Vì quá nhiều tài liệu liên quan về lập trình, nhưng khi đọc vào , mỗi tài liệu đôi khi lại đi chuyên sâu đôi khi đi xa khỏi căn bản về lập trình cho Access. Đối với người mới tiếp cận vào cảm thấy như quá sức để phù hợp với các tài liệu đấy.
    Nhờ Chú HongDuc có thể hướng dẫn các tài liệu cơ bản cho phần lập trình cho Access.
    Cảm ơn Chú.
    Cháu DooHoaangPhuuc

    Chào các Bạn,
    Tôi thấy các Bạn ở BQT diễn đàn này đã có sẵn những nội dung từ căn bản về lập trình VBA trong Access rồi.

    Về cách học, riêng tôi nhận thấy các Bạn mới tìm hiểu về VBA trong Access lại hay bỏ qua việc trước hết phải nắm vững các thành phần của 1 file Access và các đặc trưng căn bản của Access (cũng đã được BQT diễn đàn trình bày, sắp xếp chu đáo rồi). Chính vì vậy khi sử dụng VBA để làm chủ và điều khiển Access thì gặp quá nhiều lúng túng.

    Tôi xin nêu 1 ví dụ: các Bạn muốn thiết kế và dùng VBA để điều khiển được 1 main-form có 1 hoặc nhiều sub-form, nhưng lại không biết rõ ràng các thuộc tính căn bản của form và các control có liên quan, hay dùng tới trên form.
    Hay 1 ví dụ khác: chúng ta muốn làm chủ được Unicode để thiết kế ứng dụng có hiệu quả, nhưng lại bỏ qua, không biết một cách căn bản về Unicode (Unicode là gì? Cấu trúc của nó ra sao?, ...) thì làm sao "lập trình với Unicode" được.
     
    Như vậy thì khác gì muốn vẽ được chú voi xinh đẹp, nhưng không biết tường tận đầu voi ra sao, tai voi như thế nào, vòi voi để làm gì, thì làm sao vẽ được. Hoặc có vẽ ra lại thành con gì đó chứ chẳng phải voi như mình muốn.

    Muốn thành công, hãy chịu khó bắt đầu từ lớp vở lòng các Bạn ạ.
  • RE: Hàm VniToUni

    pherotao > 15-12-17, 04:17 PM

    Cám ơn anh Đức đã quan tâm trả lời ạ. E chỉ hỏi đoạn code trên sai ở chỗ nào thôi, để tụi e khắc phục,... mà anh khuyên tụi e học lại từ đầu thì tụi e cũng đành nghe theo vậy.