我在SQL Server中设置了一个存储过程,它可以正常工作。现在我可以从VBA调用它,但是想要返回一个值以知道是否有任何错误等。我的SP中的最后一个参数设置为OUTPUT:
@DataSetID int = 0,
@Destination char(1)='-',
@errStatusOK bit OUTPUT
我的VBA调用存储过程的代码如下,但是在添加了新参数后它现在无法工作了,我不确定哪里出了问题,我一直收到错误信息3708 - 参数对象未正确定义。提供的信息不一致或不完整。
:
Set cnn = New adodb.Connection
cnn.ConnectionString =
"DRIVER=SQL Server;SERVER=SERVER\SERVER;DATABASE=a_db;Trusted_Connection=Yes"
cnn.Open cnn.ConnectionString
Set cmd = New adodb.Command
cmd.ActiveConnection = cnn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "stprMoveDataSet"
Set param = cmd.CreateParameter
("@DataSetID", adInteger, adParamInput, , stDataSet)
cmd.Parameters.Append param
Set param = cmd.CreateParameter
("@Destination", adChar, adParamInput, 1, stDestination)
cmd.Parameters.Append param
Set param = cmd.CreateParameter
("@errStatusOK", adBit, adParamReturnValue)
cmd.Parameters.Append param
rs.CursorType = adOpenStatic
rs.CursorLocation = adUseClient
rs.LockType = adLockOptimistic
rs.Open cmd
如何在VBA中使用OUTPUT参数并使返回值可以被VBA“读取”。
编辑 - 我已将问题更改为更专门关于返回值而不仅仅是使用OUTPUT参数。