【问题标题】:Having trouble executing a stored procedure执行存储过程时遇到问题
【发布时间】:2020-05-27 04:13:33
【问题描述】:

当以下 VBA 代码执行时,它会将以下字符串传递给 SQL,并使用世界“默认”而不是所需的整数。正如您在下面的代码中看到的那样,我什至通过声明它来确保传递的是一个整数。

当我在这里运行探查器时会遇到什么:

exec dbo.Dispensing_Days '9999',default

VBA 代码:

Sub ADO_DispensingDays()
    Dim DayValue As Integer    
    DayValue = Forms("PatientRecordTabbedF").DaysDispensed.Value    

    Call Module4.ADO      ' Opens the oConn SQL connection
    Dim cmdObjCmd As New ADODB.Command
        With cmdObjCmd
            .ActiveConnection = oConn
            .CommandType = adCmdStoredProc
            .CommandTimeout = 15
            .CommandText = "dbo.Dispensing_Days"
            .Parameters.Append .CreateParameter("@PatientID", adVarChar, adParamInput, 16, Forms("PatientRecordTabbedF").PatientID.Value)
            .Parameters.Append .CreateParameter("@Days", adInteger, , DayValue)
            .Execute
        End With
        Set cmdObjCmd = Nothing
    Call Module4.ADO_Close    ' Closes the oConn SQL connection
End Sub

【问题讨论】:

    标签: sql vba ms-access stored-procedures


    【解决方案1】:

    在这行代码中……

    .Parameters.Append .CreateParameter("@Days", adInteger, , DayValue)

    我错过了 adParamInput 值。代码应该是这样的......

    .Parameters.Append .CreateParameter("@Days", adInteger, adParamInput, , DayValue)

    我花了好几个小时试图弄清楚这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-03
      • 2011-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多