【发布时间】:2014-01-24 05:13:21
【问题描述】:
我正在创建一个 .xlsm 文件,其中包含一个带有三个输入参数的报告。输入参数后,最终用户运行一个宏,将参数发送到存储过程,运行存储过程,并在 Excel 中显示数据。
我的 proc 运行良好,但现在,对于三个参数中的两个(@AccountNumber 和 @ActiveAgreement),最终用户希望选择为每个参数输入多个值。这是我当前的宏代码:
Sub RefreshQuery()
With ActiveWorkbook.Connections("ImpactDetailSheet").OLEDBConnection
.CommandText = "DECLARE @PriceList NVARCHAR(10), @AccountNumber NVARCHAR(10), @ActiveAgreement NVARCHAR(10) SET @PriceList = '" & Range("J1").Value & "' SET @AccountNumber = '" & Range("J2").Value & "' SET @ActiveAgreement = '" & Range("J3").Value & "' EXEC [dbo].[Impact] @PriceList, @AccountNumber, @ActiveAgreement"
End With
ActiveWorkbook.Connections("ImpactDetailSheet").Refresh
ActiveWorkbook.Connections("ImpactActiveAgreementSheet").Refresh
ActiveWorkbook.Connections("ImpactKickoutSheet").Refresh
End Sub
我的问题是如何更改代码以包含给定参数的多个值?据我所知,如果我使用列表,我将需要更新我的存储过程以在参数周围使用括号(例如 (@AccountNumber))。
另外,是否可以有 1 个包含多个参数的单元格?例如,用逗号或类似的东西分隔,而不是使用多个单元格作为附加参数。
非常感谢。
【问题讨论】:
标签: vba excel parameters sql-server-2012 excel-2010