【发布时间】:2017-04-14 22:50:41
【问题描述】:
我正在尝试使用 ADO 在 VBA 中调用带有两个参数的 SQL Server 存储过程;但是我收到错误消息“运行时错误'13'类型不匹配”。我已经花了几个小时在网上搜索,但无法让它工作...... 这是我的代码:
Dim cnn As New ADODB.Connection
Dim cmd As New ADODB.Command
cnn.ConnectionString = "Provider=SQLNCLI11;" _
& "Server=(Local);" _
& "Database=Inventory;" _
& "Integrated Security=SSPI;" _
& "DataTypeCompatibility=80;"
cnn.Open
With cmd
.ActiveConnection = cnn
.CommandType = "adCmdText"
.CommandText = "usp_mySP"
.Parameters.Append .CreateParameter("@fileName1", adChar, adParamInput, , File1.Name)
.Parameters.Append .CreateParameter("@fileName2", adChar, adParamInput, , File2.Name)
.Execute
End With
File1.Name 和 File2.Name 是我使用 FileSystemObject 获得的两个最新修改文件的名称。
usp_mySP 是我的存储过程,它本质上使用 bcp 命令导出制表符分隔的文件。它在 SQL Sever 中运行良好。
有什么建议吗?
【问题讨论】:
-
您是否尝试过从参数名称中删除
@字符?adVarChar?此外,不直接相关,但您肯定不想声明这些对象As New。 -
@Mat's 我想我知道为什么,我不应该在
adCmdText周围添加引号 -
哦,对了。这是一个枚举。
标签: vba stored-procedures ado