Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Help] Mong giúp đỡ về unicode tổ hợp và dựng sẵn
#1
Em chào mọi người. Em mong mọi người giúp đỡ. Chẳng là phần mềm của em chạy trên nhiều máy, nhiều người nhập dữ liệu cùng lúc. Mặc địch là sử dụng unicode tổ hợp để nhập dữ liệu, nhưng có một số người không để ý lại chọn unicode dựng sẵn, thế là lại nảy sinh phức tạp trong phần tìm kiếm. Có cách nào để tìm tất cả các record nhập bằng unicode dựng sẵn để e nhập lại bằng unicode tổ hợp không ạ. Em cám ơn
Chữ ký của nam8384 nam8384,gia nhập Thủ Thuật Access từ 17-03 -16.
Reply
Những người đã cảm ơn
#2
Tại sao bạn không đổi từ tổ hợp sang dựng sẳn vậy? 
Unicode dựng sẳn nó phổ biến và tiện hơn tổ hợp chứ. Tổ hợp nó chiếm 2 ký (1 cho dấu + 1 cho ký tự) trong khi dựng sẳn chỉ là 1 ký tự dựng sẳn. Việc sắp xếp tiếng Việt theo mã dựng sẳn nó dễ hơn nhiều so với sắp xếp bằng mã tổ hợp.
Unicode tổ hợp nó là mặc định của Window, còn của bộ gõ tiếng Việt thì mặc định là dựng sẳn. Bạn nên tắt của windows.
Để chuyển từ Unicode tổ hợp sang dựng sẳn thì dùng cái hàm dứoi đây. Sau khi người dùng nhập liệu xong các textbox dạng chuỗi thì gọi hàm chuyển đổi text xong rồi mới lưu vào table.

- Copy đoạn code này vào module, đặt tên tuỳ ý. 
- Ở sự kiện textbox_AfterUpdate thì gọi hàm:

        Me.Textbox2.Text = SourceToDest (Me.Textbox1.Text, 1,1)


Mã PHP:
Option Compare Database
Option Explicit

Public Enum convert_dest
   dst_uni 
1
   dst_vni 
2
   dst_vn3 
3
   dst_windows1258 
4
   dst_khongdau 
5
End Enum

Public Enum convert_source
   src_uni 
1
   src_vni 
2
   src_vn3 
3
   src_windows1258 
4
End Enum

Private Const s_khong_dau As String "aaAAdDeEooOOuUaaaaaaaaaaaaaaaAAAAAAAAAAAAAAAeeeeeeeeeeEEEEEEEEEEiiiiiIIIIIoooooooooooooooOOOOOOOOOOOOOOOuuuuuuuuuuUUUUUUUUUUyyyyyYYYYY"

Private s_dung_san As Strings_to_hop As Strings_vni As Strings_vn3 As Strings_windows1258 As String
Private sort_dung_san As Stringsort_vni As Stringsort_vn3 As String


Private Sub InitVietnameseStr()
   Dim k As Longa() As Byte
   Dim dungsan_bytes
(), tohop_bytes(), vni_bytes(), vn3_bytes(), windows1258_bytes()
   Dim sort_dungsan_bytes(), sort_vn3_bytes(), sort_vni_bytes()

   If Len(s_dung_san) > 0 Then Exit Sub

   dungsan_bytes 
