導航:首頁 > 編程語言 > vb生成條形碼代碼

vb生成條形碼代碼

發布時間:2025-09-01 00:07:14

『壹』 條形碼怎麼編寫

條形碼技術應用廣泛於各行各業,你隨便拿起一本書、一包方便麵都可以在外包裝上找到條碼,利用條碼讀取機便可將這一條條黑白相間、粗細不同的垂直線條識別而轉換為具體的數值,並將這個數值返回到計算機中進行處理。

正是有了條形碼技術,人們很方便就能取得該商品的相關信息,如商品規格、名稱、價格等,因為每種商品都有其對應的條形碼。通過條形碼,計算機(終端、伺服器)就可以迅速返回用戶,從資料庫中讀取約定的商品、信息使得進貨、銷售、存貨等等管理更有效率,也對防止假冒偽劣有一定的抑製作用。

條碼的編碼方式有多種,不同行業,不同國家,標准也不盡相同。條形碼通過線條的粗細來表達其數值。至於介面方式一般也有多種,如鍵盤口的、串列口的。一般感測裝置是光罩式的,也有筆式的。 上面籠籠統統地談了一些關於條形碼的知識,可幫助你更好地閱讀以下更深入的內容。條形碼有關概念先說到這里,接著是詳細具體的編程實現方法。
一、條形碼的讀取

用過鍵盤口式的掃條碼工具的朋友就知道,它就如同在鍵盤上按下數字鍵一樣,基本不需任何編程和處理。但如果你使用的是其它介面的話,可能你就要為該設備編寫通訊代碼了。以下有一段簡單的25針串口的條碼讀取器通訊代碼。

Option Explicit
Dim sData As String
Private Sub Form_Load()
With MSComm1
.CommPort = 3 '設為COM3,試運行的系統而定,你可提供一個Combox讓用戶選擇。
.PortOpen = True'打開通訊埠
End With
End Sub

Private Sub MSComm1_OnComm()

Dim EndPos As Integer
Select Case MSComm1.CommEvent
Case comEvReceive '當有數據傳送過來時
sData = sData & Trim(MSComm1.Input)
'檢索回車,通常讀卡機每組數據結尾都返回一個回車作為結束符
EndPos = InStr(1, sData, Chr(13))
If EndPos = 0 Then '如果未結束就繼續努力
Else '讀完一組。
lblBarCode.Caption = sData '顯示一組條形碼
With lstBarCode
.AddItem Mid(sData, 1, EndPos - 1) '添加一組條形碼到列表
End With
sData = "" '清空
End If
End Select
End Sub

Private Sub cmdEnd_Click()
MSComm1.PortOpen = False '關閉埠
End
End Sub

二、條形碼的生成

看完以上關於條碼讀取的代碼是否覺得很容易呢?對,在VB上編程本來就不難。以下關於條形碼生成的代碼也是很容易理解,只需使用一個OFFICE的附帶的BarCode控制項就可以輕松列印出11種不同標準的條形碼,足以滿足我們的要求。

想起我書架上的一本書中的一篇用Turbo C編寫條形碼列印程序文章,長篇大論,那時不知看了n天,打了n小時字結果也不盡人意,現在真是幸福多了:)。廢話說完,得回歸正題。且看條形碼生成的代碼及有關說明。

源代碼主要由兩個窗體(frmMain主窗體和frmOption條碼設置窗體)和兩個模塊組成(modGetScreen.bas、SysDLG32.bas)。考慮到篇幅,這里只列出部分較為關鍵的代碼。

新建一個標准工程,添加一個名為(Microsoft Access BarCode Control9)的條形碼部件,並添加一個條碼控制項到窗口,並將窗口改名為frmMain。由於控制項比較多,這里不便細說,詳細內容請看源代碼。

模塊modGetScreen.bas代碼如下:

Option Explicit
聲明BitBlt、GetDesktopWindow、GetWindowDC、ReleaseDC這幾個API函數略
Public RegUser As Boolean

Sub GetObjImage1(Obj As Object, OwnerForm As PictureBox, Picture1 As PictureBox)
'hDC
Dim hWndDesk As Long
Dim hDCDesk As Long
'區域表達變數
Dim x As Long
Dim y As Long
Dim w As Long
Dim h As Long

