VBA EGe错误消息rom执行SP

时间:2013-07-01 21:56:18

标签: vba stored-procedures

我有一个执行存储过程的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

由于

标记

1 个答案:

答案 0 :(得分:0)

蒂姆·威廉姆斯的答案正是我所寻找的:

如果您正在使用ADO,您是否尝试过检查连接的错误集合:w3schools.com/ado/ado_ref_error.asp?