Download presentation
Presentation is loading. Please wait.
1
第7章 宏
2
7.1 宏的概述 宏是由一个或多个操作组成的集合,每个操作都有其特定的功 能。创建这些操作可以帮助我们自动完成一些常规的任务,例 如,排序、查询和打印等操作。在Access中,可以通过创建宏来 自动执行一系列重复的或者十分复杂的任务。宏操作命令还可以 组成宏组。 宏是一种简化操作的工具,使用宏时不需要编程,只需要在 宏设计窗口中将所执行的操作、参数和运行的条件输入即可。 对于简单的细节工作,譬如打开和关闭窗体、运行报表等,一般 使用宏来完成。当要进行数据库的复杂操作和维护、自定义过程 的创建和使用以及错误处理时,应该使用VBA。 Access2010 数据库应用教程
3
7.1.1 宏设计窗口 打开数据库文件,单击功能区“创建”选项卡下“宏与代码”选项 组中“宏”按钮 ,打开宏设计窗口,宏设计窗口主要由宏设计工具 选项卡、宏设计窗口和操作目录三部分组成。 1. “宏工具/设计”选项卡 宏设计工具选项卡包含三组命令,“工具”组中的命令用于宏 的运行或调试;“折叠/展开”组中的命令用于宏操作参数列表的折 叠或展开;“显示/隐藏”组中的命令用于打开或关闭操作目录窗 口。 Access2010 数据库应用教程
4
2. 宏设计窗口 宏设计窗口是宏设计的主要工作区域,在“添加新操作”输入框 中可以输入操作命令,并设置相应参数。 操作命令 移动操作命令
折叠/展开操作参数 删除操作命令 从列表中选择参数 操作参数 输入参数 添加新的操作命令 折叠后的参数列表 Access2010 数据库应用教程
5
3.操作目录窗格 操作目录窗格位于窗口的最右侧,其中列出了宏设计的所有 操作命令,可以直接从操作目录中选择所需的操作命令。单击某 个操作命令,在窗口底部会显示该操作命令的功能描述。
查找操作目录中的命令 流程控制命令 宏操作命令 数据库中含有宏的对象列表 Access2010 数据库应用教程
6
例7-1 创建一个宏“Macro1”,包含2个操作:首先打开“教师信 息”窗体,同时使计算机发出“嘟”声,显示表中所有记录。 操作步骤: (1)打开“学生管理系统”数据库,单击功能区“创建”选项卡下 的“宏与代码”组的“宏”按钮 ,打开宏的设计视图。 (2)选中“添加新操作”文本框,单击右侧向下箭头打开操作列 表,在列表中选择OpenForm操作命令。 Access2010 数据库应用教程
7
(3)设置操作Beep。 (4)单击“保存”按钮,将宏保存为“Macro1”。 (5)单击“工具”组的“运行”按钮 ,首先打开“教师信息”窗体, 同时发出“嘟”声。
Access2010 数据库应用教程
8
7.1.2 宏的分类 1.简单宏 2.条件宏 Access中的宏可以分为4类:简单宏、条件宏、嵌入宏和宏 组。
宏的分类 Access中的宏可以分为4类:简单宏、条件宏、嵌入宏和宏 组。 1.简单宏 简单宏也称操作序列宏,由一条或多条简单操作组成,运 行该宏时,Access会按照操作的顺序一条一条地执行,直至操 作完成为止。 2.条件宏 通过条件的设置来控制宏的执行,宏在执行时要对条件 表达式进行测试,如果表达式的结果为“真”,则执行对应的操 作;否则,跳过对应的操作。 Access2010 数据库应用教程
9
3. 宏组 4. 嵌入宏 一个宏组由若干个宏组成,即宏组是包含多个宏的集合,这 些宏称为子宏。宏组中的每个宏可以单独运行,互相没有关联。
嵌入在表、窗体或报表等对象中的宏,嵌入宏成为对象的一 部分,通常用来执行对象的特定任务。 嵌入宏一般没有具体的名称,随着所嵌入的对象删除而删 除。嵌入的宏只能在所嵌入对象的相关事件发生时自动执行。 Access2010 数据库应用教程
10
7.2 常用的宏操作 宏是由操作组成的。一个宏操作由操作命令和操作参数两部分 组成,操作命令和操作参数都是由系统预先定义好的。以下列出 了Access中常用的宏操作及其功能。 1. 记录操作类 操作命令 功 能 GoToRecord 使打开的表、窗体或查询结果中指定的记录成为当前记录 FindRecord 查找符合指定条件的第一条记录 FindNextRecord 通常与FindRecord搭配使用,查找与指定数据相匹配的下一条记录 Access2010 数据库应用教程
11
2. 对象操作类 操作命令 功 能 OpenTable
功 能 OpenTable 打开指定表的数据表视图、设计视图或者在打印预览窗口中显示表的记录,也可以选择表的数据输入模式 OpenQuery 打开指定查询的设计视图或者在打印预览窗口中显示选择查询的结果 OpenForm 打开窗体并可通过选择窗体的数据模式来限制对窗体中记录的操作 OpenReport 在“设计”视图或“打印预览”视图中打开报表或直接打印报表 OpenModule 在指定的过程中打开特定的VBA模块 Access2010 数据库应用教程
12
2. 对象操作类(续上页) 操作命令 功 能 SelectObject 选择指定的数据库对象,使其成为当前对象 Close
功 能 SelectObject 选择指定的数据库对象,使其成为当前对象 Close 关闭指定窗口,如果没的指定窗口,Access则关闭当前活动窗口 DelectObject 删除一个特定的数据库对象 CopyObject 将指定的数据库对象复制到不同的数据库中,或以新的 名称复制到同一个数据库中 AddMenu 创建“加载项”选项卡下的自定义菜单,也可以用于创建右键快捷菜单 CancelEvent 取消一个事件 Closedatabse 关闭当前数据库 Access2010 数据库应用教程
13
3. 数据传递类 操作命令 功 能 Requery 刷新控件的数据源,更新活动对象中特定控件的数据 SendKeys
3. 数据传递类 操作命令 功 能 Requery 刷新控件的数据源,更新活动对象中特定控件的数据 SendKeys 把按键直接传递到Acccess或别的Windows应用程序 SetValue 对窗体或报表上的字段、控件或属性进行设置 Access2010 数据库应用教程
14
4. 代码执行类 操作命令 功 能 RunApp 在Access中运行一个Windows应用程序 RunCord
功 能 RunApp 在Access中运行一个Windows应用程序 RunCord 调用Visual Basic的函数过程 RunMacro 运行一个宏对象或宏对象中的一个宏组 RunSQL 运行Access的动作查询,还可以运行数据定义查询 Access2010 数据库应用教程
15
5. 提示警告类 操作命令 功 能 Beep 通过个人计算机的扬声器发出嘟嘟声 Echo 指定是否打开音响 MessageBox
功 能 Beep 通过个人计算机的扬声器发出嘟嘟声 Echo 指定是否打开音响 MessageBox 显示一个包含警告信息的消息框 Access2010 数据库应用教程
16
6. 其他类 操作命令 功 能 GotoControl 将焦点移到激活窗体或数据表中指定的字段或控件上,实现焦点转移
功 能 GotoControl 将焦点移到激活窗体或数据表中指定的字段或控件上,实现焦点转移 MaximizeWindow 使活动窗体最大化,充满Microsoft Access窗口 MinimizeWindow 使活动窗体最小化,成为Microsoft Access窗口底部的标题栏 RefreshRecord 刷新当前记录 DeleteRecord 删除当前记录 SaveRecord 保存当前记录 Access2010 数据库应用教程
17
6. 其他类(续上页) UndoRecord 撤销最近的用户操作 ApplyFilter
在表、窗体或报表中应用筛选以选择表、窗体或报表中显示的记录 Restore 将处于最大化或最小化的窗口恢复为原来的大小 QuitAccess 退出Microsoft Access 系统 RestoreWindow 将处于最大化或最小化的窗体恢复为原来的大小 MoveSize 移动活动窗口或调整其大小 Hourglass 使鼠标指针在宏执行时变成沙漏形状或其他选择的图标 Access2010 数据库应用教程
18
7.3 宏的创建 7.3.1 创建简单宏 例7-2创建一个宏“Macro2”,包含2个操作:MessageBox和 OpenTable。运行宏时弹出一个对话框:“欢迎浏览“学生信息” 表!”,然后打开“学生信息”表。 操作步骤: (1)打开“学生管理系统”数据库,单击功能区“创建”选项卡 下的“宏与代码”组的“宏”按钮,打开宏的设计视图。 (2)选中“添加新操作”文本框,单击右侧向下箭头打开操作 列表,在列表中选择MessageBox操作命令。在操作参数区域设置 参数:“消息”输入“欢迎进入“学生信息浏览”窗口!”,“类型”选择 “信息”,“标题”选择“欢迎窗口”。 Access2010 数据库应用教程
19
参数项是列表框的可以通过下拉列表选择输入; 如果参数项后面有生成器按钮,可以通过表达式生成器 输入。
(3)选中“添加新操作”文本框,单击右侧向下箭头打开操作 列表,在列表中选择OpenTable操作命令。在操作参数区域设置参 数:“表名称”选择“学生信息”,“视图”选择“数据表”,“数据模式”选 择“只读”。 设置操作参数有3种方式: 参数项是文本框的要直接输入; 参数项是列表框的可以通过下拉列表选择输入; 如果参数项后面有生成器按钮,可以通过表达式生成器 输入。 Access2010 数据库应用教程
20
(4)保存宏对象,命名为“Macro2”,如图所示。
Access2010 数据库应用教程
21
(5)单击“运行”按钮,首先弹出“欢迎窗口”。单击“确定”按钮, 显示“学生信息”表。
Access2010 数据库应用教程
22
7.3.2 创建宏组 宏组由子宏组成,在创建宏组时,可以把“操作目录”窗格中的 Submacro命令添加到“添加新操作”文本框,并为子宏命名。 使用Submacro命令可以在宏中定义子宏,子宏是宏操作的一 种形式,能够单独执行一组操作。其结构为: 子宏:<子宏名> <操作块> End Submacro Access2010 数据库应用教程
23
例7-3 创建宏组Macro3,其中包含3个操作,分别是打开“学生 选课成绩”窗体、打开“学生情况报表”和关闭“学生选课成绩”窗体。 操作步骤: (1)打开“学生管理系统”数据库,单击功能区“创建”选项卡 下的“宏与代码”组的“宏”按钮,打开宏的设计视图。 (2)在“添加新操作”文本框中输入“Submacro”操作命令,在 “子宏:Sub1”操作参数设置框中,将默认的名称“Sub1”改为“打开 学生选课成绩”。在“添加新操作”组合框中选择命令OpenForm,并 设置操作参数,如图所示。 Access2010 数据库应用教程
24
Access2010 数据库应用教程
25
(3)用同样的方法添加其余的子宏,设置相应操作参数。
“打开学生情况报表”子宏选择命令OpenReport,“报表 名称”选择“学生情况报表”,“视图”选择“报表”,“窗口模 式”选择“普通”; “关闭学生选课成绩”子宏选择命令CloseWindow,“对 象类型”选择“窗体”,“对象名称”选择“学生选课成绩”。 Access2010 数据库应用教程
26
(4)单击 “保存”按钮,打开“另存为”对话框,在“宏名称”文 本框中输入“Macro3”,单击“确认”按钮,完成宏设计。 运行宏组“Macro3”,发现只能运行第一个子宏,若要执行其 它子宏可以通过下面的方法: 选择“数据库工具”选项卡中的“宏” 组,单击“运行宏”按钮 ,打开“执行宏”对话框,在下拉列表框中 选择要执行的宏,单击“确定”按钮即可执行。 Access2010 数据库应用教程
27
宏组名.宏名 调用宏组中的宏的格式是: 宏组中的宏也可通过Docmd.RunMacro方法来调用(详见第8 章),也可通过窗体事件来调用。
Access2010 数据库应用教程
28
例7-4 创建一个窗体,包含三个命令按钮,功能分别是打开 “学生选课成绩”窗体、打开“学生情况报表”和关闭窗体,利用宏组 Macro3来实现。 操作步骤: (1)打开“学生管理系统”数据库,创建窗体。 (2)单击“窗体设计工具/设计”选项卡下“控件”组中的“使用控 件向导”按钮,使用控件向导来创建命令按钮。 Access2010 数据库应用教程
29
(3)添加第一个命令按钮:选择“控件”组中的“命令按钮”控 件,在窗体上单击要放置“命令按钮”的位置,弹出“命令按钮向导” 第1个对话框。在对话框的“类别”列表框中,选择“杂项”,在对应 的“操作”列表框中选择“运行宏”。 Access2010 数据库应用教程
30
(3)单击“下一步”选择命令按钮运行的宏,这里选择“Macro3. 打开学生选课成绩”。按照向导完成第一个命令按钮的设置。
Access2010 数据库应用教程
31
(4)类似地,完成其它命令按钮的创建:第二个命令按钮选 择的宏为“Macro3
(4)类似地,完成其它命令按钮的创建:第二个命令按钮选 择的宏为“Macro3.打开学生情况报表”。 (5)创建“退出”按钮,单击退出Access。 (6)完成窗体设计,将窗体保存为“信息管理” 。 (7)切换到窗体视图,单击不同的命令按钮,可以运行相应 的宏操作。 Access2010 数据库应用教程
32
7.3.3 创建条件宏 条件是进行搜索或筛选时字段必须满足的准则,是一个计算 结果为“True/False”或“是/否”的逻辑表达式,当条件成立时,表 达式返回“True”。当条件不成立时,表达式返回“False”。宏将根据 条件结果,选择执行或者不执行操作。 创建条件宏是在设计视图中,通过在“添加新操作”列表中选择 If语句来实现的。 If宏操作有2种常用形式: Access2010 数据库应用教程
33
If <条件表达式> Then <操作块> End If
Access2010 数据库应用教程
34
If <条件表达式> Then <操作块1> Else <操作块2> End If
Access2010 数据库应用教程
35
例7-5 创建一个条件宏Macro4,在“教师信息浏览”窗体中,当 “教师编号”字段“失去焦点”时,若“教师编号”字段为空则弹出消息 框““教师编号”不能为空!”。 操作步骤: (1) 打开“学生管理系统”数据库,单击功能区“创建”选项卡 下的“宏与代码”组的“宏”按钮,打开宏的设计视图。 Access2010 数据库应用教程
36
(2)从“添加新操作”下拉列表中选择If语句,即出现If宏程序 块,单击“添加Else”按钮,可建立If …Then…Else形式程序块;单 击“添加Else If”按钮,则可建立嵌套的If块。
Access2010 数据库应用教程
37
Forms![窗体名]![控件名] Reports![报表名]![控件名]
在If后面的文本框中输入条件表达式: IsNull(Forms![教师信息窗体]![教师编号])。 表达式也可以通过单击“生成器”按钮 ,在打开的“表达式生成 器”对话框中输入。在输入条件表达式时,可以使用如下的语法引 用窗体或报表上的控件值: Forms![窗体名]![控件名] Reports![报表名]![控件名] Access2010 数据库应用教程
38
(3)在“添加新操作”组合框中选择MessageBox命令,设置“消息” 参数为““教师编号”不能为空!”,“类型”为“警告!”。
Access2010 数据库应用教程
39
(4)单击保存按钮保存宏为Macro4。 (5)打开“教师信息浏览”窗体的设计视图,右键单击“教师编 号”文本框,在弹出的快捷菜单中选择“属性”命令,打开“属性表” 对话框。选择“事件”选项卡,在“失去焦点”事件中选择宏Macro4, 保存对窗体的修改。 Access2010 数据库应用教程
40
(6)运行“教师信息浏览”窗体,添加记录,当“教师编号”文 本框中无输入内容时,移走光标则弹出对话框。
Access2010 数据库应用教程
41
创建嵌入宏 嵌入宏嵌入在窗体、报表或控件的事件中,是所嵌入对象的 一部分,宏的执行与控件的事件相结合,当控件的事件发生时, 执行相应的宏操作。 例7-6 创建嵌入宏,当“教师信息窗体”打开时,单击“姓名”文 本框,弹出提示信息“此字段只可浏览,不能修改!”。 操作步骤: (1) 在“学生管理系统”数据库中,打开“教师信息窗体”的设 计视图。右键单击“姓名”文本框,在弹出的快捷菜单中选择“属性” 命令,打开“属性表”对话框。 Access2010 数据库应用教程
42
(2)选择“事件”选项卡,单击“姓名”文本框的“单击”事件右侧 的造成器按钮 ,弹出“选择生成器”对话框,选择“宏生成器”项, 然后单击“确定”按钮。 (3)进入“宏生成器”窗口,在“添加新操作”框中选择 MessageBox操作命令,设置“消息”参数为“此字段只可浏览,不能 修改!”,“类型”为“重要”。 (4)关闭宏设计窗口,此时“属性表”中姓名字段的“单击”事 件行出现“嵌入的宏”的字样,完成嵌入宏设置。 Access2010 数据库应用教程
43
(5)运行“教师信息浏览”窗体,当鼠标单击“姓名”文本框时, 弹出提示信息,如下图所示。
Access2010 数据库应用教程
44
7.4 宏的执行和调试 宏建成之后,可以直接运行宏或宏组中的宏,也可以通过窗 体、报表及其控件的属性事件响应运行宏,还可以从一个宏调用 另一个宏。 7.4.1 宏的执行 1. 直接运行宏 (1)单击“宏工具/设计”选项卡下“工具”组中的“运行”按钮 。 (2)双击相应的宏名。 (3)单击“数据库工具”选项卡下“宏”组中的“运行宏”按钮 。 Access2010 数据库应用教程
45
2. 运行宏组中的宏 3. 在窗体、报表或控件的响应事件运行宏 (1)将宏指定为窗体或报表的事件属性。
(2)单击“数据库工具”选项卡下“宏”组中的“运行宏”按钮 。 3. 在窗体、报表或控件的响应事件运行宏 在设计视图中设置窗体、报表或控件的有关事件属性为宏名。 Access2010 数据库应用教程
46
4. 从另一个宏运行宏 5.在VBA中运行宏 Docmd.RunMacro “宏名”
语句格式: Docmd.RunMacro “宏名” Access2010 数据库应用教程
47
自动运行宏 Autoexec Access数据库提供了一个专用的宏Autoexec,会在打开数据 库时自动执行。因此,如果打开数据库时要自动执行某些操作, 可以通过该宏来实现。 Autoexec宏的设计方法与独立宏的设计方法完全相同,只是 在保存时将宏命名成Autoexec即可。可以把打开一个数据库应用 系统启动界面的宏操作存放在Autoexec宏中,这样在每次运行时, 会自动打开应用系统的启动界面。 若要禁止其自动运行,可以在打开数据库时按下Shift键。 Access2010 数据库应用教程
48
宏的调试 宏执行时如果出现结果异常,可以使用宏调试工具对宏操作 进行调试,常用的方法是单步执行宏。在单步执行宏时,每次执 行一个宏操作,通过观察第一步的结果,来分析出错的原因。 打开宏设计窗口,单击“工具”选项组中的“单步” 按钮,然后再 单击“运行”按钮,打开“单步执行宏”对话框。 在“单步执行宏”对话框中,显示了宏名、条件、操作名称和参 数。通过对这些值的分析,判断宏的执行是否正常。 Access2010 数据库应用教程
49
7.5 宏使用实例 1. 创建登录窗体所需的查询 例7-7 创建一个登录窗体,当用户账号和密码输入正确时, 单击“登录”按钮进入系统。
操作步骤: 1. 创建登录窗体所需的查询 登录窗体查询可以提供系统的用户账号和密码信息,以便在 登录时验证用户身份。 (1)单击功能区“创建”选项卡下“查询”组中的“查询设计”按 钮,进入查询的设计界面。 (2)在“显示表”对话框中,选择“用户”表,单击“添加”按钮。 Access2010 数据库应用教程
50
(3)将“用户帐号”和“密码”两个字段加入到“字段”行中。 (4)设置“用户帐号”列的条件为“[Forms]. [系统登录]
Access2010 数据库应用教程
51
2. 创建登录窗体 登录窗体是整个系统的入口,通过登录窗体来验证进入系统 的人员的身份,只有系统合法用户才能登录系统,非法人员无法 通过登录窗体进入系统。 (1)使用窗体向导创建一个纵栏式窗体,记录源为“登录窗 体查询”,窗体标题为“系统登录”。 设置窗体“属性”。将“记录选择器”、“导航按钮”属值设为 “否”。 Access2010 数据库应用教程
52
为了在登录时可以选择或输入用户帐号,用鼠标右击“用户 帐号”文本框上,选择“更改为/组合框”命令,将“用户帐号”文本 框改为组合框。同时,在其“属性”窗口去掉“控件来源”属性值,使 其处于“未邦定”状态。 Access2010 数据库应用教程
53
(2)设置“用户帐号”组合框的“属性”:设置“行来源类型”属性 值为“表/查询”;单击“行来源”右侧的生成器按钮,打开“查询生成 器”窗口,设置查询生成器。
Access2010 数据库应用教程
54
(3)为了使登录窗体每次能自动根据选择或输入的“用户帐 号”查询出对应的密码,需要创建一个“登录用户重新查询宏”,打 开“用户帐号”组合框的“属性表”对话框,选择“事件”选项卡,将“更 新后”事件设置为“登录用户重新查询宏”。 Access2010 数据库应用教程
55
( 4)为了实现密码验证功能,将窗体向导生成的“密码”文本 框移动位置,并设置其“可见”属性为“否”,使其隐藏起来。然后, 在其原来位置手动创建一个文本框,命名为“UserPwd”,在“数据” 选项卡中设置其“输入掩码”属性值为“密码”,这样用户输入密码时 会显示成一串“*”号。 Access2010 数据库应用教程
56
(5)创建一个条件宏来验证密码:如果通过验证,则关闭登 录窗体,打开“学生信息浏览”窗体。否则,弹出提醒信息:“口令 有误,请重新输入!”。将条件宏命名为“登录宏” 。
Access2010 数据库应用教程
57
(6)使用控件向导在窗体中创建“登录”命令按钮:在“类别” 列表框中选择“杂项”,在“操作”列表框中选择“运行宏”,选择“登录 宏”。 (7)创建“取消”命令按钮:在“类别”列表框中选择“应用程 序”,在“操作”列表框中选择“退出应用程序”。 (8)保存窗体,效果如下图所示。 Access2010 数据库应用教程
58
小 结 本章介绍了数据库对象宏,它的主要功能是使操作自动化。 宏可以分为简单宏、条件宏、嵌入宏和宏组三类。一个宏组可以 包含一个或多个宏,宏组中的每一个宏都能独立运行,互不影 响。运行宏的方法有多种。 Access2010 数据库应用教程
Similar presentations