本人以前编了一个数据库录入界面,其中有一个“编号”字段的录入是用文本框控件来接受录入数据的,现在我的编号要改成条形码的形式来录入,请问vb中有没有这样的控件?

解决方案 »

  1.   

    条形码access就带一个,你也可以用使用条形码字体然后转化为图象,就不知你怎么用条形码,如果保存完整的数据就要用第三方控件SHANNON
       ----------------
        [email protected]
      

  2.   

    条形码scanner一般有两类,一种通过串口与计算机连接,一种通过键盘接口与计算机连接,如果是前者,需要用mscomm控件从串口取得数据,如果是后者,无需编程,就象直接通过键盘输入一样。
      

  3.   

    to junwhj(junwhj.myrice.com) :
      我用的scanner是通过键盘接口与计算机连接的,你的意思是:我在输入“编号”字段数据(编号是条形码形式,就象超市中物品的编号)时,直接用scanner对着条形码编号扫描一下,我的文本框(text控件)就可直接接受条形码读取的数据了,就跟用键盘输入编号一样的吗?不用另外的控件或者编程了吗?
      

  4.   

    To swots(欲知):
    是的。
      

  5.   

    我这有个例子你看看,code128 code39都有至于他们的标准你可以查资料bar39////////////////////////Sub DrawBarcode(ByVal bc_string As String, obj As Object)Dim xpos!, Y1!, Y2!, dw%, Th!, tw, new_string$
    If bc_string = "" Then obj.Cls: Exit Sub
    'define barcode patterns
    Dim bc(90) As String
    bc(1) = "1 1221"            'pre-amble
    bc(2) = "1 1221"            'post-amble
    bc(48) = "11 221"           'digits
    bc(49) = "21 112"
    bc(50) = "12 112"
    bc(51) = "22 111"
    bc(52) = "11 212"
    bc(53) = "21 211"
    bc(54) = "12 211"
    bc(55) = "11 122"
    bc(56) = "21 121"
    bc(57) = "12 121"
                                'capital letters
    bc(65) = "211 12"           'A
    bc(66) = "121 12"           'B
    bc(67) = "221 11"           'C
    bc(68) = "112 12"           'D
    bc(69) = "212 11"           'E
    bc(70) = "122 11"           'F
    bc(71) = "111 22"           'G
    bc(72) = "211 21"           'H
    bc(73) = "121 21"           'I
    bc(74) = "112 21"           'J
    bc(75) = "2111 2"           'K
    bc(76) = "1211 2"           'L
    bc(77) = "2211 1"           'M
    bc(78) = "1121 2"           'N
    bc(79) = "2121 1"           'O
    bc(80) = "1221 1"           'P
    bc(81) = "1112 2"           'Q
    bc(82) = "2112 1"           'R
    bc(83) = "1212 1"           'S
    bc(84) = "1122 1"           'T
    bc(85) = "2 1112"           'U
    bc(86) = "1 2112"           'V
    bc(87) = "2 2111"           'W
    bc(88) = "1 1212"           'X
    bc(89) = "2 1211"           'Y
    bc(90) = "1 2211"           'Z
                                'Misc
    bc(32) = "1 2121"           'space
    bc(35) = ""                 '# cannot do!
    bc(36) = "1 1 1 11"         '$
    bc(37) = "11 1 1 1"         '%
    bc(43) = "1 11 1 1"         '+
    bc(45) = "1 1122"           '-
    bc(47) = "1 1 11 1"         '/
    bc(46) = "2 1121"           '.
    bc(64) = ""                 '@ cannot do!
    'A Fix made by changing 65 to 42.
    bc(42) = "1 1221"           '*bc_string = UCase(bc_string)
    'dimensions
    obj.ScaleMode = 3                               'pixels
    obj.Cls
    obj.Picture = Nothing
    dw = CInt(obj.ScaleHeight / 40)                 'space between bars
    If dw < 1 Then dw = 1
    'Debug.Print dw
    Th = obj.TextHeight(bc_string)                  'text height
    tw = obj.TextWidth(bc_string)                   'text width
    new_string = Chr$(1) & bc_string & Chr$(2)      'add pre-amble, post-ambleY1 = obj.ScaleTop
    Y2 = obj.ScaleTop + obj.ScaleHeight - 1.5 * Th
    obj.Width = 1.1 * Len(new_string) * (15 * dw) * obj.Width / obj.ScaleWidth
    'draw each character in barcode string
    xpos = obj.ScaleLeft
    For n = 1 To Len(new_string)
        c = Asc(Mid$(new_string, n, 1))
        If c > 90 Then c = 0
        bc_pattern$ = bc(c)
        
        'draw each bar
        For i = 1 To Len(bc_pattern$)
            Select Case Mid$(bc_pattern$, i, 1)
                Case " "
                    'space
                    obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &HFFFFFF, BF
                    xpos = xpos + dw
                    
                Case "1"
                    'space
                    obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &HFFFFFF, BF
                    xpos = xpos + dw
                    'line
                    obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &H0&, BF
                    xpos = xpos + dw
                
                Case "2"
                    'space
                    obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &HFFFFFF, BF
                    xpos = xpos + dw
                    'wide line
                    obj.Line (xpos, Y1)-(xpos + 2 * dw, Y2), &H0&, BF
                    xpos = xpos + 2 * dw
            End Select
        Next
    Next'1 more space
    obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &HFFFFFF, BF
    xpos = xpos + dw'final size and text
    obj.Width = (xpos + dw) * obj.Width / obj.ScaleWidth
    obj.CurrentX = (obj.ScaleWidth - tw) / 2
    obj.CurrentY = Y2 + 0.25 * Th
    obj.Print bc_stringEnd Sub
      

  6.   

    code128内容太长我无法贴上,我发邮件给你
      

  7.   

    to ch21st(风尘鸟) :
       你的邮件我收到了,谢谢你!不过有些代码我暂时还不太懂,因为以前没接触过这方面的知识,我看看先。
      

  8.   

    楼主你真流氓!!! 
    ch21st(风尘鸟)  ch21st(风尘鸟) 把这么难得的代码给你,为什么不结帖给分???