这段代码只能查找到一个字符,想再打第二个字符就出错,请问怎样解决?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
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
Change事件,每输入一个字符,触发一次事件
---------------------------
改写到Text7_LostFocus事件中
rs没有关闭
open一次后,每次需要rs.close再open
要不就每次在OPEN前加上close
还可以用set ...=... new ....
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
将
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
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
---------------------------------------
if rs.state=openstate then rs.close
出错了?提供“对象关闭时不许操作”