首页 百科知识 触发事件运行宏

触发事件运行宏

时间:2022-10-24 百科知识 版权反馈
【摘要】:例如,将窗体中命令按钮的“单击”事件绑定到某个宏,则单击该按钮时执行绑定的宏命令。事件的发生通常是用户操作的结果。宏组是指一个宏文件中包含一个或多个宏,这些宏称为子宏。对于宏组来说,如果直接双击运行的话,仅仅执行第一个子宏。如果需要运行宏组中的任何一个子宏,需要使用“宏组名.宏名”的方式来指定具体要运行的宏。执行宏命令“OpenTable”,将表名称参数设为表“学生”。

第8章 宏

8.1 宏的概述

宏是由一个或者多个操作组成的集合,每个操作可以实现特定的功能。

宏可以由一个或者多个宏命令组成,如果由多个宏命令组成,操作动作的执行是按照其排列顺序先后执行的。可以将宏看做是一种工具,能够在不编写代码的情况下执行某些任务。例如,将窗体中命令按钮的“单击”事件绑定到某个宏,则单击该按钮时执行绑定的宏命令。

使用宏可以提供数据库的使用效率,它可以将表、查询、窗体和报表等其他数据库对象组织起来,使之相互驱动和调用,并能够协调统一管理,使数据库系统的功能更加强大。

宏比模块更容易掌握,用户不必懂编程,只要了解了宏命令就可以完成特定的任务。

8.1.1 宏的分类

Access 2010提供了80多个宏操作命令。根据宏的用途可以将它们分成以下8类:

(1)窗口管理命令。

(2)宏命令。

(3)筛选/查询/搜索命令。

(4)数据导入导出命令。

(5)数据库对象命令。

(6)数据输入命令。

(7)系统命令。

(8)用户操作命令。

8.1.2 常用的宏命令

表8-1列出了比较常用的宏命令。

表8-1 常用的宏命令

续表

8.1.3 事件

事件是一种对象可以辨认的动作,比如单击鼠标,按下某个键等。

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

事件过程是由宏或程序代码构成的用于处理引发的事件或由系统触发的事件运行过程。

Access中的事件可以分为窗口事件、数据事件、焦点事件、键盘事件、鼠标事件、打印事件等。

Access可以通过窗体控件和报表的特定属性识别某一个事件,当用户执行Access能识别的事件时,都能够导致Access执行一个宏,这就是所谓的事件触发操作。

8.2 宏的创建

8.2.1 宏设计窗口

在Access中,宏设计窗口是创建宏的唯一环境(见图8-1),该界面也称为宏生成器窗口。

图8-1 宏生成器窗口

首次打开宏生成器时,会显示“添加新操作”窗口和“操作目录”面板。单击“添加新操作”右面的下拉箭头,可以选择宏命令。在“操作目录”面板中,“程序流程”项用于组织宏或者改变宏操作的执行顺序;“操作”项将宏操作按照类别进行分组。当选中一个选项时,操作目录面板的底部会出现简单的解释。

8.2.2 宏的建立与保存

在宏设计窗口,可以方便地编辑一条或者多条宏命令。

【例8-1】使用宏设计窗口创建一个宏,用于打开数据库中的“教师基本信息”窗体,并命名为“打开教师基本信息窗体”。

操作步骤如下:

(1)打开“教学管理”数据库,选择“创建”选项卡中的“宏与代码”组,单击“宏”按钮,打开“宏设计”窗口。

(2)系统自动创建默认名为“宏1”的宏对象,在“添加新操作”组合框中执行OpenForm命令。

(3)系统根据选择的宏命令,自动弹出填写参数的界面,将“窗体名称”参数选定为“教师基本信息”,如图8-2所示。

图8-2 选择窗体参数

(4)将宏保存为“打开教师基本信息窗体”。

【例8-2】使用宏设计窗口创建一个宏,用于打开数据库中的“教师”窗体和“教师信息报表”,并弹出消息“窗体和报表已经打开!”,将该宏命名为“打开多个对象”。

操作步骤如下:

(1)打开“教学管理”数据库,选择“创建”选项卡中的“宏与代码”组,单击“宏”按钮,打开“宏设计”窗口。

(2)系统自动创建默认名为“宏1”的宏对象,在“添加新操作”组合框中执行OpenForm命令,将“窗体名称”参数选定为“教师”。

(3)继续在“添加新操作”组合框中执行OpenReport命令,将“报表名称”参数选定为“教师信息报表”。

(4)继续在“添加新操作”组合框中执行MessageBox命令,将“消息”参数填写为“窗体和报表已经打开!”。

(5)将宏保存为“打开多个对象”,如图8-3所示。

图8-3 打开多个对象宏

8.2.3 宏组的建立

