我有一个执行存储过程的Excel宏(SQL2008 R2)。 SP有很多错误处理并且会增加很多自定义错误。有没有办法在不使用Output参数的情况下将这些返回到VBA(假设它可以工作)。所有我回来的都是错误,没有-6
这是我的代码段
' Call the SP
Dim iReturn As Integer
iReturn = 0
cmd.CommandType = adCmdStoredProc
cmd.ActiveConnection = conn
cmd.CommandText = "EPMS_CreateInvoice"
cmd.Parameters.Append cmd.CreateParameter("iReturn", adInteger, adParamReturnValue)
cmd.Parameters.Append cmd.CreateParameter("@SGInvID", adInteger, adParamInput)
cmd.Parameters.Append cmd.CreateParameter("@InvDate", adVarChar, adParamInput, 10)
cmd.Parameters.Append cmd.CreateParameter("@PostDate", adVarChar, adParamInput, 10)
cmd.Parameters.Append cmd.CreateParameter("@CSR", adVarChar, adParamInput, 50)
cmd.Parameters.Append cmd.CreateParameter("@SalesRep", adVarChar, adParamInput, 20)
cmd.Parameters.Append cmd.CreateParameter("@BillerInitials", adVarChar, adParamInput, 4)
cmd.Parameters.Append cmd.CreateParameter("@Terms", adVarChar, adParamInput, 5)
cmd.Parameters.Append cmd.CreateParameter("@InvNo", adVarChar, adParamInput, 20)
cmd.Parameters.Append cmd.CreateParameter("@CustomerID", adVarChar, adParamInput, 20)
cmd.Parameters.Append cmd.CreateParameter("@Draft", adBoolean, adParamInput)
iReturn = cmd.Parameters(iReturn)
cmd.Parameters("@SGInvID") = SGInvID
cmd.Parameters("@InvDate") = InvoiceDate
cmd.Parameters("@PostDate") = PostingDate
cmd.Parameters("@CSR") = CSR
cmd.Parameters("@SalesRep") = SalesRep
cmd.Parameters("@BillerInitials") = BillerInitials
cmd.Parameters("@Terms") = TermsCode
cmd.Parameters("@InvNo") = InvoiceNo
cmd.Parameters("@CustomerID") = CustomerID
cmd.Parameters("@Draft") = Draft
由于
标记
答案 0 :(得分:0)
蒂姆·威廉姆斯的答案正是我所寻找的:
如果您正在使用ADO,您是否尝试过检查连接的错误集合:w3schools.com/ado/ado_ref_error.asp?