BeforeInsert 事件

expandtri全部显示

当用户在新记录中键入第一个字符时,并且在实际创建该记录之前,将发生 BeforeInsert 事件。

Private Sub Form_BeforeInsert(Cancel As Integer)

Cancel    该设置确定是否发生 BeforeInsert 事件。将 Cancel 参数设为 True (–1) 将取消 BeforeInsert 事件。

 

说明

注释  通过使用或 Visual Basic 来设置控件值时不会触发这些事件。

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

每当添加新记录时,都可以使用 AfterInsert 事件过程或宏对记录集进行重新查询

BeforeInsert 和 AfterInsert 事件与 BeforeUpdateAfterUpdate 事件相似。这些事件按照下列顺序发生:

BeforeInsert → BeforeUpdate → AfterUpdate → AfterInsert.

下表总结了这些事件的交互操作:

事件

发生时间

BeforeInsert

用户在新记录中键入第一个字符。

BeforeUpdate

用户更新记录。

AfterUpdate

记录被更新后。

AfterInsert

更新的记录是一条新记录。

 

如果新记录中的第一个字符键入到文本框组合框中,则 BeforeInsert 事件将在 Change 事件之前发生。

可以使用这些宏显示消息或有用信息。例如,可以让 BeforeInsert 宏在用户输入新记录时显示用户需要的数据。

可以在 BeforeInsert 宏中使用 CancelEvent 操作来取消新建记录。在 BeforeInsert 宏中使用 CancelEvent 操作时,焦点会返回到新记录(该记录为空,用户在该记录中键入的字符已被删除)。

不能在 AfterInsert 宏中使用 CancelEvent 操作。

示例

该示例显示了如何使用 BeforeInsert 事件过程来验证用户是否新建记录,并且在添加新记录之后,使用 AfterInsert 事件过程来重新查询“雇员”窗体的记录源。

若要试用该示例,请将下列事件过程添加到基于表或查询的、名为“雇员”的窗体中。切换到窗体“数据表”视图并且试着插入一条记录。

Private Sub Form_BeforeInsert(Cancel As Integer)

    If MsgBox("Insert new record here?", _

        vbOKCancel) = vbCancel Then

        Cancel = True

    End If

End Sub

Private Sub Form_AfterInsert()

    Forms!Employees.Requery

End Sub