Dim param1 As Parameter
Dim param2 As ParameterDim rs As New ADODB.Recordset
Dim cn  As New ADODB.Connection
Dim cmd  As New ADODB.Command
  cn.Provider = "SQLOLEDB"
cn.ConnectionString = sqlconnectstr
cn.CursorLocation = adUseClient
cn.CommandTimeout = 300
cn.OpenSet param1 = cmd.CreateParameter("start", adDBDate, adParamInput, 8, startdate)
Set param2 = cmd.CreateParameter("end", adDBDate, adParamInput, 8, enddate)cmd.Parameters.Append param1
cmd.Parameters.Append param2cmd.CommandText = ProcessName
cmd.CommandType = adCmdStoredProc
Set cmd.ActiveConnection = cn
 
 Set sqlconnect1 = cmd.Execute
Set cn = Nothing
上面的好象只能返回只有一个SELECT的存储过程的记录集.而使用rs.nextrecordset的话会出错!
thanks

解决方案 »

  1.   

    vb中应该不可以吧 ado.net中的dataset可以
      

  2.   

    set rs=rs.nextrecordset 看看呢
      

  3.   

    NextRecordset 方法范例
    该范例使用 NextRecordset 方法,查看使用了由三个独立 SELECT 语句组成的复合命令语句的记录集中的数据。Public Sub NextRecordsetX()   Dim rstCompound As ADODB.Recordset
       Dim strCnn As String
       Dim intCount As Integer   ' 打开复合记录集。
          strCnn = "Provider=sqloledb;" & _
          "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
       
       Set rstCompound = New ADODB.Recordset
       rstCompound.Open "SELECT * FROM authors; " & _
          "SELECT * FROM stores; " & _
          "SELECT * FROM jobs", strCnn, , , adCmdText   ' 显示每一个 SELECT 语句的结果。
       intCount = 1
       Do Until rstCompound Is Nothing
          Debug.Print "Contents of recordset #" & intCount
          Do While Not rstCompound.EOF
             Debug.Print , rstCompound.Fields(0), _
                rstCompound.Fields(1)
             rstCompound.MoveNext
          Loop
       
          Set rstCompound = rstCompound.NextRecordset
          intCount = intCount + 1
       Loop
       
    End Sub'摘自msdn