1、第7章 宏,本章主要内容7.1 宏的概述7.2 常用宏操作和参数设置7.3 创建宏 7.4 宏的运行和调试,在Access中,经常要重复进行某一项工作,这将会浪费时间而且不能够保证所完成工作的一致性。此时,利用宏来完成这些重复的工作是最好的选择。 7.1.1 宏的概念,宏是由一个或多个操作命令组成的集合,其中每个操作执行特定的功能。例如,排序、查询和打印操作等。可以通过创建宏来自动执行一项重复的或者十分复杂的任务,或执行一系列复杂的任务。,宏是一种简化操作的工具,使用宏时,不需要记住各种语法,也不需要编程,只需要将所执行的操作、参数和运行的条件输入到宏窗口即可。Access中宏的操作也可以在模
2、块对象中通过编写VBA(Visual Basic for Application)语句来达到相同的功能。一般来说,对于事务性的或重复性的操作,例如,打开和关闭窗体、显示和隐藏工具栏或运行报表等一般是通过宏来完成。当要进行数据库的复杂操作和维护、自定义过程的创建和使用以及错误处理时,应该使用VBA。,7.1.2 宏的设计窗口,在创建或编辑一个宏时,都要打开宏的设计窗口. 宏的设计窗口中各列功能说明如下: 宏名:在该行中设置宏的名称。 条件:在该行中输入条件表达式,用于控制宏执行的条件。 操作:用来指定宏执行的操作。 注释:用来说明每个操作执行的功能 操作参数区域:在参数区域的左侧设置相关的操作参
3、数,右侧显示相应 操作参数的提示信息。,在默认情况下,宏设计窗口中的“宏名”和“条件”两个列是不显示的,可以通过单击工具栏上的“宏名”按 钮和“条件”按钮 ,或执行“视图” “宏名”和“视图” “条件”命令来显示“宏名”和“条件”两个列。在宏设计窗口中,每一行就是一个宏操作命令,单击每一行右侧的下拉箭头,在打开的列表框中会显示出Access的每个宏操作命令,可以在其中选择需要的宏操作命令。,7.1.3 宏设计工具栏在宏设计窗口,Access的工具栏变为“宏设计”工具栏。在宏设计工具栏中,与宏操作相关的工具按钮说明:,7.1.4 宏的分类Access中的宏可以分为3类,分别是操作序列宏、宏组和条
4、件宏。,1操作序列宏操作序列宏是一系列的宏操作组成的序列,每次运行该宏时,Access都会按照操作序列中命令的先后顺序执行。,图中包含有两个宏操作: 、执行MsgBox操作,可以弹出一个对话框:“本次查询结果为只读,不能修改!”。、执行OpenQuery操作,运行“数学成绩优秀学生”查询,同时设置该查询操作的“数据模式”参数为“只读”。,例7-1,2宏组宏组是在同一个宏窗口中包含多个宏的集合。宏组中的每个宏单独运行,互相没有关联。在设计窗口创建宏组时,需先将“宏名”列打开,然后将每个宏的名字加入到它的第一项操作左边的宏名列中。同一宏组的所有操作的宏名列中,只能在第一项操作的左边填入宏名。宏组中
5、的宏是通过RunMacro方法来调用的,格式: 宏组名 . 宏名 例如:调用 “MacroGroup”宏组中的“运行查询”宏的语句格式: MacroGroup . 运行查询,例7-2,3条件宏条件宏是指带有条件列的宏。在条件列中指定某些条件,如果条件成立,则执行对应的操作;如果条件不成立,则跳过对应的操作。,例7-3,Access中提供50多个宏操作命令,创建宏时可根 据需要选择合适的宏操作命令。然后,可以在宏设计窗 口下方为选择的宏操作命令设置参数信息。1打开或关闭数据库对象OpenTable:用于打开数据表。OpenForm:用于打开窗体。OpenReport:用于打开报表。OpenQue
6、ry:用于打开查询。Save:用于保存当前对象。Close:用于关闭指定的数据库对象。,2运行和控制流程 RunSQL:用于执行指定的SQL语句。 RunApp:用于执行指定的外部应用程序。 RunCode:用于执行VB的过程。 RunCommand:用于执行Access的菜单命令。 RunMacro:用于执行一个宏。 Quit:用于退出Access。 Close:关闭指定的表、窗体等对象,3设置值 SetValue:用于设置控件、字段或属性的值。 SetWarning:用于关闭或打开系统的所有消息。4. 记录操作 Requery:用于指定控件重新查询,即刷新控件数据。 FindRecord:
7、用于查找满足指定条件的第1条记录。 FindNext:用于查找满足指定条件的下一条记录。 GoToRecord:用于指定当前记录。,5控制窗口 Maximize:使窗口最大化。 Minimize:使窗口最小化。 Restore:将窗口恢复为原始大小。 MoveSize:移动并调整窗口。6. 通知或警告 Beep:用于使计算机发出“嘟嘟”声。 MsgBox:用于弹出消息框。,7菜单操作 AddMenu:用于为窗体或报表添加自定义的菜单栏,菜单栏中每个菜单都需要一个独立的AddMenu操作,也可以定义快捷菜单。 SetMenuItem:用于设置活动窗口自定义菜单栏中的菜单项状态。8. 导入和导出数
8、据 TransferDatabase:用于从其它数据库导入和导出数据。 TransferText:用于从文本文件导入和导出数据。 TransferSpreadsheet:用于从电子表格中导入数据或向电子表格导出数据。,7.2.2 宏操作的参数设置在宏中添加了某个操作之后,可以在宏设计窗口的下部设置这个操作的相关参数。设置说明如下: 可以从下拉列表中选择某个设置,也可以在参数框中直接输入数值。 通常按参数排列顺序来设置操作参数。 如果通过从“数据库”窗口拖动数据库对象的方式向宏中添加操作,系统会设置适当的参数。 如果宏操作中有调用数据库对象名的参数,则可以将对象从“数据库”窗口中拖动到参数框,从
9、而由系统自动设置操作及对应的对象类型参数。许多操作参数可以用前面加等号“=”的表达式来设置操作参数。,7.3.1 创建操作序列宏例7-1:创建一个宏,宏命名为Mymacro,宏中包含两个操作,分别是MsgBox和OpenTable,这个宏的作用是弹出一个提示对话框,提示“下面将以只读方式打开“学生成绩表”,表中数据不能修改!”,关闭对话框后将打开“学生成绩表”。创建操作序列宏的步骤如下: (1)在数据库窗口中,单击“宏”对象。 (2)单击工具栏上“新建”按钮,打开宏设计窗口。 (3)单击“操作”列的第一个单元格,单击右侧向下箭头打开操作列表,在列表中选择MsgBox操作命令。,(4)在“注释”
10、列中输入说明信息。 (5)在宏设计窗口的下半部设置操作参数。这里设置“消息”属性值为“以只读方式打开“学生成绩表” ”。,(6)单击下一行,选择OpenTable操作命令。 (7)在“注释”列中输入“打开表” 。 (8)设置操作参数:“表名称”为“学生成绩表”,“视图”为数据表。“数据模式”为“只读” 。,(9)单击“保存”按钮保存宏,在“另存为”对话框中输入“Mymacro”,单击“确定”按钮,宏创建完毕。 (10)运行创建好的宏“Mymacro”: 首先弹出提示对话框,单击“确定”按钮关闭对话框,将打开“学生成绩表”的数据表视图。,返回,7.3.2 创建宏组 例7-2:设要创建一个宏组,宏
11、组名为Mymacrogroup,其中包含两个宏Macro1和Macro2。Macro1和Macro2分别包含“OpenTable”、“MsgBox”和“Close”3个操作,分别打开“学生信息表”和“学生成绩表”。创建宏组的步骤如下: (1)在数据库窗口中,单击“宏”对象。 (2)单击工具栏上的“新建”按钮,打开宏设计窗口。,(3)执行“视图” “宏名”命令,或单击工具栏上的“宏名”工具按钮 ,使按钮处于按下状态,此时宏设计窗会增加一个“宏名”列。 (4)在“宏名”列内,输入宏组中的第一个宏的名字Macro1。,(5)分别添加需要宏执行的操作: OpenTable:“表名”为“学生信息表”。
12、MsgBox: “消息”为“这是第一个消息框”。 Close :“表名称”为“学生信息表” 。 (6)重复步骤(4)(5)定义Macro2。 (7)单击 “保存”按钮保存宏组:“Mymacrogroup”。,运行宏组中的宏 双击运行宏组中的第一个宏。 通过RunMacro方法来调用,格式:宏组名.宏名 通过控件的事件来调用。,7.3.3 创建条件宏例7-3:创建一个条件宏:Conditionmacro,其中包含1个条件IsNull(学号),当“学生信息表”窗体中的“学号”字段绑定的文本框 “失去焦点”时,执行该宏。当条件为“真”时,执行宏中的MsgBox操作,提示“学号字段不能为空!”。创建条
13、件宏的步骤如下: (1)在数据库窗口中,单击“宏”对象。 (2)单击工具栏上的“新建”按钮,打开宏设计窗口。 (3)执行“视图” “条件”命令,或者单击工具栏上的“条件”按钮 ,在宏设计窗口中增加一个“条件”列。,条件是逻辑表达式,有“真”和“假”两个返回值。当条件成立时,表达式返回值为“真”。当条件不成立时,表达式返回值为“假”。宏将根据条件结果,选择不同的路径去执行。(4)在“条件”列输入:IsNull(学号)。在输入条件表达式时,可以使用如下的语法引用窗体或报表上的控件值Forms!窗体名!控件名 或者 Reports!报表名!控件名,(5)在“操作”列选择MsgBox命令,设置“消息”
14、参数为“学号字段不能为空!” 。如果要添加更多的操作,则移动到下一个操作行。如果该行操作条件与上一行操作相同,只要在相应的“条件”栏输入省略号()即可。,(6)保存宏:Conditionmacro。,(7)在设计视图中打开“学生信息”窗体,打开“学号”文本框的“属性”窗口,在“事件”选项卡的“失去焦点”事件中选择宏ConMacro。保存对窗体的修改。运行窗体,当光标离开“学号”文本框时,会弹出对话框。,返回,7.4.1 宏的运行1直接运行宏执行下列操作之一: 单击“运行”按钮。 双击相应的宏名。 执行“工具” “宏” “运行宏”命令。,2运行宏组中的宏 运行宏组中的宏,可以执行下列操作之一:
15、将宏指定为窗体或报表的事件属性,或指定为RunMacro操作的宏名参数。 执行“工具” “宏” “运行宏”。3在窗体、报表或控件的响应事件运行宏 可以通过选择运行宏或事件过程来响应窗体、报表或控件上发生的事件。操作步骤如下: 在“设计”视图中打开窗体或报表。 设置窗体、报表或控件的有关事件属性为宏的名称或事件过程。4在VBA中运行宏 在VBA程序中运行宏,要使用DoCmd对象中的RunMacro方法。 语句格式: Docmd.RunMacro “宏名”,7.4.2 宏的调试单步方式运行宏Mymacro的操作步骤如下: (1)在设计视图中打开宏Mymacro。 (2)单击工具栏上的“单步”按钮,使其处于按下状态。 (3)单击工具栏上“运行”按钮,屏幕显示“单步执行宏”对话框。,(4)单击“单步执行”按钮,以执行其中的操作。 (5)单击“停止”按钮,停止宏的执行并关闭对话框。 (6)单击“继续”按钮,执行宏的下一个操作命令。单步执行宏时,对话框中列出了每一步所执行的宏操作“条件”是否成立以及操作名称和操作参数。由此可以得知宏操作是否按预期执行。如果宏操作有误,则会显示“操作失败”对话框。,