【问题标题】:Executing a SQL Server SP from VBA - Arguments Error从 VBA 执行 SQL Server SP - 参数错误
【发布时间】:2014-04-18 19:04:56
【问题描述】:

我在尝试从 Excel/VBA 调用 SQL Server 存储过程时收到错误消息“参数类型错误、超出可接受范围或相互冲突”。

不知道如何从 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

【问题讨论】:

    标签: sql-server vba excel vb6


    【解决方案1】:

    尝试将您的日期传递为“2014-03-01”,它会起作用。如果以excel日期参数开头,使用FORMAT转成字符串,如:

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

    【讨论】:

    • 我将代码更改为以下,但我仍然得到完全相同的错误。
    • 抱歉上次发帖(我是格式化新手)。我将代码更改为建议,但我得到了确切的错误。
    • 如果你尝试.Parameters.Append .CreateParameter("@startDate", adDate, adParamInput, , "2014-03-31")会怎样?
    猜你喜欢
    • 2014-01-20
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    • 2020-06-22
    相关资源
    最近更新 更多