我在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
答案 0 :(得分:0)
我解决了我的问题:在第二个Append.Parameters中,我忘了验证大小,在这种情况下(" 50")。
感谢帮助我。