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

Posted

技术标签:

【中文标题】具有多个参数的 Excel 到 SQL 存储过程【英文标题】:Excel-to-SQL stored procedure with multiple parameters 【发布时间】:2014-05-28 17:25:19 【问题描述】:

我有一个包含四个参数的存储过程,我正在尝试将其连接到 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】:

使用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 以获取另一个示例。

【讨论】:

以上是关于具有多个参数的 Excel 到 SQL 存储过程的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Pandas 中使用 sqlalchemy 执行具有多个日期参数的 sql 存储过程

数据库存储过程和触发器

数据库及表的创建

如何使用多个输出参数执行存储过程?

用于多个 excel 文件加载的 SQL Server 存储过程 [关闭]

Excel从存储过程SQL获取参数(而不是表)