= Array(2260311940211711612340202016112440160121201761_
                         175
122401633022702250161301673016930171301653017330_
                         177
3017930181301753018330192016230195019301603016630_
                         168
3017030164301723017630178301803017430182302320187_
                         30
189302330185301933019530197301913019930200018630188_
                         30
20101843019230194301963019030198302360201304112370_
                         203
302040200304012050202302420207302450243020530221_
                         30
2233022530219302273021130213302153020930217302100_
                         206
30213021102043022030222302243021830226302103021230_
                         214
3020830216302490231301051250022930235302373023930_
                         233
3024130217023030104121802283023430236302383023230_
                         240
30243302473024930253024530242302463024830221024430)

   tohop_bytes = Array(2260311940211711612340202016112440_
                       160
1212017611751970039709397033970139703532260_
                       0
322609322603322601322603533103319331333113_
                       3
135365003650936503365013650353194003194093194_
                       0
33194013194035321032193213321132135310100_
                       3
10109310103310101310103532340032340932340332340_
                       1
32340353690036909369033690136903532020032020_
                       9
32020332020132020353105003105093105033105013_
                       105
035373003730937303373013730353111003111093_
                       111
03311101311103531611031611931611331611131611_
                       35
324400324409324403324401324403537900379093790_
                       3
3790137903531601031601931601331601131601353212_
                       0
032120932120332120132120353117003117093117033_
                       117
01311703531761031761931761331761131761353850_
                       0
38509385033850138503531751031751931751331751_
                       1
3175135312100312109312103312101312103538900389_
                       0
938903389013890353)

   vni_bytes = Array(970226097023406501940650202024103202090_
                     32
010102260690194024403201110226021203207901940_
                     246
0320214032097024809702510970245097024909702390_
                     97
02240970229097022709702250970228097023209702500_
                     97
02520970233097023506502160650219065021306502170_
                     65
02070650192065019706501950650193065019606502000_
                     65
0218065022006502010650203010102480101025101010_
                     245
010102490101023901010224010102290101022701010_
                     225
01010228069021606902190690213069021706902070_
                     69
01920690197069019506901930690196023603202300_
                     32
02430320237032024203202040320198032021103202050_
                     32
021003201110248011102510111024501110249011102390_
                     244
024802440251024402450244024902440239011102240_
                     111
0229011102270111022501110228079021607902190790_
                     213
07902170790207021202160212021902120213021202170_
                     212
02070790192079019707901950790193079019601170_
                     248
011702510117024501170249011702390246024802460_
                     251
0246024502460249024602390850216085021908502130_
                     85
021708502070214021602140219021402130214021702140_
                     207
01210248012102510121024501210249023803208902160_
                     89
021908902130890217024430320)

   vn3_bytes = Array(1690168016201610174016701700163017201710_
                     165
016401730166018101820183018401850199020002010_
                     202
020301870188018901900198018101820183018401850_
                     199
020002010202020301870188018901900198020402060_
                     207
020802090210021102120213021402040206020702080_
                     209
021002110212021302140215021602200221022202150_
                     216
022002210222022302250226022702280234023502360_
                     237
023802290230023102320233022302250226022702280_
                     234
023502360237023802290230023102320233023902410_
                     242
024302440245024602470248024902390241024202430_
                     244
024502460247024802490250025102520253025402500_
                     251
02520253024430)

   windows1258_bytes = Array(2260320313201940320213201713201613202513202413208113202440320_
                             80
1320212032025303202210320970261970711970981970271970721226026122607112260_
                             98
1226027122607213126131711319813127131721650261650711650981650271650721_
                             194
02611940711194098119402711940721212612171121981212712172110102611010711_
                             101
098110102711010721251261251711251981251271251721690261690711690981690271_
                             69
07212412612417112419812412712417211050261105071110509811050271105072173026_
                             1
73071173098173027173072111102611110711111098111102711110721811261811711811_
                             98
181127181172124402612440711244098124402712440721790261790711790981790271_
                             79
0721801261801711801981801271801721212026121207112120981212027121207211170_
                             26
1117071111709811170271117072125302612530711253098125302712530721850261850_
                             71
185098185027185072122102612210711221098122102712210721121026112107111210981_
                             121
02711210721890261890711890981890271890721)

   sort_dungsan_bytes = Array(480490500510520530540550560570_
                              58
059060061062063064091092093094095012301240_
                              125
01260970224016330227022501613031177301793018130_
                              175
3018330226016730169301713016530173309809901000171_
                              101
023201873018930233018530234019330195301973019130_
                              199
30102010301040105023602013041123702033010601070_
                              108
01090110011102420207302450243020530244021130213_
                              30
215302093021730161122130223302253021930227301120113_
                              0
11401150116011702490231301051250022930176123530237_
                              30
23930233302413011801190120012102433024730249302530_
                              245
301220650192016230195019301603021176301783018030_
                              174
301823019401663016830170301643017230660670680161_
                              69
020001863018830201018430202019230194301963019030198_
                              30
70071072073020402003040120502023074075076077078_
                              0
7902100206302130211020430212021030212302143020830_
                              216
301601220302223022430218302263080081082083084085_
                              0
217023030104121802283017512343023630238302323024030_
                              86
0870880890242302463024830221024430900)

   sort_vn3_bytes = Array(48049050051052053054055056057058059_
                          0
6006106206306409109209309409501230124012501260_
                          97
018101820183018401850168018701880189019001980169_
                          0
1990200020102020203098099010001740101020402060207_
                          0
208020901700210021102120213021401020103010401050_
                          215
021602200221022201060107010801090110011102230225_
                          0
226022702280171022902300231023202330172023402350_
                          236
023702380112011301140115011601170239024102420243_
                          0
244017302450246024702480249011801190120012102500_
                          251
02520253025401220650181018201830184018501610187_
                          0
188018901900198016201990200020102020203066067068_
                          0
16706902040206020702080209016302100211021202130214_
                          0
70071072073021502160220022102220740750760770780_
                          79
022302250226022702280164022902300231023202330165_
                          0
2340235023602370238080081082083084085023902410_
                          242
024302440166024502460247024802490860870880890_
                          250
02510252025302540900)

   sort_vni_bytes = Array(480320490320500320510320520320530320540320550320560320570320580320590320600320610_
                          32
06203206303206403209103209203209303209403209503201230320124032012503201260320970320970248097_
                          0
25109702450970249097023909702340970232097025009702520970233097023509702260970224097022909702270_
                          97
022509702280980320990320100032024103201010320101024801010251010102450101024901010239010102260101_
                          0
224010102290101022701010225010102280102032010303201040320105032023603202300320243032023703202420_
                          32
01060320107032010803201090320110032011103201110248011102510111024501110249011102390111022601110_
                          224
0111022901110227011102250111022802440320244024802440251024402450244024902440239011203201130320114_
                          0
32011503201160320117032011702480117025101170245011702490117023902460320246024802460251024602450246_
                          0
24902460239011803201190320120032012103201210248012102510121024501210249023803201220320650320650216_
                          0
6502190650213065021706502070650202065020006502180650220065020106502030650194065019206501970650195_
                          0
6501930650196066032067032068032020903206903206902160690219069021306902170690207069019406901920_
                          69
0197069019506901930690196070032071032072032073032020403201980320211032020503202100320740320750_
                          32
0760320770320780320790320790216079021907902130790217079020707901940790192079019707901950790193_
                          0
790196021203202120216021202190212021302120217021202070800320810320820320830320840320850320850216_
                          0
850219085021308502170850207021403202140216021402190214021302140217021402070860320870320880320890_
                          32
089021608902190890213089021702060320900320)

   ReDim a(268)
   For k 0 To 267
       a
