在DataEnvironment1.Connection1.Close前加一句: on error resume next 试试看!
在你上面语句的最后关闭 if DataEnvironment1.Connection1.state=adstateopen then DataEnvironment1.Connection1.close end if
Option ExplicitPrivate Sub Command1_Click() Dim i As String i = InputBox("请输入您要查找的条件(姓名):", "提示") If i <> "" Then Dim strapp As String strapp = App.Path If Right(strapp, 1) <> "\" Then strapp = strapp + "\" End If
'因为connection对象打开后没有关闭,所以再次打开会报错 If DataEnvironment1.Connection1.State = 1 Then DataEnvironment1.Connection1.Close End If DataEnvironment1.Connection1.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & strapp & "db1.mdb" DataEnvironment1.rsCommand1.Open "select * from mod_xs_tx where xm='" & i & "'", DataEnvironment1.Connection1, adOpenStatic, adLockOptimistic Set DataReport2.DataSource = DataEnvironment1 DataReport2.DataMember = "command1" DataReport2.Show Else DataEnvironment1.Connection1.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & strapp & "db1.mdb" DataEnvironment1.rsCommand1.Open "select * from mod_xs_ls where xm='" & i & "'", DataEnvironment1.Connection1, adOpenStatic, adLockOptimistic End If '第一次运行的时候不出错,第二次运行的时候就会提示“实时错误3705,对像‘open'的方法'_connection'失败~ '为什么?? End Sub
Private Sub DataEnvironment_Terminate()
Connection1.Close
End Sub
这样也不行~
实时错误3704,对像'close'的方法'_connection'失败~
不能关闭,命令错误??
所以,如果象lincanwen所说的那样,我认为你还得先判断一下是否已经连接
on error resume next
试试看!
if DataEnvironment1.Connection1.state=adstateopen then
DataEnvironment1.Connection1.close
end if
Dim i As String
i = InputBox("请输入您要查找的条件(姓名):", "提示")
If i <> "" Then
Dim strapp As String
strapp = App.Path
If Right(strapp, 1) <> "\" Then
strapp = strapp + "\"
End If
'因为connection对象打开后没有关闭,所以再次打开会报错
If DataEnvironment1.Connection1.State = 1 Then
DataEnvironment1.Connection1.Close
End If
DataEnvironment1.Connection1.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & strapp & "db1.mdb"
DataEnvironment1.rsCommand1.Open "select * from mod_xs_tx where xm='" & i & "'", DataEnvironment1.Connection1, adOpenStatic, adLockOptimistic
Set DataReport2.DataSource = DataEnvironment1
DataReport2.DataMember = "command1"
DataReport2.Show
Else
DataEnvironment1.Connection1.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & strapp & "db1.mdb"
DataEnvironment1.rsCommand1.Open "select * from mod_xs_ls where xm='" & i & "'", DataEnvironment1.Connection1, adOpenStatic, adLockOptimistic
End If
'第一次运行的时候不出错,第二次运行的时候就会提示“实时错误3705,对像‘open'的方法'_connection'失败~
'为什么??
End Sub
AdStateClosed 默认,指示对象是关闭的。
AdStateOpen 指示对象是打开的。
AdStateConnecting 指示 Recordset 对象正在连接。
AdStateExecuting 指示 Recordset 对象正在执行命令。
AdStateFetching 指示 Recordset 对象的行正在被读取。