这段代码只能查找到一个字符,想再打第二个字符就出错,请问怎样解决?Private Sub Text7_Change()
    Dim pdid As String
    pdid = Trim(Text7.Text)
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\dbf1.mdb" & ";Persist Security Info=False"
conn.Open
rs.CursorLocation = adUseClient
    rs.Open "select * from book where 书号  like'" & pdid & "%'", conn, adOpenDynamic, adLockBatchOptimistic
If rs.EOF = False Then
Set DataGrid1.DataSource = rs
End If
End Sub

解决方案 »

  1.   


    Change事件,每输入一个字符,触发一次事件
    ---------------------------
    改写到Text7_LostFocus事件中
      

  2.   

    conn.open要放在外面
    rs没有关闭
    open一次后,每次需要rs.close再open
      

  3.   

    你要不就把conn.open这些放外面
    要不就每次在OPEN前加上close
    还可以用set ...=... new ....
      

  4.   

    Set conn = New Connection
    conn.CursorLocation = adUseClient
        
    conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\dbf1.mdb" & ";Persist Security Info=False"Set rs = New Recordset
    rs.CursorLocation = adUseClient
        rs.Open "select * from book where 书号  like'%" & pdid & "%'", conn, adOpenDynamic, adLockBatchOptimistic
    If not rs.EOF Then
    Set DataGrid1.DataSource = rs
    End If
      

  5.   

    举个修改例子

        Dim pdid As String
        pdid = Trim(Text7.Text)
    conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\dbf1.mdb" & ";Persist Security Info=False"
    conn.Open 放到启动时,比如form_load在
        rs.Open "select * from book where 书号  like'" & pdid & "%'", conn, adOpenDynamic, adLockBatchOptimistic
    If rs.EOF = False Then
    Set DataGrid1.DataSource = rs
    End If
    前加上
    if rs.state=openstate then rs.close
      

  6.   

    我在开始时已经定义了:    
    Dim conn   As New ADODB.Connection
    Dim rs   As New ADODB.Recordset
    ---------------------------------------
    if rs.state=openstate then rs.close
    出错了?提供“对象关闭时不许操作”