Dim c As New Command
Set c.ActiveConnection = cnc.CommandText = "getbookinfo"
c.CommandType = adCmdStoredProc
c.Parameters.Refresh
c.Parameters("@ISBN") = "7806733957"
rs.CursorLocation = adUseClient
rs.CursorType = adOpenStatic
Set rs = c.Execute
rs.MoveFirst
MsgBox rs.RecordCount

解决方案 »

  1.   

    rs.MoveLast
    MsgBox rs.RecordCount
    看看
      

  2.   

    rs.CursorLocation = adUseClient
      

  3.   

    你用
    sql="select *....."
    rs.open sql,conn,1,1
    这样就可以用
    rs.recordcount了
      

  4.   

    在前面加上 Set rs = New ADODB.Recordset
      

  5.   

    在用rs.recordcount前写rs.movefirst
      

  6.   

    如果你用ADODC控件就可以发现ADODC.RECORDSET.RecordCount是正确的,如果用ADO组件打开数据,当你没有遍历记录时,.RecordCount=-1,所以有的书上说先做一个MOVELAST再做一个MOVEFIRST,但记录巨大时,效率太低了吧!
      

  7.   

    用count(*)试一下,我也是这样用的!
      

  8.   

    rs.CursorLocation = adUseClient
    rs.CursorType = adOpenStatic
    这两句拿掉,看看
      

  9.   

    昨天我也刚遇到了,呵呵,,后来认真一看,原来是两个工程混了,ODBC连错了,两个库里都有那个表,所以老是-1,,,不知道你的怎么样,好好查查吧.
      

  10.   

    把select * from tablename",conn,3,1還有種情況就是數據庫損壞需要修復