小弟编写了一个存储过程如下:
CREATE PROCEDURE timequery
@time1 datetime,@time2 datetime
 AS
select productname,sum(quantity) as total_quantity
from products p join [order details] od
on p.productid=od.productid
join orders o
on o.orderid=od.orderid
where orderdate>=@time1 and orderdate<=@time2
group by productname然后想用VB DATAGRID来调用,结果写到这里总是不对,请大虾指教Private Sub exit1_Click()
  End
End SubPrivate Sub timequery_Click()
  'Dim cn As New ADODB.Connection' Connection to SQL Server without using ODBC data source.
'cn.Open "Driver={SQL Server};Server=FAMILY;Uid=SA;Pwd=;Database=northwind"
  Dim cn As New ADODB.Connection
  cn.ConnectionString = "PROVIDER=SQLOLEDB" & _
  ";SERVER=" & "family" & _
  ";UID=" & "sa" & _
  ";PWD=" & "" & _
  ";DATABASE=northwind"
  cn.Open
  Dim rs As New ADODB.Recordset
  rs.ActiveConnection = cn
  Dim cmd As New ADODB.Command
  Dim parm0 As New ADODB.Parameter
  Dim parm1 As New ADODB.Parameter
  Dim sSQL As String
  
  
  Screen.MousePointer = vbHourglass
  
  
  cmd.ActiveConnection = cn
  cmd.CommandType = adCmdStoredProc
  cmd.CommandText = "timequery"
  
  parm0.Direction = adParamInput
  parm0.Type = adDate
  parm0.Size = 10
  cmd.Parameters.Append parm0
  
  parm1.Direction = adParamInput
  parm1.Type = adDate
  parm1.Size = 10
  cmd.Parameters.Append parm1
  
  parm0.Value = InputBox("time1")
  parm1.Value = InputBox("time2")
  
  Set rs = cmd.Execute
  Set DataGrid1.DataSource = rs.DataSource
  cn.Close
  
  
    
End Sub

解决方案 »

  1.   

    我只想输入参数后,运行存储过程,然后将结果显示在datagrid控件中.
      

  2.   

    可能是以下语句错误:
    Set DataGrid1.DataSource = rs.DataSource
    应为:
    Set DataGrid1.DataSource = rs
    请试我本人没有用command执行存储过程,我使用recordset“打开”存储过程,也可以,
    在cn.Open语句之后:
    dim Rs as recordset
    set rs=new recordset
    rs.open "timequery '"& 时间1 &"','" & 时间2 &"'",cn,3,2
    set DataGrid1.DataSource = rs(完)
      

  3.   


    Dim cn As New ADODB.Connection
        cn.CursorLocation = adUseClient  ‘加上这个
      cn.ConnectionString = "PROVIDER=SQLOLEDB" & _
      ";SERVER=" & "family" & _
      ";UID=" & "sa" & _
      ";PWD=" & "" & _
      ";DATABASE=northwind"
      cn.Open   Set DataGrid1.DataSource = Rs