Access VBA教程:Exit事件

Exit事件正好在焦点从一个控件转移到同一窗体上另一个控件之前发生。

说明

该事件仅适用于窗体上的控件,不适用于报表上的控件。该事件不适用于选项组中的复选框、选项按钮或切换按钮,仅适用于选项组本身。

若要在该事件发生时运行宏或事件过程,请将OnExit属性设置为宏的名称或 [事件过程]。

因为 Enter事件发生在焦点移动到一个指定控件之前,所以可以使用 Enter 宏或事件过程来显示说明。例如,可以使用宏或事件过程来显示一个较小的窗体或消息框,以指出控件通常包含的数据类型,或给出如何使用控件的帮助。

Exit事件发生在LostFocus事件之前。

与 LostFocus事件不同,Exit事件在窗体失去焦点时并不发生。例如,如果在窗体上选中复选框,然后单击报表。在选中复选框时,Enter 和 GotFocus事件将发生;而在单击报表时,只有 LostFocus事件发生,Exit事件并没发生(因为焦点正移动到不同的窗口)。如果再次选中窗体上的复选框,以将复选框成为前台对象,GotFocus事件发生,但是 Enter事件并不发生(因为在窗体第一次激活时,控件已获得焦点)。Exit事件只有在单击窗体上的另一个控件时才发生。

如果将焦点移动到窗体上的另一控件上,而且该控件在窗体上没有焦点,则窗体原来拥有焦点的控件的 Exit 和 LostFocus事件将发生在焦点移到的控件的 Enter 和 GotFocus事件发生之前。

如果使用鼠标将焦点从主窗体上的控件移动到该窗体的子窗体中的控件(子窗体上没有获得焦点的控件),则将发生下列事件:

Exit(主窗体上的控件)  ==>

LostFocus(主窗体上的控件)  ==>

Enter(子窗体控件)  ==>

Exit(子窗体上具有焦点的控件)  ==>

LostFocus(子窗体上具有焦点的控件)  ==>

Enter(子窗体上焦点将移到的控件)  ==>

GotFocus(子窗体上焦点将移到的控件)

如果子窗体上焦点将移到的控件以前有焦点,则该控件的 Enter事件和 GotFocus事件均不发生,但是子窗体控件的 Enter事件将发生。如果将焦点从子窗体上的控件移动到主窗体上的控件,子窗体上这个控件的 Exit事件和 LostFocus事件不发生,只有子窗体控件的 Exit事件以及主窗体上控件的 Enter事件和 GotFocus事件发生。

注意   一般使用鼠标或按键(例如 Tab)将焦点移到另一控件上。这样的操作不但会使本主题讨论的事件发生,还将发生鼠标或键盘事件。

VBA示例

在下面的示例中,“姓氏”文本框中包含两个事件过程。Enter事件过程显示一条消息,告诉用户在文本框中能输入何种类型的数据;Exit事件过程则显示一个对话框,询问用户是否应该在焦点移动到另一控件之前保存更改。如果用户单击“取消”按钮,Cancel参数将设置为 True,则焦点仍将移到文本框而不保存更改。如果用户选择“确定”按钮,则更改被保存,然后焦点移动到另一控件上。

若要试用该示例,请将下列事件过程添加到包含名为“姓氏”文本框的窗体上。


Private Sub LastName_Enter()
    MsgBox "Enter your last name."
End Sub
Private Sub LastName_Exit(Cancel As Integer)
    Dim strMsg As String
    strMsg = "You entered '" & Me!LastName _
     & "' as your last name." & _
        vbCrLf & "Is this correct?"
    If MsgBox(strMsg, vbYesNo) = vbNo Then
        Cancel = True            ' Cancel exit.
    Else
        Exit Sub                    ' Save changes and exit.
    End If
End Sub

上页:Access VBA教程:Error事件 下页:Access VBA教程:Filter事件

Access VBA教程:Exit事件

Access VBA教程:Filter事件 Access VBA教程:FirstPage、LastPage、NextPage、PrevPage事件(快照查看器)
Access VBA教程:Format事件 Access VBA教程:GotFocus事件
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事件
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号