x = Obj.Left Screen.TwipsPerPixelX
y = Obj.Top Screen.TwipsPerPixelY
w = Obj.Width Screen.TwipsPerPixelX
h = Obj.Height Screen.TwipsPerPixelY
hDCDesk = OwnerForm.hdc
'取出圖像
Call BitBlt(Picture1.hdc, 0, 0, w, h, hDCDesk, x, y, vbSrcCopy)
Call ReleaseDC(hWndDesk, hDCDesk)

End Sub

主窗體frmMain.frm部分代碼如下:

Private Sub cmdPrint_Click()
'生成條形碼圖像
Dim r As Long, i As Integer, t As String,cfile As String '臨時變數
t = BarCode
For i = 0 To Val(Times) - 1

BarCode1.Value = BarCode + i
DoEvents
Picture1.Refresh

GetObjImage1 BarCode1, Conel, Picture1

If RegUser = False Then '如果未注冊添加MASK標記
Picture1.PaintPicture Picture2.Picture, 300, 300
End If

If Dir(SavePath, vbDirectory) = "" Then MkDir SavePath

SavePath = SavePath & IIf(Right(SavePath, 1) > "", "", "")

cfile = SavePath & BarCode1.Value & ".bmp"

SavePicture Picture1.Image, cfile '將條形碼保存為圖像文件以便列印
Next
BarCode = t

End Sub

條形碼設置窗體frmOption.frm代碼如下:
Option Explicit
'條形碼設置模塊

Private Sub cboBig_Click()
BarCode1.Style = cboBig.ListIndex '改變標准
End Sub

Private Sub cboDirection_Click()
BarCode1.Direction = cboDirection.ListIndex '改變方向
End Sub

Private Sub cboLine_Click()
BarCode1.LineWeight = cboLine.ListIndex '改變線寬
End Sub

Private Sub cboSmall_Click()
BarCode1.SubStyle = cboSmall.ListIndex '改變樣式
End Sub

Private Sub Check1_Click()
BarCode1.ShowData = Check1.Value '是否顯示數據
End Sub

Private Sub cmdChange_Click()
'設置長、寬大小
BarWidth = BarCode1.Height
BarHeight = BarCode1.Width
cmdRefresh_Click
End Sub

Private Sub cmdOK_Click()
'傳送條形碼設定到主界面
With frmMain.BarCode1
.LineWeight = BarCode1.LineWeight
.Style = BarCode1.Style
.SubStyle = BarCode1.SubStyle
.Direction = BarCode1.Direction
.Width = BarCode1.Width
.Height = BarCode1.Height
.ShowData = BarCode1.ShowData
Me.Hide
End With
With frmMain
.Picture1.Width = .BarCode1.Width
.Picture1.Height = .BarCode1.Height
.Conel.Width = .BarCode1.Width
.Conel.Height = .BarCode1.Height
End With
End Sub

Private Sub cmdRefresh_Click()
BarCode1.Width = BarWidth
BarCode1.Height = BarHeight
End Sub

Private Sub Form_Load()
LoadBarInfo
BarWidth = BarCode1.Width
BarHeight = BarCode1.Height
End Sub

Sub LoadBarInfo() '初始化選項
LoadBigClass cboBig
LoadSmallClass cboSmall
LoadLineSize cboLine
LoadDirection cboDirection
End Sub
Sub LoadBigClass(cbo As ComboBox) '條碼標准
With cbo
.AddItem "UPC-A"
.AddItem "UPC-E"
.AddItem "EAN-13"
.AddItem "EAN-8"
.AddItem "Case Code"
.AddItem "Codabar (NW-T)"
.AddItem "Code-39"
.AddItem "Code-128"
.AddItem "U.S. Postnet"
.AddItem "U.S. Postal FIM"
.AddItem "JP Post"
.ListIndex = 2
End With
End Sub
Sub LoadSmallClass(cbo As ComboBox) '條碼樣式
With cbo
.AddItem "Standard"
.AddItem "2-Digit Supplement"
.AddItem "5-Digit Supplement"
.AddItem "POS Case Code"
.ListIndex = 0
End With
End Sub

『貳』 怎樣用C語言做一個條形碼

