我正在創建一個.xlsm文件,其中包含具有三個輸入參數的報告。輸入參數後,最終用戶運行一個宏,該宏將參數發送到存儲過程,運行存儲過程並將數據顯示回Excel。將參數列表從Excel 2010傳遞到MS SQL 2012
我有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個單元格包含多個參數?例如,用逗號或類似的東西分隔,而使用多個單元格作爲附加參數。
非常感謝提前。
此消息使我在正確的道路上。我創建了一個函數來分割字符串,並將結果修剪成一個新的表格,這個表格用於存儲過程。非常感謝您幫助我認真思考! –