Public Function Exec(ByVal t_admin As String, ByVal f_id As String, ByVal orderfield As String, ByVal orderway As Integer, ByVal zd As String, ByVal mypagesize As Integer, ByVal page As Integer, ByVal sqlwhere As String, ByRef totalpage As Integer) As ADODB.Recordset  Dim cmd As New ADODB.Command
With cmd
 .ActiveConnection = Cn      '数据库连接字串
 .CommandText = "ProPageSet"       '指定存储过程名
 .CommandType = 4        '表明这是一个存储过程
 .Prepared = True        '要求将SQL命令先行编译
 
 .Parameters.Append .CreateParameter("RETURN", 3, 4, 4) '返回值
 .Parameters.Append .CreateParameter("@tb", 200, 1, 50, t_admin) '分页时要查询的表名
 .Parameters.Append .CreateParameter("@col", 200, 1, 50, f_id) '按该列来进行分页
 .Parameters.Append .CreateParameter("@colorder", 200, 1, 50, orderfield) '排序字段
 .Parameters.Append .CreateParameter("@orderby", 11, 1, 1, orderway) '排序方式,0为顺序,1为倒序
 .Parameters.Append .CreateParameter("@collist", 200, 1, 800, zd) '每页中要显示的字段,以逗号隔开
 .Parameters.Append .CreateParameter("@pagesize", 3, 1, 4, mypagesize) '每页记录数
 .Parameters.Append .CreateParameter("@page", 3, 1, 4, page) '指定页数
 .Parameters.Append .CreateParameter("@condition", 200, 1, 800, sqlwhere) '查询条件where 中的条件语句
 .Parameters.Append .CreateParameter("@pages", 3, 2, 4) '总页数output Set rs = .Execute
End With
'rs.Close '取返回值前一定要关闭,否则取不到
totalrecord = cmd(9) '总记录数
Set Exec = rs
Set cmd = Nothing
End Function
我这有个执行一个分页存储过程的函数,这个存储过程会返回一个记录集和一个值这个值是总页数但别人说非要把rs关闭才能取到返回值。但是如果把rs关闭了我函数返回出的记录集就跟着关了在程序里就会得不到记录集有没有好的方法又能接收记录集又能接收那个返回值。。谢谢了。