Excel中SQL存储过程的Visual Basic Bug



我需要创建一个excel宏,人们可以在SQL服务器的存储过程中放入他们的参数。有一个错误的地方在第13行,但我不确定它是什么,因为我是非常新的Visual Basic。

任何帮助都将是非常感激的。

Private Sub CommandButton1_Click()
Dim TransTime As Date  'Declare the SellStartDate as Date
Dim StoreNumber As Integer    'Declare the SellEndDate as Date
Dim Product As Integer    'Declare the SellEndDate as Date
TransTime = Sheets("Sheet1").Range("B4").Value   'Pass value from cell B3 to SellStartDate variable
StoreNumber = Sheets("Sheet1").Range("B5").Value     'Pass value from cell B4 to SellEndDate variable
Product = Sheets("Sheet1").Range("B6").Value     'Pass value from cell B4 to SellEndDate variable
'Pass the Parameters values to the Stored Procedure used in the Data Connection
With ActiveWorkbook.Connections("nitro_price_check").ODBCConnection
CommandText = "EXEC maverik.nitro_price_check '" & TransTime & "','" & StoreNumber & "'" & Product & "'"
ActiveWorkbook.Connections("nitro_price_check").Refresh

End With
End Sub

如前所述,考虑Excel工作簿连接支持的参数化,但初始设置需要通过Excel的用户界面。在Microsoft query中创建参数查询,请参见MSDN文档。

在设置过程中,请确保在SQL命令(即命令文本)中包含qmarks:

EXEC maverik.nitro_price_check ?, ?, ?

这将在连接属性的定义选项卡下启用Parameters...按钮,在那里您可以通过相应的位置为每个qmark占位符分配Excel单元格值:

  • 参数…
    • 参数1=Sheet1!B4
    • 参数2=Sheet1!B5
    • 参数3=Sheet1!B6

那么你的VBA只是一个简单的刷新行,没有杂乱的连接或引用SQL:

Private Sub CommandButton1_Click()
ActiveWorkbook.Connections("nitro_price_check").Refresh
End Sub

相关内容

  • 没有找到相关文章

最新更新