假设你的记录集(Recordset)叫tmpRst
如下方法可解决:
tmpRst.MoveLast
tmpRst.MoveFirst
tmpRst.RecorCount其实这是ADO/RDO本身的问题

解决方案 »

  1.   

    Public Function GOrderID(UserName As Variant) As Adodb.Recordset
    On Error Resume Next
    Dim Cn As New Adodb.Connection
    Dim rs As New Adodb.Recordset
        Cn.ConnectionString = SetStr
        Cn.Open
        rs.Open "u_ReturnOrderID('" & UserName & "')", Cn, adOpenStatic, adLockReadOnly, adCmdStoredProc'(1)
        Set GOrderID = rs
    End Function
    这样是正确的
    如果(1)这样写rs.Open "u_ReturnOrderID('" & UserName & "')", Cn, adopenDynamic,adLockOptimistic , adCmdStoredProc
    就是-1而这时用Rs.movenext可以取到其它记录(这时不此一条记录)