小弟编写了一个存储过程如下:
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
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
解决方案 »
- 在VB中知道twip的数值如何将其转换为像素(pixel)?
- 怎么生成rpt文件
- 某个程序,只能同时开一个,如何用VB使它同时能开2个或多个?
- 如何在SQL Server或Access数据库中存入图片?并用VB调用出来显示?不胜感谢!
- jacob 获取word文件中嵌入的excel图表,并给图表设置数据源
- 如何用java读出一个文件夹(Article)下面的所有html文件?比如文件夹(Article)里面有1.html,2.html,3.html,4.html
- 请问大家如何显示窗体?
- 关于COM中释放资源的问题
- 请问Visio2000 Professional 能在Windows2000下运行么?
- 如何捕获datagrid的有效性校验错误。。。。。
- 求SQL
- 哪个控件???
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(完)
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