hungefi > 24-07-16, 08:49 PM
(30-11-15, 12:23 PM)nguyenichtri Đã viết:(29-11-15, 02:33 PM)thanhtruong Đã viết: Hôm nay mình đã có máy quét, quét được code 128Chào các bạn
Nhưng sao cái font code 128 của anh tranthanhan1962 khi in ra thì máy quét lại không quét được
Xin cho lời bình?
Trước đây mình cũng nghĩ là chỉ cần thay font code128 vào để in là được, nhưng khi in ra thì máy quét không đọc được. Mình tìm vào các chuyên mục về barcode ở Wikipedia thì có 1 số bài về barcode, và code ở bài 14 mình cũng sưu tập từ đó, sửa đổi 1 chút cho phù hợp với access và thử thì thành công. Lý do là:
- Font code128 chỉ chuyển đổi ký tự thành mã vạch. Nếu chỉ như vậy thì máy quét chưa đọc được.
- Máy quét muốn đọc được cần 3 yếu tố là: ký tự bắt đầu chuỗi mã vạch, ký tự kết thúc chuỗi mã vạch(như đầu câu viết hoa, cuối câu có dấu chấm câu trong ngữ pháp của mình vây) và checksum của chuỗi(xác định tính đúng của độ dài chuỗi mã vạch). Đủ 3 yếu tố đó thì máy quét mới quét được. Do vậy mới cần đoạn code trên để bổ sung 3 yếu tố đó
- Nếu bạn xài Bartender hay IDAutomation bạn thử chuyển font trong textbox mã vạch thành font Arial sẽ thấy có mấy ký tự đầu cuối không có trong chuỗi mã bạn cần in. Các ký tự đó chính là do code trong Bartender hay IDAutomation ấn định in ra cho máy đọc.
- Đối với các phần mềm chuyên dụng như Bartender hay IDAutomation thì code mã hoá được hết các dạng font barcode, còn đoạn code của mình sưu tập được thì chỉ ứng dụng được cho font code128 thôi. Ngoài ra mình cũng có 1 code khác dành cho font Code128bWin và Code128bWinlager(gọi chung là code128b). Font nào riêng code đó, không xài chung được.
Mình đã sử dụng trong ứng dụng nhỏ do mình viết để quản lý kho, nhập kho, in tem barcode, xuất kho, kiểm kê bằng máy quét barcode hoàn toàn OK mới dám chia sẻ với các bạn.
Chúc các bạn thành công.
tranthanhan1962 > 28-03-24, 08:07 PM
DooHoaangPhuuc > 29-03-24, 01:15 PM
huyhoang22 > 13-04-24, 12:23 PM
huyhoang22 > 13-04-24, 12:28 PM
(18-11-15, 04:25 PM)thanhtruong Đã viết:(18-11-15, 04:23 PM)Minh Tiên Đã viết: Vấn đề in mã vạch từ Access mình cũng đã nghiên cứu lâu nay nhưng vướng:
Dùng các Font BarCode (Free) tạo và In mã vạch từ Access thì được, nhưng máy Scan không đọc được.
Pro nào đã xử lý được vấn đề này rồi, xin chia sẽ.
Cảm ơn nhiều !
Nếu vậy sao ta không chuyển qua mã QR cho dể nhỉ,
Có tạo mã Qr trên access được không nhỉ?
ongke0711 > 13-04-24, 05:06 PM
(13-04-24, 12:28 PM)huyhoang22 Đã viết: Có nhưng không phải code tạo QR mà dùng link qua đường dẫn intenet để tạo mã QR mình đã làm rồi
ongke0711 > 13-04-24, 05:21 PM
ongke0711 > 13-04-24, 05:41 PM
(13-04-24, 12:23 PM)huyhoang22 Đã viết: bạn có thể dùng font này để in mã vạch nhé hiện tại mình đang dùng cho thiết kế lable, mình dùng access để in nó rất thuận tiện
Free_3_of_9
huyhoang22 > 15-04-24, 11:25 AM
(13-04-24, 05:06 PM)ongke0711 Đã viết:(13-04-24, 12:28 PM)huyhoang22 Đã viết: Có nhưng không phải code tạo QR mà dùng link qua đường dẫn intenet để tạo mã QR mình đã làm rồi
Tạo QR đã có nhiều bài rồi bạn. Nếu bạn có cách làm hay thì chia sẽ code lên đây để mọi người học hỏi, ứng dụng.
- Tạo không cần có internet: https://thuthuataccess.com/forum/thread-12338.html
- Tạo QR code qua API qrserver.com (phải có internet, trang web chết là tèo luôn): https://thuthuataccess.com/forum/thread-11432.html
- Tạo QR code ngân hàng, quét thanh toán luôn (internet): https://thuthuataccess.com/forum/thread-12616.html
Option Compare Database
Option Explicit
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _
(ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, _
ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Private Sub cmdCreate_Click()
Dim curX, curY
If txtItem > 0 Then
MsgBox "Ban chua in tem"
ElseIf IsNull(txtlbno) Or txtlbno = 0 Then
MsgBox "Vui long nhap so tem can in"
txtlbno.SetFocus
Else
curX = DMax("Item", "Lable", "Dates=#" & [Forms]![Int]![txtDate] & "#")
curY = DMax("Nlb", "Lable", "Dates=#" & [Forms]![Int]![txtDate] & "#")
'curX = DLookup("MAX(Item)", "Lable")
'curY = DLookup("MAX(Nlb)", "Lable")
If IsNull(curX) Then
txtItem = Format(Me.txtDate, "YYMMDD00") + 1
Else
txtItem = curX + 1
End If
Dim i As Integer
For i = 1 To Me.txtlbno
With Rs
.AddNew
.Fields(0) = txtCode & Format(IIf(IsNull(curY), 0, curY) + i, "0000")
.Fields(1) = IIf(IsNull(curY), 0, curY) + i
.Fields(2) = txtItem
.Fields(3) = txtlbno
.Fields(4) = txtDate
.Fields(5) = "S" & ChrW(7889) & " l" & ChrW(7847) & "n In tem: " & Right(txtItem, 2)
.Update
End With
Next i
cmdCreate.Enabled = False
lslable.Requery
MsgBox "da ok"
lslable.SetFocus
' Declare variables
Dim apiUrl As String
Dim qrData As String
Dim savePath As String
Dim result As Long
' Get QR data from textbox
qrData = txtQrcode
' Construct API URL
apiUrl = "https://api.qrserver.com/v1/create-qr-code/?data=" & qrData & "&size=200x200"
' Specify save path for BMP file in the same directory as the Access database
savePath = Application.CurrentProject.Path & "\qr_code.bmp"
' Download QR code image as BMP file
result = URLDownloadToFile(0, apiUrl, savePath, 0, 0)
' Check if download was successful
If result = 0 Then
' Display the downloaded image in the image control
Me.ImQrcode.Picture = savePath
Else
MsgBox "Failed to download QR code image.", vbExclamation
End If
lbcode.Caption = "DJ98-01193A"
End If
End Sub
Private Sub CmdPrint_Click()
DoCmd.OpenReport "Rqrcode", acViewPreview, , "Item=[Forms]![Int]!txtItem"
txtItem = Null
txtlbno = Null
lslable.Requery
cmdCreate.Enabled = True
End Sub
Private Sub Form_Load()
Set Db = CurrentDb
Set Rs = Db.OpenRecordset("Lable")
End Sub
Private Sub Form_Unload(Cancel As Integer)
DoCmd.SetWarnings True
End Sub
Private Sub lslable_Click()
' Declare variables
Dim apiUrl As String
Dim qrData As String
Dim savePath As String
Dim result As Long
' Get QR data from textbox
qrData = txtQrcode
' Construct API URL
apiUrl = "https://api.qrserver.com/v1/create-qr-code/?data=" & qrData & "&size=200x200"
' Specify save path for BMP file in the same directory as the Access database
savePath = Application.CurrentProject.Path & "\qr_code.bmp"
' Download QR code image as BMP file
result = URLDownloadToFile(0, apiUrl, savePath, 0, 0)
' Check if download was successful
If result = 0 Then
' Display the downloaded image in the image control
Me.ImQrcode.Picture = savePath
Else
MsgBox "Failed to download QR code image.", vbExclamation
End If
End Sub
nguyễn mai > 13-06-24, 11:45 AM