当从项目中删除引用时,ItemRemoved 事件发生。
? | ItemRemoved 事件可应用于 References 集合。与其他大多数的事件不同的是,ItemRemoved 事件与控件、窗体或报表无关。因此,要创建 ItemRemoved 事件过程,必须使用特殊的语法。 |
? | ItemRemoved 事件仅在事件本身发生时才能运行事件过程,它不能运行宏。 |
只有在从代码中删除引用时,该事件才会发生。执行以下操作时该事件不会发生:当“模块”窗口为活动窗口时,单击“工具”菜单中的“引用”显示“引用”对话框,在“引用”对话框中删除引用。
以下示例包含 ItemAdded 与 ItemRemoved 事件的事件过程。若要试用该示例,请新建一个类模块,方法是:单击“插入”菜单中的“类模块”,然后将下列代码粘贴到类模块中,并将类模块保存为 RefEvents:
' Declare object variable to represent References collection.
Public WithEvents evtReferences As References
' When instance of class is created, initialize evtReferences
' variable.
Private Sub Class_Initialize()
Set evtReferences = Application.References
End Sub
' When instance is removed, set evtReferences to Nothing.
Private Sub Class_Terminate()
Set evtReferences = Nothing
End Sub
' Display message when reference is added.
Private Sub evtReferences_ItemAdded(ByVal Reference As _
Access.Reference)
MsgBox "Reference to " & Reference.Name & " added."
End Sub
' Display message when reference is removed.
Private Sub evtReferences_ItemRemoved(ByVal Reference As _
Access.Reference)
MsgBox "Reference to " & Reference.Name & " removed."
End Sub
下一个 Function 过程删除指定的引用。当删除引用时,将执行 RefEvents 类中定义的 ItemRemoved 事件过程。
例如,若要删除对日历控件的引用,可以传递“MSACAL”字符串。该字符串是代表日历控件的 Reference 对象的名称。
Function RemoveReference(strRefName As String) As Boolean
Dim ref As Reference
On Error GoTo Error_RemoveReference
' Return object representing existing reference.
Set ref = objRefEvents.evtReferences(strRefName)
' Remove reference from collection.
objRefEvents.evtReferences.Remove ref
RemoveReference = True
Exit_RemoveReference:
Exit Function
Error_RemoveReference:
MsgBox Err & ": " & Err.Description
RemoveReference = False
Resume Exit_RemoveReference
End Function