gpt4 book ai didi

vba - Microsoft Access VBA - 有没有办法创建处理特定错误代码的公共(public)子程序?

转载 作者:行者123 更新时间:2023-12-01 18:33:53 25 4
gpt4 key购买 nike

是否可以创建一个处理特定错误代码的公共(public)子程序?我的表单上有多个文本字段和更新按钮,它们用于用文本框中的字符串替换某些表中的文本。

但是,如果文本框中的字符串包含撇号,则会给出错误代码“3075”。我不想为每个子程序编写一个错误处理程序;如果遇到错误 3075,是否可以创建一个公共(public)子并调用它?

E.G - 这就是公共(public)子目录的样子:

Public Sub ErrHandler()
If Err.Number = 3075 Then
MsgBox("You can't use apostrophes in the text box")
End If
End Sub

然后类似这样的内容将出现在每个具有文本框的子中:

On Error Call ErrHandler

我已经尝试了上面的代码,它不起作用。只是想知道是否有人对此有任何其他想法或解决方法?

编辑:

这是更新按钮的代码。它将列表框 (TelephoneList) 中的所选项目替换为文本框中的字符串('txtTele' 和 'txtDescription;)

列表框显示“LPA 电话”表中的项目。

Private Sub UpdateTelephoneButton_Click()
If Not IsNull(txtTele) And Not IsNull(TelephoneList.Column(0)) Then
CurrentDb.Execute "UPDATE [LPA Telephone] " & _
"SET [Telephone] = '" & Me.txtTele & "'" & _
", [Description] = '" & Me.txtDescription & "'" & _
"WHERE [ID] = " & Int(TelephoneList.Column(0)) & ""

TelephoneList.Requery
End If
End Sub

最佳答案

为什么不将 Err.Number 作为参数传递给 Sub?那么它应该可以正常工作。

On Error Goto ErrorHandler
...yourCode
...yourCode


Exit Sub

ErrorHandler:
Call ErrHandler(Err.Number)
Resume Next

然后

Public Sub ErrHandler(ErrorNumber as Long)

If ErrorNumber = 3075 Then
MsgBox("You can't use apostrophes in the text box")
End If

End Sub

注意:以上代码未经测试。我只是从头开始写的,可能需要一些调整。然而,我希望基本思想是清楚的。

关于vba - Microsoft Access VBA - 有没有办法创建处理特定错误代码的公共(public)子程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36549030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com