(k) = dungsan_bytes(k)
   Next k
   s_dung_san 
a

   For k 
0 To 267
       a
(k) = vn3_bytes(k)
   Next k
   s_vn3 
a

   ReDim a
(508)
   For k 0 To 507
       a
(k) = tohop_bytes(k)
   Next k
   s_to_hop 
a

   ReDim a
(536)
   For k 0 To 535
       a
(k) = vni_bytes(k)
   Next k
   s_vni 
a

   For k 
0 To 535
       a
(k) = windows1258_bytes(k)
   Next k
   s_windows1258 
a

   ReDim a
(424)
   For k 0 To 423
       a
(k) = sort_dungsan_bytes(k)
   Next k
   sort_dung_san 
a

   For k 
0 To 423
       a
(k) = sort_vn3_bytes(k)
   Next k
   sort_vn3 
a

   ReDim a
(848)
   For k 0 To 847
       a
(k) = sort_vni_bytes(k)
   Next k
   sort_vni 
a

   Erase a
dungsan_bytestohop_bytesvni_bytesvn3_bytessort_dungsan_bytessort_vn3_bytessort_vni_bytes
End Sub

Public Function SourceToDest(ByVal text As Stringsource As convert_sourcedest As convert_dest) As String
   Dim s 
As Stringtemp As Stringkytu2 As String
   Dim n 
