上次问题:
现在有三个控件,text1,text2,label1,现在把text1中的输入数当作样本,text2里输入的是变化的,把text1与text2的比较结果赋给label1.caption=“ok”or“NG”,这个赋值好解决。现在比较难解决的是text1与text2的比较问题,因为text2的值是变化的,只有等text2完全输入后才能比较,其中不添加command的按钮,全部在text2的change事件中自动完成。例如:样本text1.text=“888754923”
这时往text2中输入“888754923”label1这时应该显示“ok”同时text2里清空等待下一个输入,并且这“ok”要保持到下一个text2输入之前,但再往text2中输入“8887549236”比标准样本多一位时,label1应该显示由“ok”变为“NG”text2清空,并保持到下一个输入之前,在往里输入“8887549232”比标准样本text1少一位时,label应该显示“NG”同时text2自动清空。
        比较长,大家耐心看看,不知道这个问题怎么解决啊?????
 happy_sea(开心海) 已经解决上面的问题,解决方法如下:
   
  Private Sub Form_Load()
    Timer1.Interval = 1000
    Timer1.Enabled = False
End SubPrivate Sub Text2_Change()
    If Text2.Text = "" Then
        Timer1.Enabled = False
    Else
        Timer1.Enabled = False
        Timer1.Enabled = True
    End If
End SubPrivate Sub Timer1_Timer()
    If Text2.Text <> Text1.Text Then
        Label1.Caption = "ng"
        Text2.Text = ""
    Else
        Label1.Caption = "ok"
        Text2.Text = ""
    End If
End Sub
Timer1.Interval大于你的条码枪的识别速度即可
 但现在有一个问题是添加如何把text2里输入的数据和label判断的结果自动保存在excel里(文件名为当天日期)的功能??谢谢!!

解决方案 »

  1.   

    呵呵,因为你主要是想保存结果而不在乎字体啦格式啦什么的,建议你直接保存成用逗号分隔的csv文件就行了,用excel也能打开,也可以方便的转化为xls,关键是写入的时候不用调用excel,直接当作文本文件来写就行了。只要把timer1_timer事件的代码改一下就行了:Private Sub Timer1_Timer()
        If Text2.Text <> Text1.Text Then
            Label1.Caption = "ng"
            open "c:\output\" & format(date,"yyyymmdd") & ".csv" for append as #1 '用append的方式打开,如果已存在就追加在尾部
            print #1,text2.text & "," & label1.caption
            close #1
            Text2.Text = ""
        Else
            Label1.Caption = "ok"
            open "c:\output\" & format(date,"yyyymmdd") & ".csv" for append as #1 '用append的方式打开,如果已存在就追加在尾部
            print #1,text2.text & "," & label1.caption
            close #1
            Text2.Text = ""
        End If
    End Sub你运行一下看看效果,不行再改 *^_^*
      

  2.   

    原来前面说的都是废话。Private Sub Timer1_Timer()
    dim cn as adodb.connection    If Text2.Text <> Text1.Text Then
            Label1.Caption = "ng"
        Else
            Label1.Caption = "ok"
        End If
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & Format(date, "yyyy_mm_dd") & ".xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
    cn.Execute "Insert Into [Sheet1$](Text2, Result) Values(" & text2 & "," & Label1 & ")"
    cn.close
    set cn = nothing
    Text2.Text = ""
    End Sub
      

  3.   

    为什么提示路径未找到!
     问题出现在下面这句话:
     
    Open "c:\output\" & Format(Date, "yyyymmdd") & ".csv" For Append As #1 '用append的方式打开,如果已存在就追加在尾部
      

  4.   

    我只是举了个例子,把输出文件放在c:\output\这个文件夹下面,如果不存在这个文件夹就会出错。
    你可以:
    1、把c:\output换成一个已存在的文件夹;
    2、先if dir("c:\output",vbdirectory)="" then mkdir "c:\output"
    3、放在应用程序所在路径:
       Open app.path & "\" & Format(Date, "yyyymmdd") & ".csv" For Append As #1
      

  5.   

    “dim cn as adodb.connection”这句话对吗??