具有多个参数的Excel到SQL存储过程

时间:2014-05-28 17:25:19

标签: sql sql-server excel excel-vba vba

我有一个包含四个参数的存储过程,我尝试将其连接到Excel 2010工作簿,但我在传递多个参数时遇到了困难。

我按照Running a SQL Stored Procedure in Excel中列出的步骤操作,并能够将存储过程连接到Excel并传递一个参数。

但是在我开始工作后,我不得不修改我的存储过程并添加另外三个参数,现在我无法在Excel连接中找出命令文本的语法来传递多个参数。

我的存储过程名称为[VIDIR].[_cornie_Report_Shipped_Serial_Numbers],我在Excel工作簿中使用以下VBA代码,只使用一个参数成功刷新连接。

Sub RefreshQuery()
   With ActiveWorkbook.Connections("VIDIR3 Arborg_Test_App country").OLEDBConnection
       .CommandText = "[VIDIR].[_cornie_Report_Shipped_Serial_Numbers] '%" & Range("C3").Value & "%'"
   End With

   ActiveWorkbook.Connections("VIDIR3 Arborg_Test_App country").Refresh
End Sub

修改后的存储过程中的四个参数名称为:

@BillName    varchar(60)
,@ShipName   varchar(60)
,@Item       varchar(40)
,@FamilyCode varchar(40)

1 个答案:

答案 0 :(得分:0)

使用https://superuser.com/questions/294779/pass-a-cell-contents-as-a-parameter-to-an-excel-query-in-excel-2007中描述的逻辑(第一个答案的第二部分,涉及CreateParameterParameters集合。另请参阅http://www.ozgrid.com/forum/showthread.php?t=170413以获取其他示例。