BeforeInsert 事件在用户向新记录中键入第一个字符时、记录真正被创建之前发生。
注意 通过使用宏或 Visual Basic 来设置控件值时不会触发这些事件。
若要在这些事件发生时运行宏或事件过程,请将 BeforeInsert 或 AfterInsert 属性设置为宏的名称或 [事件过程]。
每当添加新记录时,都可以使用 AfterInsert 事件过程或宏对记录集进行重新查询。
BeforeInsert 和 AfterInsert 事件与 BeforeUpdate 和 AfterUpdate 事件相似。这些事件按照下列顺序发生:
BeforeInsert ==> BeforeUpdate ==> AfterUpdate ==> AfterInsert。
下表总结了这些事件的交互操作:
事件 | 发生时间 |
---|---|
BeforeInsert | 用户在新记录中键入第一个字符。 |
BeforeUpdate | 用户更新记录。 |
AfterUpdate | 记录被更新后。 |
AfterInsert | 更新的记录是一条新记录。 |
如果新记录中的第一个字符键入到文本框或组合框中,则 BeforeInsert 事件将在 Change 事件之前发生。
该示例显示了如何使用 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