rs.recordcount不准的,通常都不用。
方法有2:
1。for next 遍历表。
2。select count(*) form lsxx 
然后将结果取出。

解决方案 »

  1.   

    cn.CursorLocation = adUseClient
      

  2.   

    我今天刚搞定
    rs.open strsql,cn,3,1
    你先用下面这个看看他支持不支持
    rs.supports(参数不清楚了,提示的第一个可以看看帮助)
    如果是true就一定可以出来
    这是显示记录数的
    rs.recordcount
      

  3.   

    我是用Access+DAO,recordcount有时也是不准,但是每次在取recordcount值钱先执行rs.movelast方法,再取recordcount就可以了。
      

  4.   

    问题的根源在这里:    rs.Open sSQL, cn, adOpenDynamic, adLockOptimistic记录集rs的Open方法中的第三个参数必须设为adOpenStatic(即静态游标),才能通过RecordCount属性取出记录数,其它三种游标类型,其值均为-1.
      

  5.   

    完全同意楼上的,一定要把adopendynamic,改过来才行的,]
      

  6.   

    rstemp.Open SQLstring, adOpenKeyset, adLockOptimistic这样绝对行的
      

  7.   

    Open方法中的第三个参数必须设为adOpenStatic(静态游标)或者是adOpenKeyset(键集游标),才能通过RecordCount属性得到确切的记录数,如果非要用adOpenDynamic游标,可在SQL语句中使用Count函数(大多数数据库都支持)例如: strSQL= "Select Count(CustomerID) From Customers"即可返回由查询检索的记录数目。
      

  8.   

    cn.CursorLocation = adUseClient
      

  9.   

    你试一试以下语句,看看行不行
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim sSQL As String
    cn.Provider = "MSDASQL"
    cn.ConnectionString = "driver={SQL Server};" & "server=HYJ;uid=SA;pwd=;database=LSYML2"
    cn.OpensSQL = "SELECT * FROM lsxx"
    rs.Open sSQL, cn, adOpenDynamic, adLockOptimisticdim a as long
    '以下语句能还回正确的记录数
    rs.movelast
    rs.moveFirst
    a=rs.recordcount
    'a就是记录集的记录数
      

  10.   

    没这么麻烦,只要rs.movelast就可以知道记录数了.
      

  11.   

    rs.Open sSQL, cn, adOpenDynamic, adLockOptimistic
    改成:
    rs.Open sSQL, cn, adOpenStatic, adLockOptimistic
    就绝对可以了,
      

  12.   

    在你連接時加上這句話
    cn.CursorLocation = adUseClient
      

  13.   

    rs.Open sSQL, cn, adOpenStatic, adLockOptimistic
    cn.CursorLocation = adUseClient
      

  14.   

    You must add below code
    cn.CursorLocation = adUseClient
      

  15.   

    只要把adOpenDynamic改成adOpenStatic就可以了~~
      

  16.   

    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim sSQL As String
    cn.Provider = "MSDASQL"
    cn.ConnectionString = "driver={SQL Server};" & "server=HYJ;uid=SA;pwd=;database=LSYML2"
    cn.OpensSQL = "SELECT * FROM lsxx"
    rs.Open sSQL, cn, 3,1rs.movefirstdim a as long
    a=rs.recordcount
    ======================
    我记得曾经有位大侠和我说过,使用ADO的recordcount应先用一下movefirst使的指针有意义。