使用VBA中的两个参数调用SQL Server过程

时间:2014-10-21 11:27:42

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

我在Excel中实现了一些VBA代码,它调用了一个需要两个参数的SQL Server存储过程:整数和日期。

问题:如果我在Excel中执行我的VBA代码,我的SQL Server程序中没有数据。

我也没有收到任何错误消息。

如果我使用

在SQL Server Management Studio中执行我的过程
EXEC [dbo.spsClient] '123456' '01.01.2014'

我从SQL Server程序中获取了一些数据。我认为在VBA中处理两个参数时遇到问题。

我实现了以下代码:

...
nr = 123456
datepoint = DateValue(ActiveWorkbook.Sheets(sheetData).Cells(4, 3))

Dim ADODBCmd As New ADODB.Command
With ADODBCmd
    .ActiveConnection = objconn
    .CommandTimeout = 500
    .CommandText = "dbo.spsClient"
    .CommandType = adCmdStoredProc
    .Parameters.Refresh
    .Parameters.Append ADODBCmd.CreateParameter("@number", adVarChar, adParamInput, 50, nr)
    .Parameters.Append ADODBCmd.CreateParameter("@date", adDate, adParamInput, datepoint)
    Set recordset = .Execute()
End With

1 个答案:

答案 0 :(得分:0)

我解决了我的问题:在第二个Append.Parameters中,我忘了验证大小,在这种情况下(" 50")。

感谢帮助我。