Gốc > Những vấn đề về CNTT > Thủ thuật Access - Excel >
Đỗ Thanh Dương @ 21:00 20/09/2013
Số lượt xem: 715
Bài 1 : Sắp xếp tiếng Việt theo font chử VNIWindows (VNI) - Xuân Thanh
Bài 1 : Sắp xếp tiếng Việt theo font chử VNIWindows (VNI)
Các bạn chép hàm sau vào một modul của Access
1/ hàm SuaCau để chuyển câu chữ về đúng cách viết tiếng Việt(giữa hai từ chỉ có 1 khoảng trắng mà thôi)
2/ hàm XepABC để sắp xếp theo cách đã trình bày ở trên
Lưu ý : Khi chép vào modul, các bạn bỏ dòng lệnh Option Explicit ở đầu modul nhé
Để sử dụng, các bạn đưa vào query. Giả sử ta muốn sắp xếp dữ liệu HotenHs trong table Hocsinh. Trong cửa sổ Queries ta thiết kế một Query và chèn một field với dữ liệu là chuỗi ký tự được mã hoá từ hàm XepABC([Hocsinh]![HotenHs]). Field được chèn chọn Sort là Ascending (Nếu sắp theo chiều giảm chọn Descending), không hiển thị field này nên bỏ chọn CheckBox thuộc tính Show. Khi mở Query này, ta có dữ liệu được sắp xếp theo thứ tự chuẩn tiếng Việt
Chúc các bạn vui với thủ thuật này
Tải file Demo kèm theo để tham khảo
Các bạn chép hàm sau vào một modul của Access
Mã PHP:
Public Function SuaCau(CauVan)
CauMoi = Trim(CauVan)
ViTri = InStr(1, CauMoi, Space(2))
Do While ViTri > 0
CauMoi = Left(CauMoi, ViTri) & Trim(Mid(CauMoi, ViTri))
ViTri = InStr(1, CauMoi, Space(2))
Loop
SuaCau = CauMoi
End Function
Mã PHP:
Public Function XepABC(HoTen)
Ten = SuaCau(Trim(HoTen))
TenMoi = Space(0): One = Space(0): Two = Space(0)
One = One & "a aùaøaûaõaïaêaéaèaúaüaëaâaáaàaåaãaä"
One = One & "o oùoøoûoõoïoâoáoàoåoãoäô ôùôøôûôõôï"
One = One & "e eùeøeûeõeïeâeáeàeåeãeäi í ì æ ó ò "
One = One & "y yùyøyûyõî u uùuøuûuõuïö öùöøöûöõöïd ñ"
Two = Two & "aaabacadaeafagahaiajakalamanaoapaqar"
Two = Two & "oaobocodoeofogohoiojokolomonooopoqor"
Two = Two & "eaebecedeeefegeheiejekeliaibicidieifyaybycydyeyf"
Two = Two & "uaubucudueufuguhuiujukuldadb"
ViTri = InStr(1, Ten, Space(1))
Do While ViTri > 0
TenMoi = Left(Ten, ViTri) & TenMoi
Ten = Mid(Ten, ViTri + 1)
ViTri = InStr(1, Ten, Space(1))
Loop
OldS = Trim(Ten & Space(1) & TenMoi)
NewS = Space(0): LenOf = Len(OldS): ViTri = 1
Do While ViTri <= LenOf
KyTu = Mid(OldS, ViTri, 1)
If KyTu = Space(1) Then
NewS = NewS & KyTu: ViTri = ViTri + 1
Else
LowK = LCase(KyTu): OldP = InStr(1, One, LowK)
If OldP = 0 Then
NewS = NewS & KyTu: ViTri = ViTri + 1
Else
KeTiep = LCase(Mid(OldS, ViTri, 2))
NewP = InStr(1, One, KeTiep)
If NewP = 0 Then
NewS = NewS & Trim(IIf(Asc(KyTu) = Asc(LCase(KyTu)), Mid(Two, OldP, 2), UCase(Mid(Two, OldP, 2))))
ViTri = ViTri + 1
Else
NewS = NewS & Trim(IIf(Asc(KyTu) = Asc(LCase(KyTu)), Mid(Two, NewP, 2), UCase(Mid(Two, NewP, 2))))
ViTri = ViTri + Len(Trim(KeTiep))
End If
End If
End If
Loop
XepABC = Trim(NewS)
End Function
1/ hàm SuaCau để chuyển câu chữ về đúng cách viết tiếng Việt(giữa hai từ chỉ có 1 khoảng trắng mà thôi)
2/ hàm XepABC để sắp xếp theo cách đã trình bày ở trên
Lưu ý : Khi chép vào modul, các bạn bỏ dòng lệnh Option Explicit ở đầu modul nhé
Để sử dụng, các bạn đưa vào query. Giả sử ta muốn sắp xếp dữ liệu HotenHs trong table Hocsinh. Trong cửa sổ Queries ta thiết kế một Query và chèn một field với dữ liệu là chuỗi ký tự được mã hoá từ hàm XepABC([Hocsinh]![HotenHs]). Field được chèn chọn Sort là Ascending (Nếu sắp theo chiều giảm chọn Descending), không hiển thị field này nên bỏ chọn CheckBox thuộc tính Show. Khi mở Query này, ta có dữ liệu được sắp xếp theo thứ tự chuẩn tiếng Việt
Chúc các bạn vui với thủ thuật này
Tải file Demo kèm theo để tham khảo
Đỗ Thanh Dương @ 21:00 20/09/2013
Số lượt xem: 715
Số lượt thích:
0 người
 
- Góp ý bài viết sắp thứ tự chữ Việt Unicode (07/09/13)
- Sắp xếp tiếng Việt theo vần (07/09/13)
- Hàm đọc số tiền dùng mã Unicode trong Access (19/01/13)
- Hàm đổi số thành chữ trong Access (19/01/13)
- Hàm chuyển đổi font chữ từ Unicode sang VNI và ngược lại (19/01/13)

Ý kiến trao đổi