没有设置标签,VBA错误处理程序是否可以在With语句的开头恢复?
例如:
Dim rst As DAO.Recordset
Set rst = Nothing
On Error GoTo ErrHand
With rst
.AddNew
!MyValue = 1
.Update
.Bookmark = .LastModified
End With
ErrHand:
If Err.Number <> 0 Then
Call SetRST 'Assume this procedure opens the recordset appropriately
Resume
End If
End Sub()
代码将在“.AddNew”行上引发错误,然后当它通过错误处理程序时,会设置记录集,但是它将在“.AddNew”行上恢复。问题是它仍然在CommentRST为Nothing的“With”语句中。是否有一种方法可以告诉错误处理程序在“With RST”行而不是“.AddNew”行处恢复,而无需在“With”语句之前创建标签或首先检查空记录集?
我知道有办法解决这个问题(因为我刚刚提出了2个),但是我很好奇是否可能实现。
.AddNew
时你的顶层rst
可能没有打开吗? - BradWith
块的开头恢复(而不是在其他某个点)? - David Zemens