VB 识别条形码一、条形码的读取
用过键盘口式的扫条码工具的朋友就知道,它就如同在键盘上按下数字键一样,基本不需任何编程和处理 。但如果你使用的是其它接口的话,可能你就要为该设备编写通讯代码了 。以下有一段简单的25针串口的条码读取器通讯代码 。
OptionExplicit
DimsDataAsString
PrivateSubForm_Load()
WithMSComm1
.CommPort=3'设为COM3,试运行的系统而定,你可提供一个Combox让用户选择 。
.PortOpen=True '打开通讯端口
EndWith
EndSub
PrivateSubMSComm1_OnComm()
DimEndPosAsInteger
SelectCaseMSComm1.CommEvent
CasecomEvReceive'当有数据传送过来时
sData=https://www.04ip.com/post/sDataTrim(MSComm1.Input)
'检索回车,通常读卡机每组数据结尾都返回一个回车作为结束符
EndPos=InStr(1,sData,Chr(13))
IfEndPos=0Then'如果未结束就继续努力
Else'读完一组 。
lblBarCode.Caption=sData'显示一组条形码
WithlstBarCode
.AddItemMid(sData,1,EndPos-1)'添加一组条形码到列表
EndWith
sData=""'清空
EndIf
EndSelect
EndSub
PrivateSubcmdEnd_Click()
MSComm1.PortOpen=False'关闭端口
End
EndSub
二:条形码的生成
在VB上编程本来就不难 。以下关于条形码生成的代码也是很容易理解 , 只需使用一个OFFICE的附带的BarCode控件就可以轻松打印出11种不同标准的条形码,足以满足我们的要求 。想起我书架上的一本书中的一篇用TurboC编写条形码打印程序文章,长篇大论,那时不知看了n天,打了n小时字结果也不尽人意,现在真是幸福多了:) 。废话说完,得回归正题 。且看条形码生成的代码及有关说明 。
源代码主要由两个窗体(frmMain主窗体和frmOption条码设置窗体)和两个模块组成(modGetScreen.bas、SysDLG32.bas) 。考虑到篇幅,这里只列出部分较为关键的代码 。
新建一个标准工程,添加一个名为(MicrosoftAccessBarCode
Control9)的条形码部件,并添加一个条码控件到窗口,并将窗口改名为frmMain , 如图所示 。由于控件比较多,这里不便细说,详细内容请看源代码 。
模块modGetScreen.bas代码如下:
OptionExplicit
声明BitBlt、GetDesktopWindow、GetWindowDC、ReleaseDC这几个API函数略
PublicRegUserAsBoolean
SubGetObjImage1(ObjAsObject,OwnerFormAsPictureBox,Picture1
AsPictureBox)
'hDC
DimhWndDeskAsLong
DimhDCDeskAsLong
'区域表达变量
DimxAsLong
DimyAsLong
DimwAsLong
DimhAsLong
x=Obj.LeftScreen.TwipsPerPixelX
y=Obj.TopScreen.TwipsPerPixelY
w=Obj.WidthScreen.TwipsPerPixelX
h=Obj.HeightScreen.TwipsPerPixelY
hDCDesk=OwnerForm.hdc
'取出图像
CallBitBlt(Picture1.hdc,0,0,w,h,hDCDesk,x,y,
vbSrcCopy)
CallReleaseDC(hWndDesk,hDCDesk)
EndSub
主窗体frmMain.frm部分代码如下:
PrivateSubcmdPrint_Click()
'生成条形码图像
DimrAsLong,iAsInteger,tAsString,cfileAs
String'临时变量
t=BarCode
Fori=0ToVal(Times)-1
BarCode1.Value=https://www.04ip.com/post/BarCodei
DoEvents
Picture1.Refresh
GetObjImage1BarCode1,Conel,Picture1
IfRegUser=FalseThen'如果未注册添加MASK标记
Picture1.PaintPicturePicture2.Picture,300,300
EndIf
IfDir(SavePath,vbDirectory)=""ThenMkDirSavePath
SavePath=SavePathIIf(Right(SavePath,1)"","",
"")
cfile=SavePathBarCode1.Value".bmp"
SavePicturePicture1.Image,cfile'将条形码保存为图像文件以便打印
Next
BarCode=t
EndSub
条形码设置窗体frmOption.frm代码如下:
OptionExplicit
'条形码设置模块
PrivateSubcboBig_Click()
BarCode1.Style=cboBig.ListIndex'改变标准
EndSub
PrivateSubcboDirection_Click()
BarCode1.Direction=cboDirection.ListIndex'改变方向
EndSub
PrivateSubcboLine_Click()
BarCode1.LineWeight=cboLine.ListIndex'改变线宽
EndSub
PrivateSubcboSmall_Click()
BarCode1.SubStyle=cboSmall.ListIndex'改变样式
EndSub
PrivateSubCheck1_Click()
BarCode1.ShowData=https://www.04ip.com/post/Check1.Value'是否显示数据
EndSub
PrivateSubcmdChange_Click()
'设置长、宽大小
BarWidth=BarCode1.Height
BarHeight=BarCode1.Width
cmdRefresh_Click
EndSub
PrivateSubcmdOK_Click()
'传送条形码设定到主界面
WithfrmMain.BarCode1
.LineWeight=BarCode1.LineWeight
.Style=BarCode1.Style
.SubStyle=BarCode1.SubStyle
.Direction=BarCode1.Direction
.Width=BarCode1.Width
.Height=BarCode1.Height
.ShowData=https://www.04ip.com/post/BarCode1.ShowData
Me.Hide
EndWith
WithfrmMain
.Picture1.Width=.BarCode1.Width
.Picture1.Height=.BarCode1.Height
.Conel.Width=.BarCode1.Width
.Conel.Height=.BarCode1.Height
EndWith
EndSub
PrivateSubcmdRefresh_Click()
BarCode1.Width=BarWidth
BarCode1.Height=BarHeight
EndSub
PrivateSubForm_Load()
LoadBarInfo
BarWidth=BarCode1.Width
BarHeight=BarCode1.Height
EndSub
SubLoadBarInfo()'初始化选项
LoadBigClasscboBig
LoadSmallClasscboSmall
LoadLineSizecboLine
LoadDirectioncboDirection
EndSub
SubLoadBigClass(cboAsComboBox)'条码标准
Withcbo
.AddItem"UPC-A"
.AddItem"UPC-E"
.AddItem"EAN-13"
.AddItem"EAN-8"
.AddItem"CaseCode"
.AddItem"Codabar(NW-T)"
.AddItem"Code-39"
.AddItem"Code-128"
.AddItem"U.S.Postnet"
.AddItem"U.S.PostalFIM"
.AddItem"JPPost"
.ListIndex=2
EndWith
EndSub
SubLoadSmallClass(cboAsComboBox)'条码样式
Withcbo
.AddItem"Standard"
.AddItem"2-DigitSupplement"
.AddItem"5-DigitSupplement"
.AddItem"POSCaseCode"
.ListIndex=0
EndWith
EndSub
许多人在编写数据库应用程序时 , 都想要加上条形码功能加强工作效率,尤其是销售管理,图书馆管理这类流量大的应用软件,但由于条形码技术难以掌握、标谁又多以及过去的技术种种原因,使得许多人望而却步 。本文介绍的一套简单实用的条形码解决方法,希望能帮助各位完善软件系统的功能 。
VB.NET连接Access数据库查找ID最大的前两个数据,或新入库的前两个数据见下面vb.net条码入库的代码,自己换成真实vb.net条码入库的数据库及表即可
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Imports System.Data
Imports System.IO
Imports System.Data.OleDb
Module Module1
Public cn1 As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ACCESS数据库1.mdb") '定义连接1---这里请更改为实际数据库路径及名称
Public cn2 As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ACCESS数据库2.mdb") '定义连接2---这里请更改为实际数据库路径及名称
Public DataBaseRST1 As Integer '用来返回数据库执行结果
Public DataBaseRST2 As Integer '用来返回数据库执行结果
Public Function DataModify(ByVal str_cmd1 As String, ByVal str_cmd2 As String) As Boolean '进行数据库修改操作函数
Dim cmdinsert1 As New OleDbCommand
Dim cmdinsert2 As New OleDbCommand
Try
cmdinsert1.CommandText = str_cmd1
cmdinsert2.CommandText = str_cmd2
cmdinsert1.Connection = cn1
cmdinsert2.Connection = cn2
If cn1.State = ConnectionState.Closed Then cn1.Open()
If cn2.State = ConnectionState.Closed Then cn2.Open()
DataBaseRST1 = cmdinsert1.ExecuteNonQuery() '用来返回执行的结果
DataBaseRST2 = cmdinsert2.ExecuteNonQuery() '用来返回执行的结果
cn1.Close()
cn2.Close()
Return True
Catch ex As Exception
MessageBox.Show(Err.Description, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return False
End Try
End Function
End Module
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
DataModify("insert into aa values ('1','2')", "insert into aa values ('1','2')") '调用方法
End Sub
End Class
追问
这个方法vb.net条码入库我只能用于添加修改删除 , 请问,查询数据并且绑定到DGV怎么做vb.net条码入库?
回答
Public Function Search(ByVal cn1 As OleDb.OleDbConnection, ByVal cn2 As OleDb.OleDbConnection, ByVal str_cmd1 As String, ByVal str_cmd2 As String, ByVal DGV1 As DataGridView, ByVal DGV2 As DataGridView) As Boolean '查询 str_cmd1,str_cmd2---查询命令,DGV1,DGV2---DataGridView,用来显示数据的控件
Dim tb1 As New DataTable
Dim tb2 As New DataTable
Try
Dim ap1 As New OleDb.OleDbDataAdapter(str_cmd1, cn1)
ap1.Fill(tb1)
DGV1.DataSource = tb1
Dim ap2 As New OleDb.OleDbDataAdapter(str_cmd2, cn2)
ap2.Fill(tb2)
DGV2.DataSource = tb2
Return True
Catch ex As Exception
MessageBox.Show(Err.Description, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return False
End Try
VB.NET如何操作条码扫描枪,如何设置,如何进行条形码的设置及打印这个要看扫描枪vb.net条码入库的通讯接口和通讯协议vb.net条码入库,以及接口程序是否支持VB.NET等 。
如何在vb.net 中录入条形码字符,谢谢93条码和CODE39一样vb.net条码入库,起始符和结束符都是*号vb.net条码入库,你做的条码扫描不出来的原因vb.net条码入库,估计和校验码有关 。93条码规定在数据的最后有两个校验位C和Kvb.net条码入库,如果你的数据里没有生成这两个校验位,那肯定是无法扫描的 。
VB.net如何在水晶报表上打印条码很简单 。只需要安装Code39字体 , 或者加载到系统中就可以 。
报表设置该字体自然就表示成条形码了 。
Code39字体从网上搜索能搜索到 。
vb.net条码打印控件工具箱,然后随便选择一项 , 右键 选择项,在.com控件里 , microsoft bar ctrol 9.0
【vb.net条码入库 vb生成条形码开源】关于vb.net条码入库和vb生成条形码开源的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。
推荐阅读
- 显卡小了不用怎么处理,电脑显卡太小怎么办
- 在js中写sql好不好,js写数据库
- 比较短的JAVA代码游戏 短代码的java小程序
- cssbr是什么,bsr是什么意思的缩写
- 养成游戏恋爱可移动,养成游戏恋爱手游
- 你认为新媒体如何运营,新媒体运营方法和策略
- javadate类代码 javadate类型的日期应该怎么写
- 用c语言程序画图形框怎么画,用c语言程序画图形框怎么画出来
- ios游戏女生经营,女生经营类游戏