VBA:使用两个参数调用SQL Server存储过程

Kip*_*k08 2 sql excel vba arguments

就像标题中提到的那样,我只想从VBA调用SQL Server存储过程.

我可以像这样调用我的存储过程:

  EXEC  dbo.spClientXLS @Nr =  ' 131783', @date = '21.09.2014'
Run Code Online (Sandbox Code Playgroud)

NrvarChar(50)类型值,date是类型date

现在,如果我想从VBA调用它,我会收到一条错误消息.我在VBA中的代码是:

...'SQL Server stored procedure which is to execute with parameters
Dim ADODBCmd As New ADODB.Command
With ADODBCmd
    .ActiveConnection = objconn
    .CommandTimeout = 500
    .CommandText = "dbo.spClient"
    .CommandType = adCmdStoredProc
End With
Set recordset = ADODBCmd.Execute(, date, Nr)
Run Code Online (Sandbox Code Playgroud)

Date是类型Date,Nr类型String.

我很高兴,如果有人能解释我,我怎么能用两个论点来处理它.

问候

小智 5

试试这个.

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

With cmd
    .ActiveConnection = objcnn
    .CommandText = "spClient"
    .CommandType = adCmdStoredProc
    .Parameters.Refresh
    If .Parameters.Count = 0 Then
        .Parameters.Append cmd.CreateParameter("@Nr", adVarChar, adParamInput, 50)
        .Parameters.Append cmd.CreateParameter("@date", adDate, adParamInput)
    End If
    .Parameters.Item("@Nr").Value = "131783"
    .Parameters.Item("@date").Value = "09/21/2014"
    Set rs = .Execute()

End With
Run Code Online (Sandbox Code Playgroud)