一、條形碼的讀取
用過鍵盤口式的掃條碼工具的朋友就知道,它就如同在鍵盤上按下數字鍵一樣,基本不需任何編程和處理。但如果你使用的是其它介面的話,可能你就要為該設備編寫通訊代碼了。以下有一段簡單的25針串口的條碼讀取器通訊代碼。
Option Explicit
Dim sData As String
Private Sub Form_Load()
With MSComm1
.CommPort = 3 '設為COM3,試運行的系統而定,你可提供一個Combox讓用戶選擇。
.PortOpen = True '打開通訊埠
End With
End Sub

Private Sub MSComm1_OnComm()
Dim EndPos As Integer
Select Case MSComm1.CommEvent
Case comEvReceive '當有數據傳送過來時
sData = sData & Trim(MSComm1.Input)
'檢索回車,通常讀卡機每組數據結尾都返回一個回車作為結束符
EndPos = InStr(1, sData, Chr(13))
If EndPos = 0 Then '如果未結束就繼續努力
Else '讀完一組。
lblBarCode.Caption = sData '顯示一組條形碼
With lstBarCode
.AddItem Mid(sData, 1, EndPos - 1) '添加一組條形碼到列表
End With
sData = "" '清空
End If
End Select
End Sub

Private Sub cmdEnd_Click()
MSComm1.PortOpen = False '關閉埠
End
End Sub

二、條形碼的生成
看完以上關於條碼讀取的代碼是否覺得很容易呢?對,在VB上編程本來就不難。以下關於條形碼生成的代碼也是很容易理解,只需使用一個OFFICE的附帶的BarCode控制項就可以輕松列印出11種不同標準的條形碼,足以滿足我們的要求。想起我書架上的一本書中的一篇用Turbo C編寫條形碼列印程序文章,長篇大論,那時不知看了n天,打了n小時字結果也不盡人意,現在真是幸福多了:)。廢話說完,得回歸正題。且看條形碼生成的代碼及有關說明。
源代碼主要由兩個窗體(frmMain主窗體和frmOption條碼設置窗體)和兩個模塊組成(modGetScreen.bas、SysDLG32.bas)。考慮到篇幅,這里只列出部分較為關鍵的代碼。
新建一個標准工程,添加一個名為(Microsoft Access BarCode Control9)的條形碼部件,並添加一個條碼控制項到窗口,並將窗口改名為frmMain,如圖所示。由於控制項比較多,這里不便細說,詳細內容請看源代碼。
模塊modGetScreen.bas代碼如下:
Option Explicit
'聲明BitBlt、GetDesktopWindow、GetWindowDC、ReleaseDC這幾個API函數略
Public RegUser As Boolean

Sub GetObjImage1(Obj As Object, OwnerForm As PictureBox, Picture1 As PictureBox)
'hDC
Dim hWndDesk As Long
Dim hDCDesk As Long
'區域表達變數
Dim x As Long
Dim y As Long
Dim w As Long
Dim h As Long
x = Obj.Left Screen.TwipsPerPixelX
y = Obj.Top Screen.TwipsPerPixelY
w = Obj.Width Screen.TwipsPerPixelX
h = Obj.Height Screen.TwipsPerPixelY
hDCDesk = OwnerForm.hdc
'取出圖像
Call BitBlt(Picture1.hdc, 0, 0, w, h, hDCDesk, x, y, vbSrcCopy)
Call ReleaseDC(hWndDesk, hDCDesk)
End Sub

主窗體frmMain.frm部分代碼如下:
Private Sub cmdPrint_Click()
'生成條形碼圖像
Dim r As Long, i As Integer, t As String,cfile As String '臨時變數
t = BarCode
For i = 0 To Val(Times) - 1
BarCode1.Value = BarCode + i
DoEvents
Picture1.Refresh
GetObjImage1 BarCode1, Conel, Picture1
If RegUser = False Then '如果未注冊添加MASK標記
Picture1.PaintPicture Picture2.Picture, 300, 300
End If
If Dir(SavePath, vbDirectory) = "" Then MkDir SavePath
SavePath = SavePath & IIf(Right(SavePath, 1) <> "", "", "")
cfile = SavePath & BarCode1.Value & ".bmp"
SavePicture Picture1.Image, cfile '將條形碼保存為圖像文件以便列印
Next
BarCode = t
End Sub

