要使用客户端游标Dim rs As New ADODB.Recordset
    
rs.CursorLocation = adUseClient
rs.Open "select * from table", cn, adOpenStatic, adLockReadOnly, adCmdText
Set rs.ActiveConnection = Nothing

解决方案 »

  1.   

    在建个recordset 对象,关闭前附给它,试试看,没用过
      

  2.   

    使用客户端游标,并且在执行rs.close之前,将其中的内容附给另一个recordset对象。
      

  3.   

    Private Sub Command1_Click()
        Dim cn As New ADODB.Connection
        Dim rs As New ADODB.Recordset
        
        cn.Provider = "SQLOLEDB"
        cn.Open "Driver={SQL Server};Server=Develop;UID=SA;PWD=;DataBase=mrp"
        cn.CursorLocation = adUseClient  '如果少了这句将会出错
        
        Set rs = cn.Execute("select * from bom")
        
        Set rs.ActiveConnection = Nothing  '这句也不能少
        cn.Close
        Set cn = Nothing
        
        Do While Not rs.EOF
            Debug.Print rs(0).Value
            rs.MoveNext
        Loop
        rs.Close
        Set rs = Nothing
    End Sub