因为你的DataEnvironment1.Connection1连接第一次打开了,在没有用close关闭的情况下,再次打开,当然会报错了。应该在处理完后用close方法关闭.

解决方案 »

  1.   

    谢谢,要在什么地方关闭数据连接???在报表关闭的时候吗?
    Private Sub DataEnvironment_Terminate()
    Connection1.Close
    End Sub
    这样也不行~
      

  2.   

    在  i = InputBox("请输入您要查找的条件(姓名):", "提示") 前面关闭数据连接
      

  3.   

    DataEnvironment1.Connection1.Close
    实时错误3704,对像'close'的方法'_connection'失败~
    不能关闭,命令错误??
      

  4.   

    如果你第一次运行,那么连接根本就没有打开,运行close当然回出现错误,
    所以,如果象lincanwen所说的那样,我认为你还得先判断一下是否已经连接
      

  5.   

    在DataEnvironment1.Connection1.Close前加一句:
       on error resume next 
    试试看!
      

  6.   

    在你上面语句的最后关闭
    if DataEnvironment1.Connection1.state=adstateopen then
      DataEnvironment1.Connection1.close
    end if
      

  7.   

    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
      

  8.   

    If Cnn.State = adStateOpen Then Cnn.CloseState属性值的意思
    AdStateClosed 默认,指示对象是关闭的。 
    AdStateOpen 指示对象是打开的。 
    AdStateConnecting 指示 Recordset 对象正在连接。 
    AdStateExecuting 指示 Recordset 对象正在执行命令。 
    AdStateFetching 指示 Recordset 对象的行正在被读取。