Access 2003完整教程:关于事件和事件过程

Microsoft Visual Basic 代码是编写在称为过程的单元中的。过程包含一系列的 Visual Basic 语句,用以执行操作或计算值。事件过程是为响应由用户或程序代码引发的事件或由系统触发的事件而运行的过程。

事件的定义

事件是一种特定的操作,在某个对象上发生或对某个对象发生。Microsoft Access 可以响应多种类型的事件:鼠标单击、数据更改、窗体打开或关闭及许多其他类型的事件。事件的发生通常是用户操作的结果。

通过使用事件过程,可以为在窗体、报表或控件上发生的事件添加自定义的事件响应。

过程的定义

过程是由Microsoft Visual Basic代码组成的单元。它包含一系列执行操作或计算值的语句和方法。例如,下列事件过程使用OpenForm方法打开“订单”窗体:

Private Sub OpenOrders_Click()

DoCmd.OpenForm "Orders"
End Sub

过程分两种类型:Sub过程和Function过程。

Sub 过程

Sub过程执行一项操作或一系列操作,但是不返回值。可以自行创建Sub过程,也可以使用 Microsoft Access 所创建的事件过程模板。

数据库中每个窗体和报表都有内置的窗体模块或报表模块,这些模块包含事件过程模板。可以向其中添加代码,使得当窗体、报表或其上的控件中发生相应的事件时,运行这些代码。当 Microsoft Access 识别出事件在窗体、报表或控件中已经发生时,将自动地运行为对象和事件命名的事件过程。例如,可以编写一个事件过程,当用户选中“已婚”复选框时,将焦点移到“配偶姓名”文本框。

许多向导(如“命令按钮向导”)在创建对象的同时也创建对象的事件过程。可以查看这些事件过程,以及这些过程如何工作的示例。

Function 过程

Function过程(通常只称为函数)将返回一个值,例如计算结果。Microsoft Visual Basic 包含许多内置函数,例如,Now函数可返回当前的日期与时间。除了这些内置函数外,也可以自行创建自定义函数。

因为函数有返回值,所以可以在表达式中使用。可以在 Microsoft Access 很多地方的表达式中使用函数,例如在 Visual Basic 语句或方法中、在许多属性设置中或在筛选或查询的条件表达式中。

以下是Function过程的一个示例,FirstOfNextMonth 函数返回下个月第一天的日期:

Function FirstOfNextMonth()
 FirstOfNextMonth = _
 DateSerial(Year(Now), Month(Now) + 1, 1)
End Function

这个自定义函数包含一个赋值语句,将表达式的结果(位于等号右侧)赋予函数名 FirstOfNextMonth(位于等号左侧)。该函数使用了内置的 Visual Basic 函数DateSerialYearNowMonth来计算结果。

创建函数以后,就可以在 Microsoft Access 的几乎任何地方的表达式中使用该函数。例如,通过在属性表中将文本框控件的“默认值”属性设置为以下表达式,可以指定文本框将下个月的第一天显示为其默认值:

=FirstOfNextMonth()

注释若要将某个函数用作属性设置,该函数必须位于窗体或报表模块中,或位于标准模块中。不能将与窗体或报表无关联的类模块中的函数用作窗体或报表的属性设置。

有关使用事件过程响应事件的示例

在为对象创建事件过程时,Microsoft Access 会为窗体模块或报表模块添加以事件名称和对象名称命名的事件过程模板,然后便可以在该事件过程中输入当该窗体事件或报表事件发生时需要进行的响应方式的代码。

假订希望单击“订单”窗体中的“产品明细”命令按钮时会打开“产品明细”窗体。以下示例将显示如何使用事件过程实现这一目的。

创建命令按钮事件

标注 1若要使事件过程在用户单击命令按钮时运行,请单击命令的“单击”属性...

标注 2...单击“生成”按钮,然后单击“代码生成器”,就可以将 Visual Basic 代码添加到事件过程中。

在事件过程中使用方法以执行操作

标注 1ProductDetails_Click 事件过程使用OpenForm方法打开“产品明细”窗体。

上页:Access 2003完整教程:关于创建具有选项卡或分页符的窗体 下页:Access 2003完整教程:关于使用程序方法验证数据

Access 2003完整教程:关于事件和事件过程

Access 2003完整教程:关于使用程序方法验证数据Access 2003完整教程:数据定义查询的示例 (MDB)
Access 2003完整教程:关于对记录进行分组Access 2003完整教程:计算运行总和的报表示例
Access 2003完整教程:页码表达式的示例Access 2003完整教程:宏条件的示例
Access 2003完整教程:每组都另起新行或新列的报表示例Access 2003完整教程:关于使用模板创建窗体或报表
Access 2003完整教程:联合查询示例 (MDB)Access 2003完整教程:打印窗体和报表时缩放文本框的示例
Access 2003完整教程:关于窗体Access 2003完整教程:沙盒模式中禁用的函数
Access 2003完整教程:关于宏和宏组Access 2003完整教程:关于分发安全性增强的应用程序 (MDB)
Access 2003完整教程:关于模块Access 2003完整教程:打开示例数据库或项目
Access 2003完整教程:改进 Visual Basic 代码的性能Access 2003完整教程:控件和字段的验证顺序
Access 2003完整教程:关于从窗体中打印报表Access 2003完整教程:关于使用“名称自动更正”来改正重命名导致的错误 (MDB)
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号