请看下面的代码:Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sql As StringPrivate Sub Form_Load()
Dim strcnn As String
strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db.mdb"
cnn.Open strconn
sql = "select * from tb1"
Set rs = cnn.Execute(sql)
Text1.Text = CStr(rs.RecordCount)
Set MSHFlexGrid1.Recordset = rs
rs.Close
cnn.Close
End Sub
tb1表中有三条记录,但是只显示一条记录,而且rs.recordcount的值是-1。
请问为什么会这样呢?

解决方案 »

  1.   

    sql = "select * from tb1"
    Set rs = cnn.Execute(sql)
    //改成这个样子
    if rs.state<>adstateclosed then rs.close
    rs.open"select * from tb1",conn,1,1
    msgbox  rs.RecordCount
      

  2.   

    Dim cnn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim sql As StringPrivate Sub Form_Load()
    Dim strcnn As String
    strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db.mdb"
    cnn.Open strconn
    cnn.CursorLocation =adUseClient'注意要使用客户端游标
    sql = "select * from tb1"
    Set rs = cnn.Execute(sql)
    Text1.Text = CStr(rs.RecordCount)
    Set MSHFlexGrid1.Recordset = rs
    rs.Close
    cnn.Close
    End Sub
      

  3.   

    ''''cnn.CursorLocation =adUseClient'注意要使用客户端游标'''''为什么?
      

  4.   

    Dim cnn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim sql As StringPrivate Sub Form_Load()
    Dim strcnn As String
    strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db.mdb"
    cnn.Open strconn
    cnn.CursorLocation =adUseClient
    sql = "select * from tb1"
    Set rs = cnn.Execute(sql)
    Text1= rs.RecordCount
    Set MSHFlexGrid1.Recordset = rs
    rs.Close
    cnn.Close
    End Sub
      

  5.   

    Dim cnn As New ADODB.Connection
    Dim Rs As New ADODB.RecordsetPrivate Sub Form_Load()
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db.mdb"
    Rs.Open "select * from tb1", Cnn, adOpenKeyset, adLockReadOnly
    Set MSHFlexGrid1.DataSource = rs
    Rs.Close
    Cnn.Close
    End Sub
      

  6.   


        同意chenyu5188(来自东方的狼),设置本地静态游标,才能正确读取recordcount,否则,记录集是服务器端的动态记录集,不会返回此属性的。