Access VBA教程:Initialize事件

本主题的部分内容不适用于某些语言。

类模块的 Initialize事件将在创建类模块的实例时发生。若要在 Initialize事件发生时运行代码,必须将代码放在类模块的 Initialize事件过程中。

Private Sub Class_Initialize( )

说明

Initialize事件可在执行以下操作时发生:

当创建一个类的实例或初始化类实例所使用的任何数据时,均可以使用该事件过程来运行代码。

Initialize事件将在使用 New 关键字创建一个类的新实例时发生。例如,如果有一个名为 CustomObject 的类。可以将代码添加到用于新建 CustomObject 类实例的标准模块中,如下面的示例所示:


Dim obj As CustomObject
Set obj = New CustomObject

运行包含该代码的过程时,Visual Basic 会创建 CustomObject 类的一个新实例,并触发 Initialize事件。

如果使用 New 关键字声明对象变量,则当通过设置或返回一个属性或应用类模块中定义的方法来创建类的实例时,发生 Initialize事件。例如,如果在 CustomObject 类模块中定义了一个名为 ListNames 的Function 过程。若要从其他模块中运行这个函数,必须使用类模块名称完整地引用该函数,如下面的示例所示:


CustomObject.ListNames

如果对具有某类模块名称的函数限定资格,就会创建该类模块的实例,并触发 Initialize事件。

示例

下面的示例包含 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 类中定义的 ItemAdded事件过程。

例如,如果要将引用设置为日历控件,可以传递“C:\Windows\System\Mscal.ocx”字符串作为过程的参数,不过该字符串必须是日历控件在计算机上的正确位置。


' Create new instance of RefEvents class.
Dim objRefEvents As New RefEvents
' Pass file name and path of type library to this procedure.
Function AddReference(strFileName As String) As Boolean
    Dim ref As Reference
    On Error GoTo Error_AddReference
    ' Create new reference on References object variable.
    Set ref = objRefEvents.evtReferences.AddFromFile(strFileName)
    AddReference = True
Exit_AddReference:
    Exit Function
Error_AddReference:
    MsgBox Err & ": " & Err.Description
    AddReference = False
    Resume Exit_AddReference
End Function

下一个 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

上页:Access VBA教程:GotFocus事件 下页:Access VBA教程:ItemAdded事件

Access VBA教程:Initialize事件

Access VBA教程:ItemAdded事件 Access VBA教程:ItemRemoved事件
Access VBA教程:KeyDown事件 Access VBA教程:KeyPress事件
Access VBA教程:KeyUp事件 Access VBA教程:Load事件
Access VBA教程:LostFocus事件 Access VBA教程:MouseDown事件
Access VBA教程:作为位掩码的固有常量 Access VBA教程:MouseMove事件
Access VBA教程:MouseUp事件 Access VBA教程:MouseWheel事件
Access VBA教程:NoData事件 Access VBA教程:NotInList事件
Access VBA教程:OnConnect事件 Access VBA教程:OnDisconnect事件
Access VBA教程:Open事件 Access VBA教程:Page事件
Access VBA教程:PivotTableChange事件 Access VBA教程:Print事件
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号