條形碼設置窗體frmOption.frm代碼如下:
Option Explicit
'條形碼設置模塊

Private Sub cboBig_Click()
BarCode1.Style = cboBig.ListIndex '改變標准
End Sub

Private Sub cboDirection_Click()
BarCode1.Direction = cboDirection.ListIndex '改變方向
End Sub

Private Sub cboLine_Click()
BarCode1.LineWeight = cboLine.ListIndex '改變線寬
End Sub

Private Sub cboSmall_Click()
BarCode1.SubStyle = cboSmall.ListIndex '改變樣式
End Sub

Private Sub Check1_Click()
BarCode1.ShowData = Check1.Value '是否顯示數據
End Sub

Private Sub cmdChange_Click()
'設置長、寬大小
BarWidth = BarCode1.Height
BarHeight = BarCode1.Width
cmdRefresh_Click
End Sub

Private Sub cmdOK_Click()
'傳送條形碼設定到主界面
With frmMain.BarCode1
.LineWeight = BarCode1.LineWeight
.Style = BarCode1.Style
.SubStyle = BarCode1.SubStyle
.Direction = BarCode1.Direction
.Width = BarCode1.Width
.Height = BarCode1.Height
.ShowData = BarCode1.ShowData
Me.Hide
End With
With frmMain
.Picture1.Width = .BarCode1.Width
.Picture1.Height = .BarCode1.Height
.Conel.Width = .BarCode1.Width
.Conel.Height = .BarCode1.Height
End With
End Sub

Private Sub cmdRefresh_Click()
BarCode1.Width = BarWidth
BarCode1.Height = BarHeight
End Sub

Private Sub Form_Load()
LoadBarInfo
BarWidth = BarCode1.Width
BarHeight = BarCode1.Height
End Sub

Sub LoadBarInfo() '初始化選項
LoadBigClass cboBig
LoadSmallClass cboSmall
LoadLineSize cboLine
LoadDirection cboDirection
End Sub

Sub LoadBigClass(cbo As ComboBox) '條碼標准
With cbo
.AddItem "UPC-A"
.AddItem "UPC-E"
.AddItem "EAN-13"
.AddItem "EAN-8"
.AddItem "Case Code"
.AddItem "Codabar (NW-T)"
.AddItem "Code-39"
.AddItem "Code-128"
.AddItem "U.S. Postnet"
.AddItem "U.S. Postal FIM"
.AddItem "JP Post"
.ListIndex = 2
End With
End Sub

Sub LoadSmallClass(cbo As ComboBox) '條碼樣式
With cbo
.AddItem "Standard"
.AddItem "2-Digit Supplement"
.AddItem "5-Digit Supplement"
.AddItem "POS Case Code"
.ListIndex = 0
End With
End Sub

許多人在編寫資料庫應用程序時,都想要加上條形碼功能加強工作效率,尤其是銷售管理,圖書館管理這類流量大的應用軟體,但由於條形碼技術難以掌握、標誰又多以及過去的技術種種原因,使得許多人望而卻步。本文介紹的一套簡單實用的條形碼解決方法,希望能幫助各位完善軟體系統的功能。文章源代碼可以發信到[email protected]索取。

閱讀全文

與vb生成條形碼代碼相關的資料

熱點內容
掃描好的pdf文件可以換其中一頁嗎 瀏覽:898
ocx線程中調js函數 瀏覽:932
巨量百應如何看後台數據 瀏覽:451
java判斷文件是否圖片格式 瀏覽:893
文件打開方式下載 瀏覽:677
java文件非對稱加密 瀏覽:173
2013微信wap接入點不能視頻 瀏覽:887
如何學會迷你編程用哪個軟體 瀏覽:732
wpf資料庫 瀏覽:409
泰生活app新人專屬抽獎在哪裡抽 瀏覽:940
js時間加一天 瀏覽:555
javaservletapi在線 瀏覽:63
如何給伺服器文件加密 瀏覽:558
什麼有數據分析功能 瀏覽:845
蘋果維保新政策 瀏覽:448
vb生成條形碼代碼 瀏覽:963
手機上怎麼升級qq會員 瀏覽:515
java讀取pdf文件頁數 瀏覽:836
android購物app代碼 瀏覽:720
中國教程網祁連山pscs6 瀏覽:606

友情鏈接