As Longindex As LongAs Long
   Dim nr 
As Long
   If source 
dest And source <> src_uni Then
       SourceToDest 
text
       Exit 
Function
   End If
   InitVietnameseStr

   text 
text " "
   s ""
   n 1
   k 
Len(text)

   While n k
       nr 
0
       Select 
Case source
       Case src_uni
src_vnisrc_windows1258:
           kytu2 Mid(textn2)
           If source src_uni Then
               index 
InStr(1s_to_hopkytu2)
               If index 14 Then
                   nr 
= (index 15) \ 2
                   n 
2
               End 
If
               If nr 0 Then
                   kytu2 
Mid(kytu211)
                   nr InStr(1s_dung_sankytu2)
                   n 1
               End 
If
           Else
               If source 
src_vni Then
                   temp 
s_vni
               Else
                   temp 
s_windows1258
               End 
If

               index InStr(1tempkytu2)
               If index Mod 2 1 Then
                   nr 
= (index 1) \ 2
                   n 
2
               End 
If
               If nr 0 Then
                   kytu2 
Mid(kytu211)
                   index InStr(1tempkytu2 " ")
                   If index 0 Then nr = (index 1) \ 2
                   n 
1
               End 
If
           End If
       Case Else
           kytu2 Mid(textn1)
           index InStr(1s_vn3kytu2)
           If index 0 Then nr index
           n 
1
       End Select

       If nr 
0 Then
           Select 
Case dest
           Case dst_uni
kytu2 Mid(s_dung_sannr1)
           Case dst_vnikytu2 Trim(Mid(s_vninr 12))
           Case dst_vn3kytu2 Mid(s_vn3nr1)
           Case dst_windows1258kytu2 Trim(Mid(s_windows1258nr 12))
           Case dst_khongdaukytu2 Mid(s_khong_daunr1)
           End Select
       End 
If

       s kytu2
   Wend

   SourceToDest 
s
End 
Function 



- Còn để sửa đổi CSDL hiện tại thì bạn có thể mở table, dùng vòng lặp duyệt qua từng Field dạng text rồi chuyển thành Unicode dựng sẳn.

Mã PHP:
Sub convUni()
[/
font][/size]

   Dim rs As DAO.Recordset
   Set rs 
CurrentDb.OpenRecordset("Select * From tblTest")
   rs.MoveFirst
   Do Until rs
.EOF
       rs
.Edit
       rs
!Hoten SourceToDest(rs!Hoten11)
       rs.Update
       rs
.MoveNext
   Loop
[size=medium][font=Georgia]End Sub 
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn nam8384
#3
(10-04-19, 12:45 PM)ongke0711 Đã viết: Tại sao bạn không đổi từ tổ hợp sang dựng sẳn vậy? 
Unicode dựng sẳn nó phổ biến và tiện hơn tổ hợp chứ. Tổ hợp nó chiếm 2 ký (1 cho dấu + 1 cho ký tự) trong khi dựng sẳn chỉ là 1 ký tự dựng sẳn. Việc sắp xếp tiếng Việt theo mã dựng sẳn nó dễ hơn nhiều so với sắp xếp bằng mã tổ hợp.
Unicode tổ hợp nó là mặc định của Window, còn của bộ gõ tiếng Việt thì mặc định là dựng sẳn. Bạn nên tắt của windows.
Để chuyển từ Unicode tổ hợp sang dựng sẳn thì dùng cái hàm dứoi đây. Sau khi người dùng nhập liệu xong các textbox dạng chuỗi thì gọi hàm chuyển đổi text xong rồi mới lưu vào table.