宏组是指一个宏文件中包含一个或多个宏,这些宏称为子宏。在宏组中,每个子宏都是独立的,互不相关。在宏组中,每个子宏都必须定义一个唯一的名称,以方便调用。

创建宏组与创建宏的方法类似,需要打开宏设计窗口,不同的是在创建过程中为每个子宏命名。宏组中宏的调用格式为:宏组名.宏名。

【例8-3】在“教学管理”数据库中,创建一个宏组,其中包括3个宏操作,分别是打开教师表、打开查询“计算教师年龄”、打开窗体“教师基本信息”。

操作步骤如下:

(1)打开“教学管理”数据库,选择“创建”选项卡中的“宏与代码”组,单击“宏”按钮,打开“宏设计”窗口。

(2)在“操作目录”窗格中单击程序流程中的子宏命令“SubMacro”,在子宏名称文本框中,将默认名称“Sub1”,改为“打开教师表”,在“添加新操作”组合框中执行命令“OpenTable”,设置表名称为“教师”。

(3)用同样方法添加子宏“计算教师年龄”和“打开教师基本信息”,宏命令为OpenQuery 和OpenForm,将该宏组保存为“宏组_打开不同对象”,结果如图8-4所示。

图8-4 打开不同对象宏组设计界面

8.2.4 嵌入宏

创建在对象事件中的宏称为嵌入宏,这类宏不显示在导航窗格中,它们通过对象事件(比如单击事件)来调用。

【例8-4】在“教学管理”数据库中,创建一个窗体,通过窗体上按钮使用嵌入宏打开“人事档案”窗体。

操作步骤如下:

(1)打开“教学管理”数据库,选择“创建”选项卡中的“窗体”组,单击“窗体设计”按钮,打开窗体设计窗口。

(2)添加一个命令按钮,将其标题修改为“打开人事档案窗体”,如图8-5所示。

图8-5 命令按钮属性窗口

(3)打开该按钮的属性表,选择“事件”选项卡,在事件右侧单击“生成器”按钮,选择“宏生成器”选项,如图8-6所示。

图8-6 选择宏生成器

(4)单击“确定”按钮,进入宏设计窗口,选择OpenForm操作,并选择人事档案窗体作为窗体名称参数。

(5)保存宏,并保存窗体为“嵌入宏窗体样例”。

8.3 宏的运行

运行宏有多种方式,可以直接运行,也可以间接调用。对于宏组来说,如果直接双击运行的话,仅仅执行第一个子宏。如果需要运行宏组中的任何一个子宏,需要使用“宏组名.宏名”的方式来指定具体要运行的宏。

8.3.1 直接运行宏

宏可以直接运行,有以下几种方式:

(1)在导航窗格的宏对象中双击想要运行的宏。

(2)在宏设计窗口中单击工具组中的运行按钮。

(3)在“数据库工具”选项卡中执行“运行宏”命令,选择想要运行的宏。

8.3.2 从宏命令中调用宏

利用宏命令可以调用已经建立的宏。

【例8-5】在“教学管理”数据库中,创建一个宏,使用它调用已经建立好的宏“打开多个对象”。

操作步骤如下:

(1)打开“教学管理”数据库,选择“创建”选项卡中的“宏与代码”组,单击“宏”按钮,打开“宏设计”窗口。

(2)在“操作目录”窗格中执行程序流程中的子宏命令“RunMacro”,在宏名称文本框中选择宏“打开多个对象”,如图8-7所示。

图8-7 调用其他宏

(3)将宏保存为“调用其他对象”,运行该宏,查看运行效果。

8.3.3 触发事件运行宏

可以将宏赋予某个对象控件的事件属性值,通过触发事件运行宏。

【例8-6】在“教学管理”数据库中,创建一个宏“版权所有”,并创建一个版权窗体来调用它。

操作步骤如下:

(1)打开“教学管理”数据库,选择“创建”选项卡中的“宏与代码”组,单击“宏”按钮,打开“宏设计”窗口。

(2)在“添加新操作”文本框中,执行宏命令“MessageBox”,在消息文本框中输入“版权所有,盗版必究!”,如图8-8所示。

图8-8 版权所有宏设计界面

(3)将宏保存为“版权所有”。

(4)新建一个窗体,并添加一个命令按钮控件。将命令按钮控件的标题属性修改为“版权声明”,并在其属性表中事件选项卡的单击事件中选择宏“版权所有”,如图8-9所示。

图8-9 设置命令按钮的单击事件

(5)将窗体保存为“版权窗体”。

(6)运行版权窗体,单击“版权声明”按钮可以查看宏运行的结果。

8.4 宏的应用

宏的应用范围很广,下面我们以常用的制作窗体菜单和验证密码为例来说明宏在Access中的应用。

