Function tạo barcode 128 cho excel lẫn accsee (form và report))
Từ khi đụng đến việc tạo mã vạch trên access tôi thực sự cảm thấy khó khăn và bối rối với đọ phức tạp của nó. Tôi viết phần mềm cho khách chủ yếu dùng để bán hàng. May mắn khách hàng có những máy đọc mã vạch chuyên dụng thường là của Mỹ gởi về thì rất dễ. Vì với máy này vừa mới, vừa nhạy khi tạo mã vạch cứ lấy trực tiếp code ra chuyển font rồi in là nó cứ đọc không cần xử lý gì thêm. Ví dụ Code = ABCD cứ chuyển thành ABCD theo font 39 hay 128 khi Khi đọc bật nút máy đọc mã vạch qua 39 hay 128 tùy theo font in rồi đưa máy vào là quét. Điều dễ dàng là nếu đọc không được 39 chắc chắn là 128. Sau này mấy máy Trung Quốc thì không thể lơi kiểu chuyển font trực tiếp nữa vì máy sẽ không hiểu. Cho đén lúc này ngay cả máy đọc mã vạch của Mỹ kiểu này cũng không còn sản xuất nữa vì đâu chỉ có mã vạch code 39 và code 128 mà nó có hàng đống chuẩn. Lúc bắt đầu với mấy cái máy đọc mã vạch của Hồ Cẩm Đào Tôi phải tiếp cận với phần mềm BarTender. Đói với mình thì dễ nhưng đối với khách hàng thì việc tạo mã vạch bằng phần mềm này là cơn ác mộng đối với họ. Các bạn sẽ thấy khi viết xong một phần mềm xử lý hoàn tất mọi vấn đề mà cứ phải nghe điện thoại kêu réo suốt tại vì họ không tự tạo được mã vạch để in, riết rồi mình giống như nhân viên tạo mã vạch không công cho họ. Sau này nhờ code tạo mã vạch Function Barcode_128(Ctrl As Control, rpt As Report) của ongke0711 đã hỗ trợ mình rất nhiều, nó giả quyết được việc tự động đỗi code thành font mã vạch 128. Thực sự tôi rất nể đoạn người viết đoạn code này (không biết có phải đ/c ongke0711 viết không!) vì đây là đoạn code không dùng bất kỳ font chữ nào mà dùng cú pháp Line của access để vẽ thành những sọc vuông tạo thành mã vạch 128. quá dữ, Một điều là hạn chế là code này chỉ thể hiện được trên report chứ không thể hiện được trên form. Lý do đơn giản là trên form không có event print hay format để xử lý cú pháp Line (hoặc là có cách nào đó để thực hiện cú pháp này mà tôi không biết). Thực ra việc thể hiện mã vạch trên form không nhiều nhưng cũng có đôi lúc cần cho công việc. Mò mẫ mãi tôi gặp được trang web https://graphicore.github.io/librebarcode/ thông qua nó tôi biết được tất cả các barcode đều sử dụng 1 công thức:
[Ký tự đầu] & Code & [Ký tự cuối]:
Mã PHP: Code 39=*code* (Đầu: *, cuối: *) Code 128 = ÌCodeWÎ (Đầu: Ì, cuối: WÎ) Code EAN-13 = 00Code? (code 10 ký tự; đầu: 00, cuối: ? => tổng 13 ký tự) Code EAN-8 = Code? (code 7 ký tự, cuối: ? => tổng 8 ký tự) Code UPC-A = 0 Code? (code 10 ký tự, đầu:0, cuối: ? => tổng 12 ký tự) Code UPC-E short input = xCode? (code 6 ký tự, đầu:0, cuối ? => tổng 8 ký tự)
Còn 1 số chuẩn mà tôi không kể hết ra đây vả lại các chuẩn này sẽ còn tăng lên tùy theo các quôc gia và vùng lãnh thổ. Thực ra theo tôi đối với công việc cá nhân hoặc quản lý các doanh nghiệp thì Barcode 128 là ưu việc hơn cả. 1 là trong cùng 1 code thì tạo Barcode 128 sẽ ngắn hơn Barcode 39. 2 là barcode 39 và 128 không khống chế số ký tự tạo code, bao nhiêu cũng được chỉ cần đầu đọc đủ gần để nhận rõ ký tự và đủ xa để bao quát toàn bộ ký tự là Ok và barcode 128 sẽ có chiều rộng ngắn barcode 39. Vì vậy chỉ cần xử lý 1 function barcode 128 là sử dụng được cho tất cả. Tôi đã tạo 1 function xử lý trực tiếp code ra barcode 128 dưới đây và đã text OK.
Mã: Function Code128(Data As String) As String
Dim i As Integer
Dim checksum As Integer
Dim result As String
Dim charValue As Integer
' Ký tự bắt đầu cho Code 128
result = Chr(204)
checksum = 104 ' Giá trị bắt đầu cho Code 128
' Mã hóa dữ liệu
For i = 1 To Len(Data)
charValue = Asc(Mid(Data, i, 1))
result = result & Mid(Data, i, 1)
checksum = checksum + (charValue - 32) * i
Next i
' Tính toán ký tự kiểm tra
checksum = checksum Mod 103
result = result & Chr(checksum + 32)
' Ký tự kết thúc cho Code 128
result = result & Chr(206)
Code128 = result
End Function
Mã này áp dụng được trong module excel lẫn access cả form lẫn report. Các barcode khác cũng chỉ cần thay đổi function xử lý lại ký tự đầu và cuối. Nếu barcode nào có xác định số lượng ký tự thì kiểm tra len(code) trước
Cho chỉ định xét nghiệm và nhập kết quả
Hiện tại mình lục lại được 1 cái demo chắc cũng 10 năm rồi,
giờ muốn mò lại làm tiếp mấy thứ còn chưa xong.
demo
Mình muốn sau khi cho chỉ định là 3 cái men gan, hoặc Công thức máu thì khi tạo 1 cái from trả kết quả mở bệnh này lên thì nó hiện lên các xét nghiệm đã cho và mình bấm kết quả vào.
Không biết nói vậy Các Pro có hiểu không?
vd1: khi cho xét nghiệm GOT: thì mở from trả kết quả chỉ hiện 1 dòng GOT và mình nhập chỉ số vào, bên cạnh đó nó hiện chỉ số bình thường và đơn vị lên luôn,
vd2: Khi cho công thức máu 18 thông số: thì khi mở from trả kết quả lên nó hiện lên 18 dòng để mình nhập kết quả.
Hiện tại theo cái demo ở trên thì mình phải thiết kế cái from "TRẢ KẾT QUẢ" như thế nào. ở table có cần thêm những table nào, và liên kết chúng ra sao....
Xin cho mình hướng xử lý. cảm ơn!
nút nhấn xoá toàn bộ dấu tích
Kính chào quý ÔBACE
Em có một câu hỏi mà tìm hoài không có trên diễn đàn
Em có bảng Sach(TenSach, TacGia, NamSX, DauTich)
DauTich có kiểu dữ liệu là Yes/No
Em muốn tạo một nút nhấn, mà khi nhấn vào nút đó, thì toàn bộ dấu tích trong bảng "Sach" sẽ trở về mặc định là không tích.
Em cảm ơn quý ÔBACE rất nhiều ạ
Lỗi xung đột
Chào các Anh (Chị) ở thủ thuật access.
Em bị gặp lỗi này nhờ các anh chị cho hướng dẫn.
Phần mềm chạy trên 2 máy (đã chia Back - end), 2 máy mở cùng 1 form nhập liệu để chỉnh sửa các dữ liệu khác nhau, lập tức bị lỗi xung đột dữ liệu.
Như hình dưới, nếu ghi đè thì chỉ có lưu được dữ liệu đang nhập của 1 máy.
Có cách nào khắc phục không? Xin cảm ơn!
E xin chia sẽ phần mềm Quản lý Thanh niên trong độ tuổi Nghĩa vụ quân sự
Sao bao ngày mài mò và sự giúp đỡ của các ae trên diễn đàn và đặc biệt là Ongke. Và e cũng đã làm xong (tương đối) với e.
Quản lý Thanh niên Nghĩa vụ quân sự.
https://www.mediafire.com/file/dq47tyfg9...1.rar/file
Chủ đề Mới nhất |
Function tạo barcode 128 ...
-Chuyên mục: Thư Viện Ứng Dụng-Đăng bởi lần cuối: ongke0711-29-09-24, 05:49 PM-
» Bài trả lời: 1-
» Lượt xem: 73
|
Demo Phần 2_Compact & Rep...
-Chuyên mục: Thư viện thủ thuật-Đăng bởi lần cuối: ongke0711-26-09-24, 07:44 PM-
» Bài trả lời: 22-
» Lượt xem: 4,690
|
Dòng Video Youtube Ngâm N...
-Chuyên mục: Góc Thơ -Đăng bởi lần cuối: Abhiram02-24-09-24, 05:27 PM-
» Bài trả lời: 9-
» Lượt xem: 58
|
chạy random theo mã nhâ...
-Chuyên mục: Forms-Đăng bởi lần cuối: ongke0711-24-09-24, 03:06 PM-
» Bài trả lời: 4-
» Lượt xem: 2,282
|
Quản lý kho bằng Accesss
-Chuyên mục: Thảo Luận Access-Đăng bởi lần cuối: ngothuongtri-21-09-24, 03:03 PM-
» Bài trả lời: 49-
» Lượt xem: 2,452
|
[Demo 1] Tạo Textbox tìm ...
-Chuyên mục: Thủ thuật VBA-Đăng bởi lần cuối: nguyencaothong-12-09-24, 03:52 PM-
» Bài trả lời: 14-
» Lượt xem: 1,801
|
[Demo 1] Kết nối máy siêu...
-Chuyên mục: Tương tác Chương trình ngoài-Đăng bởi lần cuối: nguyencaothong-12-09-24, 03:25 PM-
» Bài trả lời: 26-
» Lượt xem: 4,489
|
Demo - Tra cứu thông tin ...
-Chuyên mục: Thư Viện Ứng Dụng-Đăng bởi lần cuối: ongke0711-12-09-24, 01:50 PM-
» Bài trả lời: 25-
» Lượt xem: 2,997
|
Demo tạo Barcode (1D) bằn...
-Chuyên mục: Thư Viện Ứng Dụng-Đăng bởi lần cuối: tranthanhan1962-11-09-24, 11:45 PM-
» Bài trả lời: 3-
» Lượt xem: 187
|
Cho chỉ định xét nghiệm v...
-Chuyên mục: Forms-Đăng bởi lần cuối: ongke0711-11-09-24, 11:03 PM-
» Bài trả lời: 9-
» Lượt xem: 252
|
Diễn đàn Thống kê |
» Thành viên: 4,897
» Thành viên mới nhất: Cevkxt
» Các chủ đề diễn đàn: 9,866
» Các bài viết diễn: 48,555
Thống kê đầy đủ
|
| | | | |