2014-04-18 60 views
2

我在嘗試調用SQL Server存儲過程時收到錯誤「參數類型錯誤,超出了可接受的範圍,或者與另一個存在衝突」來自Excel/VBA。從VBA執行SQL Server SP - 參數錯誤

無法弄清楚如何從VBA調用?

存儲過程的參數

CREATE PROCEDURE [dbo].[sp_Productivity_GetIndividuals] (
@startDate DATE, 
@endDate DATE) 
.... 



VBA代碼

Dim rs As New ADODB.Recordset 
Dim cmd As New ADODB.Command 

With cmd 
    .ActiveConnection = con 
    .CommandText = "sp_Productivity_GetIndividuals" 
    .CommandType = adCmdStoredProc 
    .Parameters.Append .CreateParameter("@startDate", adDate, adParamInput, , "3/1/2014") 
    .Parameters.Append .CreateParameter("@endDate", adDate, adParamInput, , "3/31/2014") 
    Set rs.ActiveConnection = .Execute 
End With 

回答

1

嘗試通過你的日期爲 「2014年3月1日」,它會工作。如果你開始使用Excel日期參數,使用FORMAT轉換爲字符串,如:

.Parameters.Append .CreateParameter("@startDate", adDate, adParamInput, , Format(now(),"yyyy-mm-dd")) 
+0

我改變了代碼以下,但我仍然得到確切的同樣的錯誤。 – user3139397

+0

對不起,最後一篇文章(我是格式化的新手)。我改變了代碼的建議,但我得到了確切的錯誤。 – user3139397

+0

如果您嘗試使用'.Parameters.Append .CreateParameter(「@ startDate」,adDate,adParamInput,「2014-03-31」),該怎麼辦? – nutsch