【发布时间】: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