- Copy đoạn code này vào module, đặt tên tuỳ ý. 
- Ở sự kiện textbox_AfterUpdate thì gọi hàm:

        Me.Textbox2.Text = SourceToDest (Me.Textbox1.Text, 1,1)


Mã PHP:
Option Compare Database
Option Explicit

Public Enum convert_dest
   dst_uni 
1
   dst_vni 
2
   dst_vn3 
3
   dst_windows1258 
4
   dst_khongdau 
5
End Enum

Public Enum convert_source
   src_uni 
1
   src_vni 
2
   src_vn3 
3
   src_windows1258 
4
End Enum

Private Const s_khong_dau As String "aaAAdDeEooOOuUaaaaaaaaaaaaaaaAAAAAAAAAAAAAAAeeeeeeeeeeEEEEEEEEEEiiiiiIIIIIoooooooooooooooOOOOOOOOOOOOOOOuuuuuuuuuuUUUUUUUUUUyyyyyYYYYY"

Private s_dung_san As Strings_to_hop As Strings_vni As Strings_vn3 As Strings_windows1258 As String
Private sort_dung_san As Stringsort_vni As Stringsort_vn3 As String


Private Sub InitVietnameseStr()
   Dim k As Longa() As Byte
   Dim dungsan_bytes
(), tohop_bytes(), vni_bytes(), vn3_bytes(), windows1258_bytes()
   Dim sort_dungsan_bytes(), sort_vn3_bytes(), sort_vni_bytes()

   If Len(s_dung_san) > 0 Then Exit Sub

   dungsan_bytes 