8.4.1 制作窗体菜单

【例8-7】在“教学管理”数据库中,创建一个宏“版权所有”,并创建一个版权窗体来调用它。

操作步骤如下:

(1)打开“教学管理”数据库,选择“创建”选项卡中的“宏与代码”组,单击“宏”按钮,打开“宏设计”窗口。

(2)在“操作目录”窗格中,执行程序流程中的子宏命令“Submacro”,在子宏文本框中输入“打开学生表”。执行宏命令“OpenTable”,将表名称参数设为表“学生”。

(3)在子宏“打开学生表”下面通过执行子宏命令“Submacro”增加另外一个子宏“打开学生窗体”,执行宏命令“OpenForm”,将窗体名称参数设为窗体“学生基本信息”。

(4)在子宏“打开学生窗体”下面通过执行子宏命令“Submacro”增加另外一个子宏“打开学生报表”,执行宏命令“OpenReport”,将报表名称参数设为报表“学生信息报表”。

(5)将该宏组保存为“菜单1(学生信息)”,如图8-10所示。

(6)新建一个宏组,里面包含子宏“教师授课信息”和“教师信息报表”,执行OpenQuery 和OpenReport宏命令,分别打开“教师授课信息查询”和“教师信息报表”,如图8-11所示。

将该宏组保存为“菜单2(教师信息)”

图8-10 宏“菜单1(学生信息)”设计界面

图8-11 宏“菜单2(教师信息)”设计界面

(7)新建一个宏组,里面包含子宏“教师人事档案”和“学生成绩统计”,执行OpenForm 和OpenReport宏命令,分别打开窗体“人事档案信息”和报表“学生选课成绩分组统计”,如图8-12所示。将该宏组保存为“菜单3(其他)”

图8-12 宏“菜单3(其他)”设计界面

(8)新建一个宏,在“添加新操作”文本框中执行宏命令AddMenu,菜单名称为“学生信息”,菜单宏名称为“菜单1(学生信息)”;同样,执行宏命令AddMenu,添加菜单“教师信息”和“其他”,菜单宏名称分别为“菜单2(教师信息)”和“菜单3(其他)”。将该宏保存为“宏菜单”,如图8-13所示。

图8-13 宏“宏菜单”设计界面

(9)新建一个窗体,在其属性表中将“菜单栏”属性修改为“宏菜单”,将该窗体保存为“菜单界面”。

(10)运行窗体“菜单界面”,在“加载项”选项卡中可以看到制作的菜单。

8.4.2 验证密码

【例8-8】在“教学管理”数据库中,创建一个宏“验证密码”,用在打开菜单界面窗体之前对密码进行验证。

操作步骤如下:

(1)打开“教学管理”数据库,选择“创建”选项卡中的“窗体”组,单击“窗体设计”按钮,打开窗体设计窗口。

(2)在新建窗体中,创建一个文本框(默认名为Text0)。将文本框自动关联的标签控件标题修改为:“请输入密码:”。

(3)在新建窗体中创建一个命令按钮(默认名为Command2)。

(4)将窗体保存为“登录”,如图8-14所示。

图8-14 “登录”窗体设计界面

(5)选择“创建”选项卡中的“宏与代码”组,单击“宏”按钮,打开“宏设计”窗口。

(6)在“操作目录”窗格中执行程序流程中的子宏命令“If”,在条件表达式文本框中输入“[Forms]![登录]![Text0]="abc"”。执行宏命令“OpenForm”,将窗体名称参数设为表“菜单界面”,并添加Else语句,执行宏命令“MessageBox”,将消息参数设为“密码登陆错误!”,如图8-15所示。

(7)将“登陆”窗体中命令按钮控件Command2的单击事件设定为运行宏“验证密码”。

此时,运行“登陆”窗体输入abc即可打开“菜单界面”窗体。

若将文本框的输入掩码属性设为“密码”,则在文本框中输入密码的时候仅仅显示符号“*”来代替相应的字符。

图8-15 宏“验证密码”设计界面

思考题

(1)什么是宏?宏有哪些用途?

(2)什么是宏组?

(3)宏与宏组有什么区别?

(4)独立的宏与嵌入的宏有什么区别?

(5)运行宏有哪些方法?

上机题

(1)创建一个宏,要求在打开数据库时弹出消息框,提示:“欢迎进入Access世界!”。(提示:将该宏命名为AutoExec)

(2)设计一个窗体,添加两个命令按钮控件,分别使用独立宏和嵌入宏使得单击命令按钮时,打开学生表。

(3)创建两个窗体“系统登录”和“系统主界面”,如果从“系统登录”窗体输入正确的密码,则打开“系统主界面”窗体,否则弹出对话框提示:“密码输入错误!”。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