Do môi trường VBA chưa hỗ trợ Unicode đầy đủ nên việc thiết lập hàm đọc số tiếng Việt với mã (font) Unicode trong Access cũng như Excel có khó khăn. Bài viết này giới thiệu một cách thiết lập hàm đọc số dùng font Unicode trong Access (bạn cũng có thể áp dụng trong Excel, VB...). Các bước thực hiện như sau: 1. Mở CSDL Access. 2. Tạo một form đặt tên là FormTam, trên FormTam tạo hai label: LabSo, nhập chuỗi: "không một hai ba bốn năm sáu bảy tám chín mốt lẻ lăm mươi mười trăm ", cuối chuỗi có một khoảng trắng. LabDonvi, nhập chuỗi: "đồng. nghìn triệu tỷ", cuối chuỗi cũng có khoảng trắng. 3. Trong Module, nhấn New để tạo mới một module với tên mặc định là Module1. Sau đó nhấn Design để vào cửa sổ soạn code và nhập đoạn mã sau: Khai báo 2 biến toàn cục là 2 mảng chứa chuỗi ký tự số và chuỗi đơn vị được lấy từ LabSo và LabDonvi thông qua thủ tục Docchu và Docdonvi. Public Solay(0 To 15) As String Public Donvilay(0 To 4) As String Private Sub Docchu() Lấy chuỗi chữ số từ LabSo đặt vào mảng Solay Dim tp, Stp, ii ii = 0: tp = Form_FormTam.LabSo.Caption Stp = InStr(tp, " ") Do While Stp <> 0 Solay(ii) = Left(tp, Stp) tp = Right(tp, Len(tp) - Stp) 1Stp = InStr(tp, " ") ii = ii + 1 Loop End Sub Private Sub Docdonvi() Lấy chuỗi đơn vị từ LabDonvi đặt vào mảng Donvilay Dim tp, Stp, ii ii = 0: tp = Form_FormTam.LabDonvi.Caption Stp = InStr(tp, " ") Do While Stp <> 0 Donvilay(ii) = Left(tp, Stp) tp = Right(tp, Len(tp) - Stp) Stp = InStr(tp, " ") ii = ii + 1 Loop End Sub Tạo hàm đọc số: Public Function DocVND(Sodoc As String) As String If Len(Sodoc) > 12 Then DocVND = "So qua lon qua hang tram ty. Hay xem lai!" Docchu Gọi hàm đọc chữ số Ở đây tôi không phân tích hàm đọc số bởi TGVT đã có bài về vấn đề này (TGVT A 3/2001, t.76; 7/2001, t.88). Mở form, nhập vào các con số và gõ Enter, bạn sẽ có kết quả như hình. Mã nguồn chương trình có thể tải về tại website của TGVT – PCW VN. Phạm Văn Trung ![]() Topics: Công nghệ mới |