7.1 宏的设计视图
宏是组织Access数据库对象的工具。尽管表、查询、窗体和报表等数据库对象,均具有强大的数据处理功能,能够独立完成数据处理的特定任务,但是它们相互独立,无法相互调用。利用“宏”可以方便灵活地把这些对象有机地整合起来,协调一致地自动完成指定的任务。不难看出:宏是Access的灵魂。
宏是一组有序的操作命令的集合。每个操作命令可以完成指定的数据管理任务,而且每个操作均由Access提供,不需要用户编写。因此可以把宏看作一种简化的编程语言。
例如:由OpenForm、MessageBox和CloseWindow 3个操作组成的宏,可以自动完成“打开窗体”“弹出提示信息”和“关闭窗体”3个数据管理任务。
利用宏,不但可以自定义工作环境,而且可以连接多个窗体/报表、设置窗体/报表属性、自动查找/筛选记录、自动数据校验等。具体功能如下:
(1)显示和隐藏工具栏。
(2)打开和关闭表、查询、窗体和报表。
(3)执行报表的预览和打印,报表中数据的发送等操作。
(4)设置窗体,或者报表中控件的值。
(5)设置工作区中,任意窗口的大小,执行窗口移动、缩小、放大和保存等操作。
(6)执行查询操作,以及数据的过滤和查找。
(7)设置数据库的一系列操作,简化工作。
7.1.1 宏的设计视图
创建宏的最佳环境是宏的“设计视图”。启动方法:单击“创建”选项卡,在“宏与代码”组中,单击“宏”按钮。
宏的“设计视图”如图7.1所示。
图7.1 宏的设计视图
宏的设计环境包括“宏工具”“设计视图”(即宏生成器)和“操作目录”等3个部分。
(1)宏工具:在“宏工具”中,提供了“设计”上下文选项卡,以及“工具”“折叠/展开”和“显示/隐藏”等3个“组”。操作方法:单击“宏工具”的“设计”上下文选项卡。
“工具”组的“运行”按钮,可以运行当前“宏”。
“折叠/展开”组的“展开操作”和“折叠操作”等按钮,可以展开和折叠当前宏。
“显示/隐藏”组的“操作目录”,可以显示和隐藏宏命令的“操作目录”。
(2)设计视图:在设计视图(宏生成器)中,显示带有“添加新操作”的下拉组合框,其左侧显示一个绿色的加号“+”。操作方法如下。
单击“下拉组合框”,会弹出一个包含所有宏操作命令的列表,在列表中,单击指定的操作命令(或者双击“操作目录”中的指定操作命令),可以添加一个宏操作,如图7.2所示;然后,通过该操作提供的多个选项,再进一步设置相关的参数。
图7.2 设计视图—打开窗体和查询
单击绿色的“上移”和“下移”按钮,可以改变操作命令的执行顺序。
单击“加号”和“减号”按钮,可以展开或者折叠当前宏的操作命令。
单击黑色的“删除”按钮,可以删除当前宏命令。
(3)操作目录:包括搜索栏、命令区和帮助区3部分组成。
①搜索栏:在文本框中,输入需要搜索的命令的部分或者全部名称,则在命令区会快速显示相应的宏操作命令。
②命令区:按照“程序流程”“操作”和“在此数据库中”3个大类,给出了所有的宏操作命令。
“程序流程”:给出了用于控制程序流程的4个控制命令。
“操作”:按照8个子类,给出了66个功能丰富的操作命令。
“在此数据库中”:按照“窗体”和“宏”2个子类,给出了当前数据库中用户创建的可以调用的所有窗体和宏。
▲技巧:在“命令区”中,双击“操作目录”中的指定操作命令,可以快速向“设计视图”中,添加一个宏操作命令。
③帮助区:当用户在“命令区”,选择了指定的操作命令时(例如:CloseWindow),如图7.1所示,则在帮助区,会自动显示相关命令的帮助信息。通过“帮助区”,可以快速了解和掌握宏命令的使用方法。
7.1.2 常用宏操作
在Access 2010的宏的“操作目录”中,按照“窗口管理”“宏命令”“筛选/查询/搜索”“数据导入/导出”“数据库对象”“数据输入操作”“系统命令”“用户界面命令”和“程序流程”等9个分类,共提供了66个功能丰富的操作命令和4个程序流程控制命令。常用的宏操作及其功能如下:
7.1.2.1 窗口管理
(1)CloseWindow:关闭指定的窗口。如果没有指定窗口,则关闭当前激活的窗口。
(2)MaximizeWindow:最大化当前窗口。放大当前窗口,以填满Access窗口。
(3)MinimizeWindow:最小化当前窗口。缩小当前窗口为Access窗口底部的标题栏。
(4)MoveAndSizeWindow:移动当前窗口,或者调整当前窗口的大小。
(5)RestoreWindow:还原当前窗口。把最大(小)化窗口,还原为原来的大小。
7.1.2.2 宏命令
(1)RunDataMacro:运行指定的数据宏。
(2)RunMacro:根据预定的条件,按照指定的次数,重复运行指定的宏。
(3)RunMenuCommand:运行Access内置的菜单命令。
(4)RunCode:调用Visual Basic for Applications(VBA)的Function过程。
(5)StopAllMacros:停止当前正在运行的所有宏。
(6)StopMacro:停止当前正在运行的宏。
7.1.2.3 筛选/查询/搜索
(1)FindNextRecord:查找符合条件的最近的FindRecord操作指定的,或者与“查找”对话框(在“开始”选项卡上单击“查找”)中的值匹配的下一个记录。可以查找重复记录。
(2)FindRecord:在当前激活的窗体或者表中,查找符合条件的首(下一个)记录。
(3)OpenQuery:打开指定的查询。
(4)Requery:重新查询。刷新当前查询窗口的记录数据。
(5)RefreshRecord:刷新当前窗体(表)的当前记录。
(6)SearchForRecord:在表、查询、窗体或报表中搜索特定的记录。
(7)ShowAllRecords:显示当前表(查询/窗体)中的所有记录。
7.1.2.4 数据导入/导出
(1)ExportWithFormatting:把指定的数据库对象(表/窗体/报表)中的数据输出为Excel和文本等多种格式的数据。
(2)SaveAsOutlookContact:把当前记录另存为Outlook联系人。
(3)WorldMailMerge:执行“邮件合并”操作。
7.1.2.5 数据库对象
(1)GoToControl:把焦点移至当前表(窗体)中,指定的字段(控件)。
(2)GoToPage:把焦点移至当前窗体,指定页的第1个控件。
(3)GoToRecord:把表(窗体/查询)中的指定记录,设置为当前记录。
(4)OpenForm:打开指定窗体。
(5)OpenReport:打开指定报表。
(6)OpenTable:打开指定表。
(7)PrintObject:打印当前对象。
(8)PrintPreview:当前对象的“打印预览”。
(9)SelectObject:选择指定的数据库对象。
(10)SetProperty:设置控件的属性。
7.1.2.6 数据输入操作
(1)DeleteRecord:删除当前记录。
(2)EditListItems:编辑查阅列表中的项。
(3)SaveRecord:保存当前记录。
7.1.2.7 系统命令
(1)Beep:使计算机发出嘟嘟声。一般用于警告声。
(2)CloseDatabase:关闭当前数据库。
(3)DisplayHourglassPointer:执行宏时,把光标变为沙漏。执行结束自动恢复。
(4)QuitAccess:退出Access系统。
7.1.2.8 用户界面命令
(1)AddMenu:为窗体(报表/Access窗口),添加自定义菜单或者快捷菜单。
(2)MessageBox:显示含有警告或者提示信息的消息框。
(3)Redo:重复最近的用户操作。
(4)UndoRecord:撤销最近的用户操作。
7.1.2.9 程序流程
(1)Comment(注释):为宏操作添加注释信息。在宏中,不执行注释语句。
操作方法:在“单击此处以键入注释”的文本框中,输入注释信息。如图7.3所示。完成的注释操作,以“/*”开始,以“*/”结束,中间是注释信息,颜色为绿色。
图7.3 宏的注释
(2)组:为了使宏的结构更加清晰整洁,通常把有一定关系(或者完成指定功能)的若干个操作命令划分为一组,并为每个组单独命名。组可以折叠(展开),从而增加了宏的可读性。
组的结构:以“Group:组名”开始(独占一行),以“End Group”结束(独占一行),两者之间是宏操作序列。如图7.4所示。
图7.4 宏中组的结构
(3)选择操作:在宏中,宏操作命令的执行顺序,通常是按照操作命令的先后顺序自动执行的。如果若干个操作命令,需要根据指定的条件来决定是否被执行,则需要使用具有选择结构的条件宏操作。
条件宏的结构:以“If条件表达式Then”开始(独占一行),以“Else”中间分隔(独占一行),以“End If”结束(独占一行),三者之间是宏操作序列。如图7.5所示。
条件宏的执行:首先判断“条件表达式”是否成立;如果条件成立(真),则执行“If条件表达式Then”和“Else”之间的操作命令;否则执行“Else”和“End If”之间的操作命令。“Else”是可选项。对于省略“Else”的情况,如果条件成立(真),则执行“If条件表达式Then”和“End If”之间的操作命令;否则不执行操作。
▲注意:对于“If…Else…End If”结构,则在“If…Else”和“Else…End If”中,只能二选一,执行一个操作序列,即选择结构。
图7.5 条件宏的结构
(4)子宏:包含在宏中的宏。一个宏可以包含一个或者多个子宏。每个“子宏”均有单独的名称,并且可以单独运行。使用子宏可以更方便地进行数据管理。
例如:在使用“宏”,创建“自定义菜单”时,则可以在一个宏中,创建多个子宏,每个子宏对应一个菜单项。
子宏的结构:以“子宏:宏名”开始(独占一行),以“End Submacro”结束(独占一行),两者之间是宏操作序列。如图7.6所示。
图7.6 子宏的结构
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。