= Array(2260311940211711612340202016112440160121201761_
                         175
122401633022702250161301673016930171301653017330_
                         177
3017930181301753018330192016230195019301603016630_
                         168
3017030164301723017630178301803017430182302320187_
                         30
189302330185301933019530197301913019930200018630188_
                         30
20101843019230194301963019030198302360201304112370_
                         203
302040200304012050202302420207302450243020530221_
                         30
2233022530219302273021130213302153020930217302100_
                         206
30213021102043022030222302243021830226302103021230_
                         214
3020830216302490231301051250022930235302373023930_
                         233
3024130217023030104121802283023430236302383023230_
                         240
30243302473024930253024530242302463024830221024430)

   tohop_bytes = Array(2260311940211711612340202016112440_
                       160
1212017611751970039709397033970139703532260_
                       0
322609322603322601322603533103319331333113_
                       3
135365003650936503365013650353194003194093194_
                       0
33194013194035321032193213321132135310100_
                       3
10109310103310101310103532340032340932340332340_
                       1
32340353690036909369033690136903532020032020_
                       9
32020332020132020353105003105093105033105013_
                       105
035373003730937303373013730353111003111093_
                       111
03311101311103531611031611931611331611131611_
                       35
324400324409324403324401324403537900379093790_
                       3
3790137903531601031601931601331601131601353212_
                       0
032120932120332120132120353117003117093117033_
                       117
01311703531761031761931761331761131761353850_
                       0
38509385033850138503531751031751931751331751_
                       1
3175135312100312109312103312101312103538900389_
                       0
938903389013890353)

   vni_bytes = Array(970226097023406501940650202024103202090_
                     32
010102260690194024403201110226021203207901940_
                     246
0320214032097024809702510970245097024909702390_
                     97
02240970229097022709702250970228097023209702500_
                     97
02520970233097023506502160650219065021306502170_
                     65
02070650192065019706501950650193065019606502000_
                     65
0218065022006502010650203010102480101025101010_
                     245
010102490101023901010224010102290101022701010_
                     225
01010228069021606902190690213069021706902070_
                     69
01920690197069019506901930690196023603202300_
                     32
02430320237032024203202040320198032021103202050_
                     32
021003201110248011102510111024501110249011102390_
                     244
024802440251024402450244024902440239011102240_
                     111
0229011102270111022501110228079021607902190790_
                     213
07902170790207021202160212021902120213021202170_
                     212
02070790192079019707901950790193079019601170_
                     248
011702510117024501170249011702390246024802460_
                     251
0246024502460249024602390850216085021908502130_
                     85
021708502070214021602140219021402130214021702140_
                     207
01210248012102510121024501210249023803208902160_
                     89
021908902130890217024430320)

   vn3_bytes = Array(1690168016201610174016701700163017201710_
                     165
016401730166018101820183018401850199020002010_
                     202
020301870188018901900198018101820183018401850_
                     199
020002010202020301870188018901900198020402060_
                     207
020802090210021102120213021402040206020702080_
                     209
021002110212021302140215021602200221022202150_
                     216
022002210222022302250226022702280234023502360_
                     237
023802290230023102320233022302250226022702280_
                     234
023502360237023802290230023102320233023902410_
                     242
024302440245024602470248024902390241024202430_
                     244
024502460247024802490250025102520253025402500_
                     251
02520253024430)

   windows1258_bytes = Array(2260320313201940320213201713201613202513202413208113202440320_
                             80
1320212032025303202210320970261970711970981970271970721226026122607112260_
                             98
1226027122607213126131711319813127131721650261650711650981650271650721_
                             194
02611940711194098119402711940721212612171121981212712172110102611010711_
                             101
098110102711010721251261251711251981251271251721690261690711690981690271_
                             69
07212412612417112419812412712417211050261105071110509811050271105072173026_
                             1
73071173098173027173072111102611110711111098111102711110721811261811711811_
                             98
181127181172124402612440711244098124402712440721790261790711790981790271_
                             79
0721801261801711801981801271801721212026121207112120981212027121207211170_
                             26
1117071111709811170271117072125302612530711253098125302712530721850261850_
                             71
185098185027185072122102612210711221098122102712210721121026112107111210981_
                             121
02711210721890261890711890981890271890721)

   sort_dungsan_bytes = Array(480490500510520530540550560570_
                              58
059060061062063064091092093094095012301240_
                              125
01260970224016330227022501613031177301793018130_
                              175
3018330226016730169301713016530173309809901000171_
                              101
023201873018930233018530234019330195301973019130_
                              199
30102010301040105023602013041123702033010601070_
                              108
01090110011102420207302450243020530244021130213_
                              30
215302093021730161122130223302253021930227301120113_
                              0
11401150116011702490231301051250022930176123530237_
                              30
23930233302413011801190120012102433024730249302530_
                              245
301220650192016230195019301603021176301783018030_
                              174
301823019401663016830170301643017230660670680161_
                              69
020001863018830201018430202019230194301963019030198_
                              30
70071072073020402003040120502023074075076077078_
                              0
7902100206302130211020430212021030212302143020830_
                              216
301601220302223022430218302263080081082083084085_
                              0
217023030104121802283017512343023630238302323024030_
                              86
0870880890242302463024830221024430900)

   sort_vn3_bytes = Array(48049050051052053054055056057058059_
                          0
6006106206306409109209309409501230124012501260_
                          97
018101820183018401850168018701880189019001980169_
                          0
1990200020102020203098099010001740101020402060207_
                          0
208020901700210021102120213021401020103010401050_
                          215
021602200221022201060107010801090110011102230225_
                          0
226022702280171022902300231023202330172023402350_
                          236
023702380112011301140115011601170239024102420243_
                          0
244017302450246024702480249011801190120012102500_
                          251
02520253025401220650181018201830184018501610187_
                          0
188018901900198016201990200020102020203066067068_
                          0
16706902040206020702080209016302100211021202130214_
                          0
70071072073021502160220022102220740750760770780_
                          79
022302250226022702280164022902300231023202330165_
                          0
2340235023602370238080081082083084085023902410_
                          242
024302440166024502460247024802490860870880890_
                          250
02510252025302540900)

   sort_vni_bytes = Array(480320490320500320510320520320530320540320550320560320570320580320590320600320610_
                          32
06203206303206403209103209203209303209403209503201230320124032012503201260320970320970248097_
                          0
25109702450970249097023909702340970232097025009702520970233097023509702260970224097022909702270_
                          97
022509702280980320990320100032024103201010320101024801010251010102450101024901010239010102260101_
                          0
224010102290101022701010225010102280102032010303201040320105032023603202300320243032023703202420_
                          32
01060320107032010803201090320110032011103201110248011102510111024501110249011102390111022601110_
                          224
0111022901110227011102250111022802440320244024802440251024402450244024902440239011203201130320114_
                          0
32011503201160320117032011702480117025101170245011702490117023902460320246024802460251024602450246_
                          0
24902460239011803201190320120032012103201210248012102510121024501210249023803201220320650320650216_
                          0
6502190650213065021706502070650202065020006502180650220065020106502030650194065019206501970650195_
                          0
6501930650196066032067032068032020903206903206902160690219069021306902170690207069019406901920_
                          69
0197069019506901930690196070032071032072032073032020403201980320211032020503202100320740320750_
                          32
0760320770320780320790320790216079021907902130790217079020707901940790192079019707901950790193_
                          0
790196021203202120216021202190212021302120217021202070800320810320820320830320840320850320850216_
                          0
850219085021308502170850207021403202140216021402190214021302140217021402070860320870320880320890_
                          32
089021608902190890213089021702060320900320)

   ReDim a(268)
   For k 0 To 267
       a
