你这段程序没有错误。
不要理会RECORDCOUNT属性,它是没有什么意义的。

解决方案 »

  1.   

    你这段程序没有错误。
    不要理会RECORDCOUNT属性,它是没有什么意义的。
      

  2.   

    szcn.Open 
    上面的改为szcn.Open ,,3,3
    试试,我记得不是很清楚了,如果不行的话,后面两个数字从0到3你就一个一个试试看。
      

  3.   

    你用的的连接类型和锁定方式都没有错。
    Recordset记录集有一特性如果你的Sql语句没有写错先执行Rst.movelast方法。
    在用他的RecordCount属性就可以了。
      

  4.   

    在你的程序中加入szrs.CursorLocation=adUseClient 你的szrs.recodercount就是你找到的记录集个数了.
      

  5.   

    更好的办法是另外用一句SQL,使用相同的Where子句,加上Count(*)
    后可以直接返回数量。我一般不使用结果集的数据直接填写界面,而是先将返回的结果集
    全部读取到一个集合中。再从集合中取得数据填写界面。这样使用
    集合的COUNT属性就可以获得记录数量。
      

  6.   

    szrs.CursorLocation=adUseClient 
    szrs.CursorType = adOpenKeyset 
    改成 szrs.CursorType =adOpenStatic
    好像只有 szrs.CursorType =adOpenStatic和 adOpenForwardOnly
    你那个属性才有效.
      

  7.   


      szcn.Open 
    上面的改为szcn.Open ,,1,3 
     
      

  8.   

    因为没有设置CursorLocation所以CursorType = adOpenKeyset 无效,
    真实返回的值可能为CursorType = adOpenForwardOnly所以RecordCount属性返回-1请debug.print验证一下吧?
      

  9.   

    ADO的Recordcount不稳定,你可改变程序结构,用rs.EOF来完成功能。
    例如:
    Dim strCountry(99) as String
    Dim i as Integer
    i=0
    While not rs.EOF
        strCountry(i) = szrs("country")
        i=i+1
    Wend
      

  10.   

    RecordCount 的结果 和你 设置 的 .CursorType = adOpenKeyset 有关。adOpenKeyset 表示游标可以 上下方向任意移动,所以这个时候 RecordCount 是无意思的。