从VBA执行SQL Server SP – 参数错误

在从Excel / VBA调用SQL Server存储过程时,出现错误“参数types错误,超出可接受范围,或者彼此冲突”。

无法弄清楚如何从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 

尝试传递你的date为“2014-03-01”,它会工作。 如果您从Exceldate参数开始,请使用FORMAT将其转换为string,如下所示:

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