(k) = dungsan_bytes(k)
   Next k
   s_dung_san 
a

   For k 
0 To 267
       a
(k) = vn3_bytes(k)
   Next k
   s_vn3 
a

   ReDim a
(508)
   For k 0 To 507
       a
(k) = tohop_bytes(k)
   Next k
   s_to_hop 
a

   ReDim a
(536)
   For k 0 To 535
       a
(k) = vni_bytes(k)
   Next k
   s_vni 
a

   For k 
0 To 535
       a
(k) = windows1258_bytes(k)
   Next k
   s_windows1258 
a

   ReDim a
(424)
   For k 0 To 423
       a
(k) = sort_dungsan_bytes(k)
   Next k
   sort_dung_san 
a

   For k 
0 To 423
       a
(k) = sort_vn3_bytes(k)
   Next k
   sort_vn3 
a

   ReDim a
(848)
   For k 0 To 847
       a
(k) = sort_vni_bytes(k)
   Next k
   sort_vni 
a

   Erase a
dungsan_bytestohop_bytesvni_bytesvn3_bytessort_dungsan_bytessort_vn3_bytessort_vni_bytes
End Sub

Public Function SourceToDest(ByVal text As Stringsource As convert_sourcedest As convert_dest) As String
   Dim s 
As Stringtemp As Stringkytu2 As String
   Dim n 
As Longindex As LongAs Long
   Dim nr 
As Long
   If source 
dest And source <> src_uni Then
       SourceToDest 
text
       Exit 
Function
   End If
   InitVietnameseStr

   text 
text " "
   s ""
   n 1
   k 
Len(text)

   While n k
       nr 
0
       Select 
Case source
       Case src_uni
src_vnisrc_windows1258:
           kytu2 Mid(textn2)
           If source src_uni Then
               index 
InStr(1s_to_hopkytu2)
               If index 14 Then
                   nr 
= (index 15) \ 2
                   n 
2
               End 
If
               If nr 0 Then
                   kytu2 
Mid(kytu211)
                   nr InStr(1s_dung_sankytu2)
                   n 1
               End 
