我用下面代码的话会提示“连接无法执行此操作。在此上下文中它可能已被关闭或无效”
    Dim cnn As New ADODB.Connection
    Dim rst As New ADODB.Recordset
    cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\gz.mdb;Persist Security Info=False"
    cnn.Open
    rst.Open "select * from gzgl"
    Text1.Text = rst.RecordCount
    rst.Close
    cnn.Close
并且我已经加了SP6的补丁

解决方案 »

  1.   

    您可以将连接符改为 "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\gz.mdb;Jet OLEDB:database password="
      

  2.   

    控件的引用做了吗?
    复制Dim cnn As New粘贴,输入空格能弹出ADODB吗?
      

  3.   


    rst.Open "select * from gzgl",cnn
      

  4.   


    rst.Open "select * from gzgl",cnn,adOpenKeyset, adLockOptimistic
    试试
      

  5.   


    Public Function OpenAccess(DBname As String) As Boolean
        On Error GoTo ErrHandler
        Set Conn = New ADODB.Connection
        Conn.Provider = "Microsoft.Jet.OLEDB.4.0"
        If Right(App.Path, 1) = "\" Then
            Conn.Open App.Path & DBname
        Else
            Conn.Open App.Path & "\" & DBname
        End If
        OpenAccess = True
    Exit FunctionErrHandler:
        OpenAccess = False
        MsgBox Err.Description, vbExclamation, "error"
        Err.Clear
    End Function
      

  6.   

    或者改成这样:
        Dim cnn As New ADODB.Connection 
        Dim rst As New ADODB.Recordset 
        rst.CursorLocation = adUseClient
        cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\gz.mdb;Persist Security Info=False" 
        rst.Open "select * from gzgl" ,cnn,1,3
        Text1.Text = rst.RecordCount 
        rst.Close 
        cnn.Close 
      

  7.   

    非常感谢好心人,我用“沉默的羔羊”的方法已经解决了,如果是连接access数据库,一定要指定游标类型吗?