【发布时间】:2018-08-25 06:24:43
【问题描述】:
请建议如何将表值参数从 excel vba 传递到 sql server 过程中。
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim cmd As New ADODB.Command
Dim constring As String
conn.ConnectionString="My Connection String"
conn.Open
With cmd
.ActiveConnection = conn
.CommandType = adCmdText
.CommandText = "declare @tbl tbl insert into @tblvalues('fdsdf',15)"
.Execute
End With
我的表类型如下:
CREATE TYPE [tbl] AS TABLE
(
myNO VARCHAR(10),
myVALUE FLOAT
)
我的程序如下:
create procedure mydata
(
@tbl tbl readonly
)
as
select * into #tbl from @tbl
select * from #tbl
end
现在我想通过输入这个@tbl 来执行这个过程
With cmd
.ActiveConnection = conn
.CommandType = adCmdStoredProc
**param = .CreateParameter("@po", adUserDefined, adParamInput)
.Parameters("@po").Value = param**
.CommandText = "mydata"
Set rs = .Execute
End With
请建议我在 .Parameters("@po").Value = 处出错
谢谢
【问题讨论】:
-
请附上错误信息。
-
不正确的参数是错误请建议任何代码更正
-
这些都没有解决如何在 VBA 中执行表值参数。在 .NET 中,您将传递一个 DataTable,但该对象在 VBA 中不存在。我也还没决定怎么做。
标签: sql-server excel vba