Set oConn = New ADODB.Connection   //已经引用ado且肯定没有错oConn.Open Connect   //Connect连接字符串肯定没错上一句执行后错误处理竟报错为  “实时错误‘3704’:对象关闭时,不允许操作” ,数据库编程也有一段时间了我还是第一次遇到这样的情况,更奇怪的是在其他工程的相同语句可以通过!!高手能否指点一下

解决方案 »

  1.   

    if oconn.state=adStateOpen then oconn.CloseSet oConn = New ADODB.Connection   //已经引用ado且肯定没有错
    oconn.cursorlocation=3
    oConn.Open Connect
      

  2.   

    再贴一点代码把这样怎么看是不是前面忘了dim oConn 了?
      

  3.   

    别的地方是否也用oConn
    并且有set oConn=nothing 这样的语句
      

  4.   

    dim 了
    其他地方没有oConn 第一次open就出现这样的问题,很纳闷呀
      

  5.   

    Dim sConnect As StringsConnect = "<yourConnectionString>"
    oConn.Open sConnect
      

  6.   

    过程如下:Public Function GetRecordset( _
                        ByVal Connect As String, _
                        ByVal SQLQuery As String, _
                        ByRef Recordset As ADODB.Recordset, _
                        Optional ByVal Options As QUERYOPTIONS = QO_UseDefault, _
                        Optional ByVal UseShapeProvider As Boolean = False) _
                        As Boolean
    Dim oConn       As ADODB.Connection
    Dim lErrNo      As Long
    Dim sErrDesc    As String    GetRecordset = False
        On Error GoTo ErrorHandler
        
      If Connect <> vbNullString Then
           
            Set oConn = New ADODB.Connection
            
            If UseShapeProvider Then
                oConn.Provider = scSHAPE_PROVIDER
            End If
            oConn.Open Connect    Else
            Set oConn = m_oConnection
        End If
            
        Set Recordset = New ADODB.Recordset
        Set Recordset.ActiveConnection = oConn
        Recordset.CursorLocation = adUseClient
        Recordset.CursorType = adOpenStatic
        Recordset.LockType = adLockBatchOptimistic
        
        Recordset.Open SQLQuery, , , , Options
        
        Set Recordset.ActiveConnection = Nothing    If Connect <> vbNullString Then
            oConn.Close
        End If
        
        Set oConn = Nothing
        GetRecordset = True
        Exit Function
        
    ErrorHandler:
        lErrNo = Err.Number
        sErrDesc = Err.DescriptionOn Error Resume Next
        Set Recordset = Nothing
        On Error GoTo 0
        If Connect <> vbNullString Then
            oConn.Close
        End If
        On Error GoTo 0
        Err.Raise lErrNo, OBJNAME, sErrDescEnd Function
      

  7.   

    你的ado版本是多少?
    建议使用2。1