《Access宏设计方法.ppt》由会员分享,可在线阅读,更多相关《Access宏设计方法.ppt(71页珍藏版)》请在三一办公上搜索。
1、第9章 Access宏设计方法,了解Access宏对象的基本概念及其基本知识学习并掌握相关的Access基本操作学习并掌握Access宏的设计与修改方法学习并掌握Access宏的运行和调试方法学习并掌握Access宏的调用方法学习并掌握Access特殊宏的应用方法,9.1 Access基本操作,Access总共支持52种操作,Access帮助文档将其分为5种不同的类别。在此我们介绍其中常用的16种基本操作,并将其分为5种类别进行介绍。,9.1.1 Access记录操作,所谓记录操作,是指移动记录指针、查找并定位记录指针的相关操作。这一类操作将导致记录指针在一个Access表中的重定位,使得被定
2、位的数据记录成为当前记录。因此,在数据库应用系统中,可以通过设定这一类操作来满足指定当前记录的需求。1GotoRecord操作 GotoRecord是直接移动记录指针的操作,操作指令格式为:GotoRecord 对象类型,对象名称,记录,偏移量,9.1.1 Access记录操作,其中:“对象类型”可用以指定为数据表、查询或窗体,如果不加指定则默认为当前活动对象。“对象名称”可根据“对象类型”的指定,可以指定一个对应的数据表对象名、查询对象名或窗体对象名,如果不加指定,则默认为当前活动对象。“记录”为必选项,当指定为首记录、尾记录、或新记录时,不需设定“偏移量”。当指定为向前移动、向后移动、或定
3、位时,必须设定“偏移量”。“偏移量”为任选项,当需要设定时,可以设定为一个整数值n。当“记录”参量设定为“向前移动”时,它表示记录指针向前移动n个记录;当“记录”参量设定为“向后移动”时,它表示记录指针向后移动n个记录;当“记录”参量设定为“定位”时,它表示记录指针移动至第n个记录。,9.1.1 Access记录操作,2FindRecord操作FindRecord是采用查找方式移动记录指针的操作,操作指令格式为:FindRecord 查找内容,匹配,区分大小写,搜索,格式化搜索,只搜索当前字段,从第一条查找 其中:“查找内容”参量应该填写需要在当前字段中查找的数据,其数据类型应与当前字段的数据
4、类型相同。“匹配”应该在“整个字段的任何部分”、“整个字段”和“字段开头”三个选项中选择一个。“区分大小写”可以在“是”(表示查找时区分字母大小写)和“否”(表示查找时不区分字母大小写)两个选项中选择一个。,9.1.1 Access记录操作,“搜索”参量用以指定是从当前的记录向记录开头进行搜索还是向记录结尾进行搜索,或是向下搜索到记录结尾然后再从记录开头搜索到当前记录,以便所有的记录都被搜索到。默认值为“全部”。“格式化搜索”参量用以指定是否搜索包含带格式的数据。“只搜索当前字段”用以指定是在每条记录的当前字段中进行搜索还是在每条记录的所有字段中进行搜索。“从第一条查找”用以指定是从第一条记录
5、还是从当前记录开始搜索。,9.1.1 Access记录操作,3FindNext操作使用FindNext操作,可以查找下一个记录,该记录符合由前一个FindRecord操作或“在字段中查找”对话框所指定的准则,单击“编辑”菜单中的“查找”命令可以打开该对话框。使用FindNext操作可以反复查找记录。例如,可以在某一特定读者的所有记录间进行移动。其操作指令格式为:FindNext,9.1.1 Access记录操作,FindNext操作没有任何参数。FindNext操作查找下一个记录,该记录符合由FindRecord操作或“在字段中查找”对话框中设置的准则。FindRecord操作的参数与“在字段
6、中查找”对话框中的选项是共享的。如果要设置搜索条件,可使用FindRecord操作。通常,可以在宏中输入FindRecord操作,然后使用FindNext操作,连续地查找接下来的那些符合相同条件的记录。如果只搜索符合某一特定条件的记录,可以在FindNext操作的“条件”列中输入一个条件表达式。,9.1.2 Access窗体操作,所谓窗体操作,是指打开窗体、关闭窗体、改变窗体尺寸或者位置等相关的操作,这一类操作将导致指定的Access窗体运行视图的变化。1.OpenForm操作使用OpenForm操作,可以从窗体“设计”视图、“打印预览”或“数据表”视图中打开一个窗体,可以选择窗体的数据输入与
7、窗口方式并限制窗体所显示的记录。其操作指令格式为:OpenForm 窗体名称,视图,筛选名称,Where条件,数据模 式,窗口模式,9.1.2 Access窗体操作,其中:“窗体名称”是指打开窗体的名称。“视图”是指打开窗体的哪一个视图,包括“窗体视图”、“窗体设计视图”、“窗体打印预览视图”和“窗体数据表视图”,可以从一个下拉式列表框中选取,其默认值为“窗体视图”。“筛选名称”用于限制或排序窗体中记录的筛选。“Where条件”用以指定一个SQL WHERE子句(不包含WHERE关键字)或逻辑表达式。OpenForm将根据这个SQL子句或逻辑表达式从窗体的基础表或基础查询中选择记录,并以这样选
8、定的记录集作为打开窗体的数据源。,9.1.2 Access窗体操作,“数据模式”用以设定窗体打开后的数据输入方式,该参数只能应用于“窗体视图”或“窗体数据表视图”方式打开的窗体。数据模式包括“增加模式”(用户可以增加记录,但不能编辑已经存在的记录)、“编辑模式”(用户可以编辑已经存在的记录,也可以增加记录)或“只读”(用户只能查看记录)三种,可在其中选择一种。默认值为“编辑模式”。“窗口模式”用以设定在其中打开窗体的窗口模式,即进行打开窗体的窗口形式设定。,9.1.2 Access窗体操作,2.Close操作使用Close操作可以关闭一个指定的Microsoft Access窗口,这个窗口可以
9、是一个运行着的窗体视图、数据表视图、查询视图、报表视图、宏对象视图等等。如果没有指定窗口,则关闭当前的活动窗口。其操作指令格式为:Close 对象类型,对象名称,保存 其中:“对象类型”用以指定要关闭的窗口中的对象类型。“对象名称”用于指定要关闭的对象名称。“保存”用于决定关闭窗口时是否要保存对这个对象的各项更改。,9.1.2 Access窗体操作,3.Maximize操作使用Maximize操作可以放大活动窗口,使其充满Microsoft Access窗口。该操作可以使用户尽可能多地看到活动窗口中的对象。其操作指令格式为:Maximize Maximize操作没有任何参数。该操作与单击窗口右
10、上角的“最大化”按钮或控制菜单中的“最大化”命令具有相同的功能。,9.1.2 Access窗体操作,4.Minimize操作使用Minimize操作可以将活动窗口缩小为Microsoft Access窗口底部的小标题栏。其操作指令格式为:Minimize Minimize操作没有任何参数。该操作与单击窗口右上角的“最小化”按钮或控制菜单中的“最小化”命令具有相同的功能。,9.1.2 Access窗体操作,5.MoveSize操作使用MoveSize操作可以移动活动(当前)窗口或调整其大小。其操作指令格式为:MoveSize 右,下,宽度,高度 其中:“右”用以指定当前窗口左上角的新水平位置,从
11、包含它的窗口的左边开始测量。“下”用于指定当前窗口左上角的新垂直位置,从包含它的窗口顶部开始测量。“宽度”用于指定当前窗口的新宽度。“高度”用于指定当前窗口的新高度。,9.1.3 Access报表操作,所谓报表操作,指打开报表对象的相关视图、关闭报表对象的当前视图、打印报表对象数据等相关的操作,这一类操作将导致一个Access报表对象的运行、编辑或打印。1.OpenReport操作使用OpenReport操作,可以在报表“设计视图”或报表“打印预览视图”中打开报表对象或打印报表,也可以限制需要在报表中打印的记录。其操作指令格式为:OpenReport 报表名称,视图,筛选名称,Where条件
12、其中:“报表名称”是指打开报表的名称。,9.1.3 Access报表操作,“视图”是指打开报表的视图类型。“筛选名称”用于限制报表记录的筛选。“Where条件”用以指定一个SQL WHERE子句(不包含WHERE关键字)或逻辑表达式。OpenReport将根据这个SQL子句或逻辑表达式从报表的基础表或基础查询中选择记录,并以这样选定的记录集作为打开报表的数据源。2.关闭报表对象的操作关闭报表对象的操作就是“Close操作”,具体用法请参见节所述。,9.1.3 Access报表操作,3.PrintOut操作使用PrintOut操作用于打印,其操作指令格式为:PrintOut 打印范围,开始页码,
13、结束页码,打印品质,份数,自动分页“打印范围”用以设定报表数据的打印范围。“开始页码”用以设定报表数据打印的起始页。“结束页码”用以设定报表数据打印的终止页。“打印品质”用以设定报表数据的打印品质。“份数”用以设定报表数据的打印份数。“自动分页”用以设定报表数据是否分页打印。,9.1.4 应用程序驱动操作,如果需要运行一个Access内置命令、运行一个宏指令或者运行一段位于Access数据库外部的Windows或Dos应用程序,可以使用Access提供的应用程序驱动操作。这一类操作将导致一个指定应用程序的运行,而后返回发起应用程序运行的Access操作处。,9.1.4 应用程序驱动操作,1.R
14、unCommand操作使用RunCommand操作可以运行Microsoft Access的内置命令。所谓内置命令是指出现在Microsoft Access菜单栏、工具栏或快捷菜单上的那些功能程序。其操作指令格式为:RunCommand 命令 其中:“命令”用以指定要运行的命令。“命令”参数框为一个下拉式列表框,其中按字母顺序排列着所有可用的Microsoft Access内置命令,可以根据需要从中选取希望调用的内置命令。该参数是必需的。,9.1.4 应用程序驱动操作,2.RunMacro操作使用RunMacro操作可以运行一个独立的宏或者一个位于宏组中的宏。其操作指令格式为:RunMacro
15、 宏名,重复次数,重复表达式 其中:“宏名”用以指定所要运行的宏的名称。“重复次数”用以指明所要运行的宏的最大运行次数。“重复表达式”用于设置一个运行宏的重复运行条件,重复表达式的取值为True(-1)或False(0)。当重复表达式值为False时宏将停止运行。每次宏运行之前都将先计算该表达式值。,9.1.4 应用程序驱动操作,3.RunApp操作使用RunApp操作可在Microsoft Access中运行一个Windows或MS-DOS应用程序,如Microsoft Excel,Microsoft Word或 Microsoft PowerPoint等等。其操作指令格式为:RunApp
16、命令行 其中:“命令行”用以指定所要运行的应用程序(命令行应包括路径和其他所需参数,例如用于以特定的方式运行应用程序的开关)。请在“宏”窗口“操作参数”窗格上的“命令行”框中键入命令行。该参数是必选的。,9.1.5 Access杂项操作,1.Quit操作使用Quit操作可以退出Microsoft Access。其操作指令格式为:Quit 选项 其中:“选项”用以指定当退出Microsoft Access时对没有保存的对象所作的处理。可以在“宏”窗口“操作参数”窗格中的“选项”框选定具体参数。,9.1.5 Access杂项操作,2.MsgBox操作使用MsgBox操作可以显示包含警告信息或其他信
17、息的消息框。其操作指令格式为:MsgBox 消息,发嘟嘟声,类型,标题 其中:“消息”用以指定消息框中的文本。“发嘟嘟声”指定计算机是否在显示信息时发出嘟嘟声。“类型”消息框的类型。“标题”用以指定消息框标题栏中显示的文本。,9.2 Access宏概述,Access提供了“宏”这样一种对象,使其可以包容一系列的操作,并使其可以被其他对象所调用。同时,如同其他Access对象一样,宏对象的创建与设计也可以在其专用的设计视图中进行。,9.2.1 Access宏对象的作用,由于Access宏对象实际上是一个容器对象,其间包含着一个操作序列以及操作参数和操作执行的条件,因此,可以使用一个Access宏
18、对象来作为处理某一事件的方法。例如,为了认识Access宏对象的作用,我们可以在“教材征订管理信息系统”数据库中设计一个Access宏对象,用以打开“教材预订信息编辑”窗体,然后驱动“教材预订数据报表”对象的预览视图。为此,应该在“教材征订管理信息系统”数据库设计视图的“宏”选项卡上,单击“新建”按钮“”,即进入Access宏设计视图。如图9-2-1所示。,9.2.1 Access宏对象的作用,在这个设计视图中,依次设置2个操作作为这个宏对象的内容。第一个操作为:OpenForm;对应的操作参数为:“窗体名称”设置为“教材预订信息编辑”,“视图”设置为“窗体”。第二个操作为:OpenRepor
19、t;对应的操作参数为:“报表名称”设置为“教材预订数据报表”,“视图”设置为“打印预览”。如图9-2-1所示。这个宏对象包含两个操作,顺序打开“教材预订信息编辑”窗体运行视图和“教材预订数据报表”的预览视图。,9.2.1 Access宏对象的作用,图9-2-1“预览教材预订数据报表”宏对象设计视图,9.2.1 Access宏对象的作用,如果需要顺序执行一个宏对象中包含的各项操作,应该在数据库设计视图的“宏”选项卡上选定这个宏对象,并单击“运行”按钮“”,即可得到这个宏对象中所包含各项操作顺序执行的结果。通过这个例子可以看到,一个Access宏对象的作用就是顺序执行一系列的操作,而一个宏对象的设
20、计,则应该是合理地设置各项操作以及相应的操作参数。,9.2.2 将宏对象转换为VBA程序模块,在Microsoft Access中,我们可以利用数据库设计视图菜单栏上的文件另存为功能,将指定的宏对象转换为VBA程序模块。下面以刚刚建立的“预览教材预订数据报表”宏对象为例,介绍这个操作过程。在“教材征订管理信息系统”数据库设计视图的宏选项卡上选定“预览教材预订数据报表”宏对象,在窗口菜单上单击【文件】|【另存为】即出现如图9-2-2所示的“另存为”对话框,将VBA模块命名为“预览教材预订数据报表转换成的VBA模块”,再将保存类型定义为“模块”,单击对话框上的确定按钮。即完成了将宏对象转换为VBA
21、程序模块的操作。,9.2.2 将宏对象转换为VBA程序模块,图9-2-2 将宏对象转换为VBA程序模块的操作对话框应该比较一下两个具有同一功能的不同对象。在“教材征订管理信息系统”数据库设计视图中,选择“模块”选项卡,选定其中的VBA模块对象“被转换的宏 预览教材预订数据报表”,再单击数据库设计视图上的“设计”按钮“”,即可看到VBA模块对象“被转换的宏 预览教材预订数据报表”的程序代码如下:,9.2.2 将宏对象转换为VBA程序模块,Function 预览教材预订数据报表()On Error GoTo 预览教材预订数据报表_Err DoCmd.OpenForm 教材预订信息编辑,acNorm
22、al,acNormal DoCmd.OpenReport 教材预订数据报表,acViewPreview,acNormalu 预览教材预订数据报表_Exit:Exit Function 预览教材预订数据报表_Err:MsgBox Error$Resume 预览教材预订数据报表_Exit End Function 可见,尽管VBA代码将获得较高的运行效率,但是其代码结构却显得复杂得多。因此,在有些操作比较简单的情况下,还是可以考虑设计Access宏对象来完成某些序列的操作。,9.3 Access宏设计,Access宏设计在其宏对象设计视图中进行,实质上是一种编写程序的过程,但由于采用的是人机对话过
23、程,因而不同于常规的编程方式。在宏对象设计过程中,完全不需涉及设计宏的代码,也没有太多的语法需要去掌握,甚至可以不需记忆各种命令。真正需要去做的就是在宏的操作设计列表中进行合适的操作选择,并为所选定的操作设置必要的参数。,9.3.1 Access宏设计视图,先来看看如何新建一个宏对象。在数据库设计视图中选定“宏”选项卡,然后单击工具栏上的“新建”按钮“”。与创建其他Access对象不同的是单击“新建”按钮之后,没有出现一个关于新建宏的向导对话框,这是因为Access宏创建过程的简单性,使得Access无须再为创建宏来添加向导帮助。Access宏对象只有设计视图一种方式,在设计视图中,用户可以创
24、建或修改宏的内容。如果是需要修改一个Access宏对象的设计参数,则应该首先在数据库设计视图中的“宏”对象卡上选定需要修改设计参数的宏对象,然后单击工具栏上的“设计”按钮。先让我们来看看这个名为“打开课堂信息编辑窗体”的宏对象设计视图。如图9-3-1所示。,9.3.1 Access宏设计视图,图9-3-1“打开课堂信息编辑窗体”宏对象设计视图,9.3.1 Access宏设计视图,“宏设计视图”窗口分为上下两部分,分别为设计区和操作参数区,它的结构和Access表“设计视图”的结构相似,使用F6键可以在两个区中移动光标。在窗口的上半部分即设计区,可以在其中定义宏名、选定操作、确定各条操作执行的条
25、件、填写备注文字。设计区包含四个参数列,分别为“宏名”、“条件”、“操作”和“注释”。宏设计视图窗口的下半部即操作参数区,是各个操作的“操作参数”列表框,用来定义各个操作所需的参数。当在设计区指定一个操作后,“操作参数”中将显示该操作所需的各项操作参数。,9.3.2 设置操作执行的条件,宏设计视图设计区的“条件”列,用来设置操作的执行条件,操作的执行条件可用于控制宏的操作流程。可以通过以下的操作步骤为各个操作指定其执行条件。1在宏设计视图的设计区中显示条件列在“宏”设计窗口中单击工具栏中的条件按钮“”,使其呈凹下状态。2选择所需的操作,并设定该操作所需的操作参数选择操作可以通过操作列的下拉列表
26、框完成,然后在操作参数区内逐一设定各项操作参数。3在“条件”列中设置操作执行条件在对应操作行的“条件列”中键入相应的逻辑表达式;或者单击右键,在弹出的快捷菜单中选择“生成器”命令,再在“表达式生成器”中建立逻辑表达式。,9.3.3 选择操作并给定操作参数,在宏对象设计过程中,最主要的是逐一选定操作、并为每一个操作设置适当的操作参数,从而实现一个宏对象的运行需求。在宏设计视图的设计区中,单击需要设置操作的“操作列”,在该“操作列”列表框的右侧会出现一个下拉按钮,下拉列表中有52个可供选择的操作。应将需要先执行的操作置于需要后执行的操作的上一行。选定一个操作后,在宏设计视图下端的“操作参数”区中会
27、出现与该操作对应的操作参数设置表。对于那些要求参数的操作,因该在其操作参数对应的文本框或组合框中输入对应的参数值,用以设定各项操作参数的属性。,9.3.4 Access宏组,一个宏对象是Access数据库对象中的一个二级容器对象,其间可以包含若干个宏,而一个宏又是由若干个操作组成的。因此,我们可以将若干个宏设计在一个宏对象中,这个宏对象即称为宏组。一个宏组具有自己的对象名称,而其中的每一个宏也具有一个书写在“宏名”列中的唯一名称。图9-3-1所示即为一个名为“打开课程/课堂信息编辑窗体”的宏对象,其间包含一个宏,其名称为“打开课程信息编辑窗体”。这个宏中包含有两个操作,分别为“OpenForm
28、”和“MsgBox”,为了便于阅读,分别为这两个操作加以注释。,9.3.4 Access宏组,在“打开课程信息编辑窗体”宏对象中设计完成一个宏后,还可以接着设计第二个宏,如此即构成一个宏组。例如,可以在“打开课程/课堂信息编辑窗体”宏对象增加一个宏“打开课堂信息编辑窗体”,令其包含两项操作:DoCmd.OpenForm 课堂信息编辑,acNormal,acNormal DoCmd.OpenReport 图书借阅数据分析报表,acViewPreview,acNormal其设计视图如图9-3-2所示。这样,“打开课程/课堂信息编辑窗体”宏对象即成为一个包含两个宏的宏组。运行一个宏组中的某一个宏时,
29、必须采用如下引用格式:宏组名.宏名,9.3.4 Access宏组,例如,为了运行“打开课程/课堂信息编辑窗体”宏组中的宏“打开课堂信息编辑窗体”,需要使用的命令为:DoCmd.RunMacro打开课程/课堂信息编辑窗体.打开课堂信息编辑窗体,图9-3-2“打开课程/课堂信息编辑窗体”宏对象设计视图,9.4 Access宏编辑与修改,在Access宏设计视图中,我们不仅可以创建宏及其操作,也可以对已经建成的宏进行所需要的编辑与修改。所需进行的编辑修改大致包括:添加操作、删除操作、更改操作及其操作参数、重排操作顺序等四项内容。,9.4.1 添加操作,当完成了一个宏的基本设计之后,还常会根据实际中的
30、需要再向宏中添加一些新的操作。例如,对于一个已经创建好的宏“预览教材预订数据报表”,其中包含两个操作“OpenForm”和“OpenReport”,用以首先打开“教材预订信息编辑”窗体运行视图,然后打开“教材预订数据报表”预览视图。现需要在“OpenReport”操作执行之前,增加一个操作“MsgBox”,用以在打开报表预览视图之前,提供一个提示信息,使得操作者能够理解执行这个宏将会产生的动作。下面的介绍即以此为例,说明在一个Access宏中添加操作的方法。,9.4.1 添加操作,1进入“预览教材预订数据报表”宏设计视图2在“OpenReport”操作前增加一行对于本实例,需要在原有的Open
31、Report操作行之前插入一新的“操作行”。即可单击OpenReport操作行的行选定器,然后在工具栏上单击“插入行”按钮“”。随之,在OpenReport操作行之前即增加了一个空行。3设定“MsgBox”操作及其操作参数在新插入的操作行中,单击操作列右端的下拉箭头显示操作列表,从列表中选取要使用的操作“MsgBox”,然后在其对应的操作参数区中填写所需要的参数值。至此,即完成了宏“预览教材预订数据报表”的编辑修改过程,其设计视图如图9-4-1所示。,9.4.1 添加操作,图9-4-1“预览教材预订数据报表”宏设计参数,9.4.2 删除操作,1选定欲删除的操作在宏设计视图的设计区中,单击需要删
32、除的操作所在行的行选定器。2删除选定的操作在数据库设计视图工具栏上单击“删除行”按钮“”。在宏中删除一个操作的同时,Access将同时删除与该行操作相对应的所有操作参数。,9.4.3 更换操作、修改操作参数以及修订执行条件,1更换已经选定的操作在“宏”设计视图中打开需要修改的宏,选取设计区中的那个需要更改操作的行,单击出现在该行“操作列”右端的向下箭头“”以打开对应的下拉式列表,从中选取实际所需的操作,则可根据需要进行操作的更换。2修改操作参数选定需要修改其操作参数的操作行,即可在该操作对应的“操作参数”区中修改其操作参数。,9.4.3 更换操作、修改操作参数以及修订执行条件,3修订操作执行条
33、件令光标停留在需要修订其执行条件的操作行上的“条件列”内,单击鼠标右键,在随即弹出的快捷菜单中单击【生成器】选项“”,即出现“表达式生成器”对话框,如图9-4-2所示。图9-4-2所示为“打开课堂信息编辑窗体”宏中“MsgBox”操作的执行条件。,图9-4-2 设置“MsgBox”操作执行条件的表达式生成器,9.4.4 重排操作顺序,在编辑宏对象的时候,如果某一个宏中的操作排列顺序不正确,可以采用如下方法对其进行重新排列。1采用剪切复制的方法2采用拖曳的方法,9.5 Access宏的运行与调试,当运行一个Access宏对象时,Microsoft Access会从这个Access宏对象的开始处执
34、行,逐一执行其中第一个宏中的所包含的全部操作,直到执行完这个宏的最后一个操作。显然,如果一个宏对象是一个宏组,直接运行这个宏对象,将只会执行其中的第一个宏。除了可以直接运行宏外,也可以从其他宏或事件过程中运行宏。在一般情况下,Access数据库应用系统都是采用窗体控件响应外部事件的方法来运行一个宏。例如,可以将宏附加到窗体的命令按钮上,即将该命令按钮对单击(Click)事件的响应设置为执行某一个宏。这样,当单击该按钮时即可执行这个指定的宏。也可采用相似的方法创建自定义菜单命令或工具栏按钮来运行宏。,9.5.1 直接运行宏,直接运行一个Access宏的方法有4种,其目的一般都是为了观察这个Acc
35、ess宏的运行效果,用以确定宏设计的正确性。1在“宏”设计视图窗口中单击工具栏上的“运行”按钮“”运行宏2在“数据库”设计视图窗口的宏选项卡中双击相应的宏对象名运行宏。3在“数据库”设计视图窗口的宏选项卡中选中一个宏对象,单击“运行”按钮“”来执行宏4利用“数据库”设计视图窗口的菜单选项运行宏,9.5.2 单步执行宏操作,使用单步执行宏可以观察到宏的流程和每一个操作的执行结果,据此,我们可以找到排除导致错误或产生非预期结果的处理方法。以下说明如何设定宏的单步执行状态,如何进行宏的单步执行,以及如何观察单步执行过程中的各个操作执行情况。1设定宏的单步执行状态在宏设计视图窗口工具栏中,有一个“单步
36、”按钮“”。初始状态下,这个按钮呈凸起形式,这表示宏的连续执行状态。单击“单步”按钮“”,使其呈凹下形式,即可设定宏的单步执行状态。,9.5.2 单步执行宏操作,2单步执行宏中的各个操作在已经设定了宏的单步执行状态的情况下,执行任一个宏都是以单步方式执行的。例如,在已经设定了宏的单步执行状态后,可以在“教材征订管理信息系统”数据库设计视图的宏对象选项卡上,选中“预览教材预订数据报表”宏对象,单击“运行”按钮“”。这时即出现“单步执行宏”对话框如图9-5-1所示。,9.5.2 单步执行宏操作,图9-5-1“预览教材预订数据报表”宏中第一条操作“OpenForm”的执行参数,9.5.2 单步执行宏
37、操作,3观察每一个操作执行前的状态在宏的单步执行状态下,执行宏中的每一个操作之前,Access都会显示一个称为“单步执行宏”的对话框。据此可以观察一个操作执行前的执行状态。图9-5-1所示即为“预览教材预订数据报表”宏中第一个操作“OpenForm”的执行参数,它表明:执行条件为“真”,并将以普通窗体形式打开“教材预订信息编辑”窗体。在图9-5-1所示对话框中单击“单步执行”按钮,即可执行“OpenForm”操作。接着将准备执行“预览教材预订数据报表”宏中第二条操作“MsgBox”,这时,在“单步执行宏”的对话框中显示操作“MsgBox”的执行参数:执行条件为“真”,等等。如图9-5-2所示。
38、,9.5.2 单步执行宏操作,图9-5-2“预览教材预订数据报表”宏中第二条操作“MsgBox”的执行参数,9.5.2 单步执行宏操作,4“单步执行宏”对话框中各个按钮的功能“单步执行”按钮:单击该按钮后,Access将运行宏中的当前操作,如果没有错误发生,则Access将在“单步执行宏”对话框中显示下一个操作的名称及其操作参数。“停止”按钮:单击该按钮将终止宏的执行,并且关闭“单步执行宏”对话框。“继续”按钮:单击该按钮将放弃单步执行方式,依次执行宏中所有未执行的其他操作,同时取消宏的单步执行状态。如果要在宏执行过程中暂停宏的执行,然后再以单步执行宏,可按Ctrl+Break。,9.5.2
39、单步执行宏操作,如果在宏的设计中存在错误,则在按照上述过程单步执行宏时将会在窗口中显示“操作失败”对话框。Access将在该对话框中显示出错操作的操作名称、参数以及相应的条件。利用该对话框可以了解出错的操作,然后,单击“暂停”按钮进入“宏”设计视图窗口中以便对出错误进行相应的编辑修改。宏中的各个操作全部执行完毕之后,“单步执行宏”对话框自动关闭。记住:如果不再需要测试宏了,必须进入宏对象设计视图,从中单击窗口工具栏上的“单步”按钮,使其呈凸起形式,以此取消宏的单步执行状态。,9.6 Access宏对象的应用,Access数据库中的宏对象具有多种应用方式,例如,可以利用宏来生成VBA程序、利用一
40、个特殊的宏来使得一旦某一数据库对象被打开时即可首先执行一系列特定的操作、利用宏来响应组合式快捷键,等等,9.6.1 利用宏生成VBA程序代码,利用宏设计视图以人机对话的方式设计宏,然后将其转换为对应的VBA程序。Access数据库管理系统为此提供了两种方式,第一种方式已经在9.2节中介绍过了,此处介绍第二种方式。首先在数据库设计视图宏对象选项卡上选中需要转换为VBA程序的宏对象,然后在窗口菜单栏上依次单击【工具】|【宏】|【将宏转换为Visual Basic代码】命令,随即弹出“转换宏”对话框,单击其上的“转换”按钮“”,即完成了将宏转换为VBA程序的过程。,9.6.1 利用宏生成VBA程序代
41、码,例如,可以将“教材征订管理信息系统”数据库中的宏“预览教材预订数据报表”转换为对应的VBA程序。其操作过程为:在数据库设计视图宏对象选项卡上选中宏“预览教材预订数据报表”,在窗口菜单栏上依次单击【工具】|【宏】|【将宏转换为Visual Basic代码】命令,随即弹出的“转换宏”对话框如图9-6-1所示。,图9-6-1“转换宏”对话框,9.6.1 利用宏生成VBA程序代码,单击“转换”按钮,即可将宏对象“预览教材预订数据报表”转换成为一个名为“被转换的宏预览教材预订数据报表”的模块对象,其间包含着与宏“预览教材预订数据报表”的功能完全相同功能的VBA程序代码。在“转换宏”对话框中有两个选项
42、,选中后依次表示:转换形成的VBA程序中包含进行出错处理的On Error子程序段;转换形成的VBA程序中包含关于宏对象的注释。,9.6.2 Access的特殊宏对象AutoExec,如果在一个Access数据库中创建一个命名为“AutoExec”的宏对象,将得到这样一种效果:一旦这个数据库被打开,AutoExec宏对象中的第一个宏将得到执行。合理地使用这个命名为AutoExec的特殊宏对象,可在首次打开数据库时执行一个或一系列的操作,包括某些应用系统初始参量的设定、打开应用系统操作主窗口等等。可以在“教材征订管理信息系统”数据库中,设计一个名为“AutoExec”的宏对象。如图9-6-2所示
43、,其间包含一个操作:OpenForm 教材征订管理信息系统,acNormal,acNormal,9.6.2 Access的特殊宏对象AutoExec,图9-6-2“教材征订管理信息系统”数据库的自启动宏对象,9.6.2 Access的特殊宏对象AutoExec,在“教材征订管理信息系统”数据库中设置了这个名为“AutoExec”的宏对象之后,即可使得当打开“教材征订管理信息系统”数据库时,即会自动打开窗体对象“教材征订管理信息系统”的运行视图,而这个窗体是整个数据库应用系统的主控窗体。如果想在打开数据库时阻止自动运行“AutoExec”宏,可在打开数据库时按住SHIFT键不放开。除了可以利用“
44、AutoExec”宏实现打开数据库时自动运行一个应用程序以外,Access还提供另外一种实施方案:通过设置数据库设计视图窗口菜单栏上的【工具】|【启动】命令,在随即弹出的“启动”对话框中进行合适的选项设置。“启动”对话框如图9-6-3所示,其中,我们设置启动显示窗体为“教材征订管理信息系统”。,9.6.2 Access的特殊宏对象AutoExec,图9-6-3 用于设置启动程序的“启动”对话框,9.6.3 Access的特殊宏对象AutoKeys,在一般Windows应用程序中,为了使用剪贴板进行对象的复制粘贴操作,除了可以利用菜单选项或工具按钮实现以外,可能很多人都知道“C”是复制操作的组合
45、式快捷键、“V”是粘贴操作的组合式快捷键,且非常习惯于使用它们。(此处所写“C”表示同时按下“Ctrl”键和“C”键,后述均同此义)为了满足这种对于组合式快捷键的应用需求,Access提供了另一个特殊的宏对象名“AutoKeys”。在命名为“AutoKeys”的宏对象中,我们可以采用宏组的形式定义某些组合键按下后应该进行的操作,从而为Access数据库应用系统提供一整套组合式快捷键功能。,9.6.3 Access的特殊宏对象AutoKeys,例如,在“教材征订管理信息系统”数据库中,可以设计一个名为“AutoKeys”的宏对象,其间包含三个宏,每个宏包含一个“RunMacro”操作,分别定义:
46、“g”,“j”,“k”。在这个宏对象的支持下,按下上述任一组合键即可运行相应的宏,而这些宏又都分别包含打开某一个窗体对象的操作,因此使得打开相应窗体对象的操作可以采用上述快捷键的方式进行,从而方便了操作者的操作过程。“教材征订管理信息系统”数据库中的宏对象“AutoKeys”设计视图及其对应操作参数设置如图9-6-4所示。,9.6.3 Access的特殊宏对象AutoKeys,图9-6-3“AutoKeys”设计视图及其对应操作参数设置,9.7 习题,请分别说明记录操作类中各项操作名及其所需的相关操作参数与功能。请写出打开窗体与关闭窗体、打开报表与关闭报表的操作指令格式,以及操作中各项参数的取值与作用。请说明MsgBox操作中各项操作参数取值的作用。请说明宏对象的概念及其作用。可以将宏对象转换为相同功能的模块对象吗?进行这种转换的意义何在?如何进行这种转换操作?宏设计视图的设计区内最多可能有多少列?各列的名称以及应该填写的内容是什么?,9.7 习题,.在什么样的情况下,需要设置操作的执行条件?应该如何进行条件设置操作?.何谓宏组?宏组中的宏如何引用?.如何在一个宏中插入一个操作?如何在一个宏中删除一个操作?.请分别说明宏名为“AutoExec”与“AutoKeys”的Access宏对象的功能以及各自的适用场合。,