If
           Else
               If source 
src_vni Then
                   temp 
s_vni
               Else
                   temp 
s_windows1258
               End 
If

               index InStr(1tempkytu2)
               If index Mod 2 1 Then
                   nr 
= (index 1) \ 2
                   n 
2
               End 
If
               If nr 0 Then
                   kytu2 
Mid(kytu211)
                   index InStr(1tempkytu2 " ")
                   If index 0 Then nr = (index 1) \ 2
                   n 
1
               End 
If
           End If
       Case Else
           kytu2 Mid(textn1)
           index InStr(1s_vn3kytu2)
           If index 0 Then nr index
           n 
1
       End Select

       If nr 
0 Then
           Select 
Case dest
           Case dst_uni
kytu2 Mid(s_dung_sannr1)
           Case dst_vnikytu2 Trim(Mid(s_vninr 12))
           Case dst_vn3kytu2 Mid(s_vn3nr1)
           Case dst_windows1258kytu2 Trim(Mid(s_windows1258nr 12))
           Case dst_khongdaukytu2 Mid(s_khong_daunr1)
           End Select
       End 
If

       s kytu2
   Wend

   SourceToDest 
s
End 
Function 



- Còn để sửa đổi CSDL hiện tại thì bạn có thể mở table, dùng vòng lặp duyệt qua từng Field dạng text rồi chuyển thành Unicode dựng sẳn.

Mã PHP:
Sub convUni()
[/
font][/size]

   Dim rs As DAO.Recordset
   Set rs 
CurrentDb.OpenRecordset("Select * From tblTest")
   rs.MoveFirst
   Do Until rs
.EOF
       rs
.Edit
       rs
!Hoten SourceToDest(rs!Hoten11)
       rs.Update
       rs
.MoveNext
   Loop
[size=medium][font=Georgia]End Sub 

Em cảm ơn bác. Bác cho em hỏi một chút, là ở cái hàm Me.Textbox2.Text = SourceToDest (Me.Textbox1.Text, 1,1) thì textbox1 có phải là textbox mình nhập dữ liệu không? Còn textbox2 là textbox gì ạ. Mong bác chỉ giáo
Chữ ký của nam8384 nam8384,gia nhập Thủ Thuật Access từ 17-03 -16.
Reply
Những người đã cảm ơn
#4
À tôi chỉ demo cách dùng cái hàm thôi còn tuỳ file thiết kế của bạn mà thay đổi lại.
Ví dụ: Khi người dùng gõ vô textbox [HoTen], bạn muốn hiệu chỉnh lại thành font unicode dựng sẳn rồi mới lưu thì dùng code sau:

Private txtHoTen_AfterUpdate()
     Dim sTxtTemp As String 
     sTxtTemp = Me.txtHoTen.Text
     Me.txtHoTen.Text = SourceToDest (sTxtTemp,1,1)   '-->Hoac dùng SourceToDest (sTxtTemp, src_uni, dst_uni)
End Sub
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
Exclamation [Help] Mong giúp đỡ về form login và form lấy mã đăng ký ổ cứng vietnc 8 340 15-04-19, 07:10 PM
Bài mới nhất: ongke0711
Photo [Help] Giúp đỡ về combo box nam8384 2 166 08-04-19, 05:12 PM
Bài mới nhất: nam8384
  [Help] Giúp đỡ về cách xóa nội dung trong một field nam8384 2 1,166 17-10-16, 08:43 PM
Bài mới nhất: toancvp
  [Help] Font unicode tổ hợp và dựng sẵn nam8384 2 1,084 27-07-16, 09:10 AM
Bài mới nhất: nam8384
  Thông báo về sử dụng mạng lan nam8384 4 1,665 22-04-16, 11:41 AM
Bài mới nhất: nam8384

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ| PMA Nha Trang| Gỗ Acrylic Không Đường Line| Phần mềm quản lý bán hàng, công nợ- tồn kho- nhà phân phối