VBA混淆为什么在存储过程执行时返回此值? 函数aaExecuteSP(StrSql)的长度 关于错误转到ErrGetData 将cnn设置为ADODB.Connection Dim isok 设置cnn=aaDbConnect() cnn.Execute(StrSql) aaExecuteSP=0 FinGetData: 退出功能 错误获取数据: 如果错误号为0,则 aaExecuteSP=错误编号 如果结束 恢复FinGetData 端函数

VBA混淆为什么在存储过程执行时返回此值? 函数aaExecuteSP(StrSql)的长度 关于错误转到ErrGetData 将cnn设置为ADODB.Connection Dim isok 设置cnn=aaDbConnect() cnn.Execute(StrSql) aaExecuteSP=0 FinGetData: 退出功能 错误获取数据: 如果错误号为0,则 aaExecuteSP=错误编号 如果结束 恢复FinGetData 端函数,vba,stored-procedures,Vba,Stored Procedures,如果有任何帮助,我将不胜感激。我对VBA非常陌生 感谢并将joe指出的返回值视为一个错误号,因此更新答案以反映这一点,而不仅仅是一个随机的负整数 如果该值没有被直接用于更改任何内容,那么将其转换为c#how you see fit.可能是安全的。很久没有使用VBA了,但它充满了有趣的东西 更新 用于删除的存储过程名称不同。代码中的代码与您提供的存储过程片段不同 函数aaExecuteSP中的行cnn.Execute似乎引发了一个错误-2147483630。aaExecuteSP中的错误处理程序将

如果有任何帮助,我将不胜感激。我对VBA非常陌生


感谢并将joe指出的返回值视为一个错误号,因此更新答案以反映这一点,而不仅仅是一个随机的负整数

如果该值没有被直接用于更改任何内容,那么将其转换为c#how you see fit.可能是安全的。很久没有使用VBA了,但它充满了有趣的东西

更新
用于删除的存储过程名称不同。代码中的代码与您提供的存储过程片段不同

函数
aaExecuteSP
中的行
cnn.Execute
似乎引发了一个错误-2147483630。
aaExecuteSP
中的错误处理程序将此错误代码返回给调用者,但会丢弃许多其他有用的信息,这些信息将帮助您调试此错误:

Function aaExecuteSP(StrSql) As Long
On Error GoTo ErrGetData
Dim cnn As ADODB.Connection
Dim isok
Set cnn = aaDbConnect()

cnn.Execute (StrSql)

aaExecuteSP = 0
FinGetData:
    Exit Function
ErrGetData:
   If Err.Number <> 0 Then
    aaExecuteSP = Err.Number
End If
    Resume FinGetData



End Function
我建议您逐步使用调试器,在
aaExecuteSP
中的“ErrGetData:”后面的一行中断,并检查这些属性


顺便说一句,我认为这只是一个巧合,错误代码恰好与按钮的ForeColor属性相同(即)

最奇怪的是这个删除过程没有被执行:哦,你有没有仔细检查代码,看看它是否可能失败,就像在包装存储过程calli的函数上放置断点一样,我指的是第二个过程,而不是我知道的第一个StrSql=“EXEC SpDelGenLedDetTmp”&str(Me.GLHCode)LngExec=aaExecuteSP(StrSql),代码试图执行SpDelGenLedDetTmp,但您引用的过程名为SpDelGenLedTmp,这与它无关吗?由于您从未显示
aaExecuteSP
的外观,因此无法判断其返回值为何为它。请阅读。主要是打开记录集。代码样本中的部分。-2147483630是十六进制8000012,它是系统按钮文本的代码。这对于按钮前景色是有意义的,但除非它也是一个常见的ADODB错误代码,否则我不明白为什么它会是
aaExecuteSP
的结果。可能会显示剩余的
CmdValid\u单击
?检查我的编辑是否已给出全部代码现在是否有C?有VB6吗?或者这只是一个带有标记的VBA问题?ErrGetData:如果Err.Number为0,则aaExecuteSP=Err.Number结束如果Resume FinGetDatayup u正确,则返回错误部分而不执行
    **

    /****** Object:  StoredProcedure [dbo].[SpDelGenLedTmp]    Script Date: 10/28/2012 12:27:47 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    ALTER  PROCEDURE [dbo].[SpDelGenLedTmp]
        (@GHDHeader_1   [int])
    AS DELETE [ABOUSQL].[dbo].[TblGenLedDetTmp] 
    WHERE 
        ( [GHDHeader]    = @GHDHeader_1)

**
Function aaExecuteSP(StrSql) As Long
On Error GoTo ErrGetData
Dim cnn As ADODB.Connection
Dim isok
Set cnn = aaDbConnect()

cnn.Execute (StrSql)

aaExecuteSP = 0
FinGetData:
    Exit Function
ErrGetData:
   If Err.Number <> 0 Then
    aaExecuteSP = Err.Number
End If
    Resume FinGetData



End Function
Err.Message 
cnn.Errors collection