是否可以创建处理特定错误代码的公共子?我的表单上有多个文本字段和更新按钮,用于将某些表中的文本替换为文本框中的字符串。
但是,如果文本框中的字符串包含撇号,则会给出错误代码“3075”。我不想为每个sub写一个错误处理程序;是否可以创建一个公共子并在遇到错误3075时调用它?
E.G--这是public sub的样子:
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
我已经尝试了上面的代码,它不起作用。只是想知道是否有人对此有任何其他想法或解决方法?
修改
以下是更新按钮的代码。它用列表框('txtTele'和'txtDescription;)中的字符串替换列表框(TelephoneList)中的选定项目
列表框显示“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
答案 0 :(得分:0)
另一种标准方法是继承 错误对象,如下所示:
(在全球模块中)
Public Err As ErrObject
(启动时)
Set Err = New ErrObject
我在网上找到的一个例子是书Advanced Microsoft Visual Basic中给出的。我不会重复全文:类ErrObject像这样开始:
Private e() As ErrObjectState
Private Type ErrObjectState
Description As String
HelpContext As Long
HelpFile As String
Number As Long
End Type
Public Property Get Description() As String
Description = VBA.Err.Description
End Property