1、Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,第7章 宏,主要内容,7.1 宏的应用,7.2 有关宏的其他操作,宏是,Access,数据库的一些常用操作的集合,宏可以自动完成数据库的常规任务,在,Access2003,中,一共有,56,个宏操作,利用宏打开窗体,任务说明:宏最常用的操作是打开、关闭数据库内的数据表、查询、窗体、报表等对象。,关键技术:宏的建立;宏的执行;,OpenForm,宏操作。,设计步骤:新建,“,读者信息,”,与,“,读者借书信息,”,两个窗体;新
2、建宏,添加两个宏操作打开建立的窗体;在,Access,数据库窗口内执行宏。,7.1 宏的应用,7.1.1 宏的建立与执行,任务,7-1,任务解决过程:,新建窗体:参考以下两图新建,“,读者信息,”,和,“,读者借书信息,”,窗体。,建立,“,读者信息,”,宏:打开,“,图书管理系统,”,数据库,单击,“,宏,”,对象进入宏窗口,单击,“,新建,”,命令按钮打开宏设计窗口。在新建的宏中添加如下表所示操作。,操作,操作参数,注释,OpenForm,窗体名称:读者信息,视图:窗体,窗口模式:普通,打开“读者信息”窗体。,OpenForm,窗体名称:读者借书信息,视图:窗体,窗口模式:普通,打开“读者
3、借书信息”窗体。,运行宏:在,Access,数据库窗口的,“,宏,”,对象列表内选择,“,读者信息,”,宏,单击,“,运行,”,按钮 将运行该宏并打开,“,读者信息,”,与,“,读者借书,”,信息窗体。,相关知识点,宏的设计视图分上、下两个部分。上半部分为,“,设计网格区,”,,下半部分为,“,参数编辑区,”,。,常用的宏操作如下表所示,操作,说明,打开或关闭数据库对象,OpenTable,打开一个数据表,同时指定打开数据表的视图模式,指定数据编辑模式。,OpenForm,打开一个窗体,同时指定打开窗体的视图模式,筛选窗体内基本表的记录,指定窗体数据编辑模式与窗体窗口模式。,OpenRepor
4、t,打开一个报表,同时指定打开报表的视图模式,筛选报表内基本表的记录,指定报表窗口模式。报表默认的视图模式为“打印”,执行宏操作时将自动打印该报表。在多数情况下,应该把视图模式修改为“打印预览”。,OpenQuery,打开一个查询,同时指定打开查询的视图模式,指定查询的编辑模式。,Close,关闭数据库对象,如数据表、窗体、报表、查询、宏、数据页等。如果没有指定对象,则关闭活动窗口。,常用宏操作,常用宏操作,操作,说明,显示消息,Beep,通过计算机的扬声器发出嘟嘟声,用于提示错误或重大变化。,MsgBox,显示消息框。可以设置消息框的类型。,SetWarnings,用于可以打开或关闭系统警告
5、消息。,移动、查找、刷新记录,GotoRecord,移动已打开表、窗体或查询的当前记录。,FindRecord,查找活动的数据表、查询或窗体数据表内满足由,FindRecord,参数所指定的条件的记录。,FindNext,查找下一个符合前面,FindRecord,操作或“查找和替换”对话框(通过单击“编辑”菜单中的“查找”可以打开“查找和替换”对话框)中指定条件的记录。使用,FindNext,操作可以反复搜索记录。,Requery,更新活动,对象,指定,控件,中的数据。如果不指定控件,该操作将对对象本身的数据源进行重新查询。使用该操作可以确保活动对象或其所包含的控件显示的是最新数据。,常用宏操
6、作,操作,说明,显示模式控制,Maximize,放大活动窗口,使其充满,Microsoft Access,窗口。,Minimize,将活动窗口最小化为,Microsoft Access,窗口底部的小标题栏。,Restore,将处于最大化或最小化的窗口恢复为原窗口模式。,PrintOut,打印打开数据库中的活动对象,也可以打印数据表、报表、窗体和模块。,常用宏操作,操作,说明,运行与退出,RunMacro,运行宏。,RunSQL,运行,Microsoft Access,的操作查询或数据定义查询。,RunApp,运行基于,Microsoft Windows,或,MS-DOS,的应用程序,比如,Mi
7、crosoft Excel,、,Microsoft Word,或,Microsoft PowerPoint,。,StopMacro,终止当前正在运行的宏。,Quit,退出,Microsoft Access,。可以指定在退出,Access,之前是否保存数据库对象。,其他,SetValue,对,Microsoft Access,窗体、窗体数据表或报表上的字段、控件或属性的值进行设置。,GoToControl,把焦点移到打开的数据表、窗体、查询中当前记录的特定字段或控件上。此操作不能用于数据访问页。,CancelEvent,取消导致该宏运行的,Microsoft Access,事件。,在,“,读者信
8、息,”,窗体内添加一命令按钮,使得单击该按钮时执行宏操作打开,“,读者借书信息,”,窗体并显示,“,读者信息,”,表内当前读者的借书情况。,任务,7-2,任务说明:在窗体或报表的对象事件中引用宏是宏最主要的应用之一。本例的宏不仅可以打开窗体,还可以利用宏定位到窗体数据源的某条记录上。,关键技术:,GotoControl,宏操作、,FindRecord,宏操作。,设计步骤:添加宏,“,读者借书信息,”,使其打开,“,读者借书信息,”,窗体并显示,“,读者信息,”,窗体内当前读者的借书情况;在,“,读者信息,”,窗体上添加一个命令按钮,给命令按钮添加,“,单击,”,事件使单击时执行,“,读者借书信
9、息,”,宏。,任务解决过程:,建立,“,读者借书信息,”,宏:新建宏,在宏中添加如下表所示宏命令。,操作,操作参数,注释,OpenForm,窗体名称:读者借书信息,视图:窗体,窗口模式:普通,打开“读者借书信息”窗体。,GoToControl,控件名称:读者编号,将光标移动到“读者编号”文本框。,FindRecord,查找内容:,=Forms!,读者信息,.,读者编号,查找并显示与“读者信息”窗体中读者编号相同的记录。,在,“,读者信息,”,窗体上添加命令按钮并设置其单击事件属性:打开,“,读者信息,”,窗体的,“,设计视图,”,,在窗体页脚节添加一个命令按钮,单击数据库工具栏上的属性命令按钮
10、 打开属性对话框,设置命令按钮的,“,单击,”,事件执行宏,“,读者借书信息,”,,如下图所示。,运行窗体:打开,“,读者信息,”,窗体的,“,窗体视图,”,,单击,“,记录浏览,”,按钮查看不同的读者信息,单击,“,读者借书信息,”,按钮打开,“,读者借书信息,”,窗口并显示,“,读者信息,”,窗体内读者的借书情况。,相关知识点,如果宏的操作参数引用了其他窗体或报表对象的值,则需使用对象完整的引用格式,其形式如下:,Forms!,窗体名,!,对象名,Reports!,报表名,!,对象名,为了将,“,读者借书信息,”,窗体上显示的记录定位到与,“,读者信息,”,相同的读者上,需要首先通过,“,
11、GoToControl,”,宏操作将光标移动到,“,读者借书信息,”,窗体的,“,读者编号,”,文本框上,然后通过宏操作,“,FindRecord,”,查找与窗体,“,读者信息,”,上的,“,读者编号,”,内容相同的记录并显示该记录。,在宏中应用条件。,任务说明:可以给宏操作指定条件,只有当表达式为真时相应的宏操作才被执行。,关键技术:条件宏。,设计步骤:新建窗体;在窗体内添加一个选项组,选项组内加入三个单选按钮分别代表,“,图书信息,”,、,“,读者信息,”,、,“,图书借阅表,”,三个窗体;添加命令按钮,使单击时打开选项组中单选按钮选中的窗体。,7.1.2 在宏中应用条件,任务,7-3,任
12、务解决过程:,建立,“,打开数据表,”,窗体:新建窗体,在其中添加一个标签控件、一个选项组控件(选项组命名为,“,fraTable,”,)和一个命令按钮;在选项组中添加三个单选按钮,其选项值分别是,1,、,2,、,3,,其标签分别为,“,图书信息,”,、,“,读者信息,”,和,“,图书借阅表,建立,“,打开数据表,”,宏:新建宏,参考下表在其中添加三个,“,OpenTable,”,操作和一个,“,MsgBox,”,操作。,操作,操作参数,注释,OpenTable,表名称:图书信息表,视图:数据表,数据模式:编辑,打开“图书信息表”。,OpenTable,表名称:读者信息表,视图:数据表,数据模
13、式:编辑,打开“读者信息表”。,OpenTable,表名称:读者借阅表,视图:数据表,数据模式:编辑,打开“读者借阅表”。,MsgBox,消息:数据表已打开。,显示“数据表已打开。”消息框。,单击工具栏中的条件按钮 在宏中添加条件列。在各个,Opentable,操作中分别加入条件:,fraTable=1,、,fraTable=2,、,fraTable=3,,如下图所示。单击,“,保存,”,按钮保存宏,命名为,“,打开数据表,”,。,在,“,打开数据表,”,窗体中应用宏:打开,“,打开数据表窗体,”,的,“,设计视图,”,,选择,“,打开,”,命令按钮,单击数据库窗口的属性按钮 打开属性对话框。
14、在属性对话框内选择,“,事件,”,选项卡的,“,单击,”,事件,选择,”,打开数据表,”,宏。,执行宏:打开,“,打开数据表,”,窗体的,“,窗体视图,”,,选择,“,fraTable,”,选项组内的不同选项,单击,“,打开,”,命令按钮打开选择的表,单击,“,关闭,”,命令按钮关闭该表。,相关知识点:,如果宏中的条件引用了窗体或报表中的控件值,则在宏运行时需要首先打开被引用窗体的,“,窗体视图,”,或报表的,“,打印预览,”,视图。,如果相邻的宏操作引用同一条件,则需要在第一条宏操作的条件列输入条件表达式,其下宏操作的条件列内不必重新输入相同条件,只要键入三个相连的半角小数点,“,”,,表示
15、与上一条件相同即可。,在宏的条件中引用的,“,fraTable,”,是,“,打开数据表窗体,”,的选项组控件,其值,1,、,2,、,3,分别表示,“,读者信息表,”,、,“,图书信息表,”,、,“,读者借阅表,”,选项被选中的情况。例如,在,“,打开数据表窗体,”,的,“,窗体视图,”,内选择,“,读者信息表,”,,,fraTable,对象的值为,1,。此时执行宏,“,打开数据表,”,,第一个宏操作的条件成立,因而执行打开读者信息表操作,而其他两条宏操作由于条件不成立将不被执行。,应用宏组。,任务说明:把多个相关的宏合并在一起形成宏组既能使有关宏的操作变得简洁,也能够简化管理。,关键技术:宏组
16、7.1.3 宏组,任务,7-5,设计步骤:在,“,打开数据表,”,宏内添加,3,个,“,Close,”,宏操作和一个,“,MsgBox,”,宏操作,,“,Close,”,操作分别关闭,“,图书信息,”,、,“,读者信息,”,、,“,图书借阅表,”,窗体;给,3,个,“,Close,”,操作添加条件以关闭,“,打开数据表,”,窗体内选中的数据表;将,“,打开数据表,”,宏升级为宏组,其中的,“,Open,”,宏包含打开各表的宏命令,,“,Close,”,宏包含关闭各表的宏命令;给,“,打开数据表,”,窗体添加一个,“,关闭,”,命令按钮;设置,“,打开,”,命令按钮执行,“,打开数据表,”,
17、宏组的,“,Open,”,宏以打开各表,,“,关闭,”,命令按钮执行,“,打开数据表,”,宏组的,“,Close,”,宏以关闭各表。,任务解决过程:,在,“,打开数据表,”,宏中添加,“,Close,”,操作序列:打开,“,打开数据表,”,宏的,“,设计视图,”,,在原有宏操作序列的后面添加三个,Close,操作和一个,MsgBox,操作,操作,操作参数,注释,Close,对象类型:表,对象名称:图书信息表,保存:否,关闭图书信息表。,Close,对象类型:表,对象名称:读者信息表,保存:否,关闭读者信息表。,Close,对象类型:表,对象名称:读者借阅表,保存:否,关闭读者借阅表。,MsgB
18、ox,消息:数据表已关闭。,显示“数据表已关闭。”消息框。,给,“,Close,”,宏操作添加条件:分别给三个,“,Close,”,宏操作加入条件:,fraTable=1,、,fraTable=2,、,fraTable=3,。,将宏升级为宏组:单击工具栏中的宏组按钮 在宏中添加宏组列,在,“,OpenTable,”,宏序列第一个宏操作的宏组列内键入,“,Open,”,宏名。在,“,Close,”,宏序列第一个宏操作的宏组栏内键入宏名,“,Close,”,,如下图所示。,在,“,打开数据表窗体,”,内添加,“,关闭,”,命令按钮并应用宏:打开,“,打开数据表窗体,”,的,“,设计视图,”,,添加
19、命令按钮,设置其显示标题为,“,关闭,”,。,打开,“,关闭,”,按钮的属性对话框,设置其,“,单击,”,事件执行宏,“,打开数据表,.Close,”,。,修改命令按钮,“,打开,”,的单击事件为执行宏,“,打开数据表,.Open,”,,单击保存命令按钮保存,“,打开数据表窗体,”,。,查看宏的运行:保存并关闭宏组,打开,“,打开数据表窗体,”,的,“,窗体视图,”,,分别选择,“,读者信息表,”,、,“,图书信息表,”,或,“,读者借阅表,”,选项,单击,“,打开,”,按钮将打开选中的数据表,单击,“,关闭,”,按钮将关闭选中的数据表。,宏组不能直接运行,需要在窗体的命令按钮事件中添加宏组中
20、的一个宏,运行窗体时,单击命令按钮来执行宏;,宏组中的某一个宏可以采用,【,宏组名,.,宏名,】,的形式在相关对象的事件属性中调用。,相关知识点:,Access,数据库被打开时,系统会自动查找数据库内名为,Autoexec,的宏,若有,将自动执行该宏。因此将打开数据库时需要执行的操作,如打开窗体、报表等添加到一个宏中,命名该宏为,Autoexec,,宏中的操作序列将在打开数据库时自动执行。,7.2 有关宏的其他操作,7.2.1 自动运行宏,宏的运行方法,直接运行宏,对于简单的操作序列宏,可以通过宏设计窗口中的,“,运行,”,按钮、,“,运行,”,菜单中的,“,运行,”,命令或在数据库窗口中双击
21、宏名来执行;,在窗体、报表或控件的事件发生时运行宏,通过在窗体、报表及其控件的事件中置入具有一定功能的宏对象,使得窗体、报表及其控件能够响应事件以完成特定的操作。,自动运行宏,通过将一个宏命名为,AutoExec,,可实现在打开数据时自动运行宏。,创建启动窗体,Access,除了自动运行宏以外,可以设置数据库打开时自动启动的窗体或数据页。,7.2.2 创建启动窗体,任务,7-5,建立,“,欢迎,”,窗体。,任务说明:,Access,除了自动运行宏,Autoexec,以外,还可以设置数据库打开时自动启动的窗体或数据访问页。数据库系统可以通过设置自动启动窗体,使数据库启动时自动进入数据库系统主界面
22、关键技术:启动窗体,任务解决过程:,建立,“,欢迎,”,窗体:参照下图建立窗体,保存为,“,欢迎,”,窗体。,设置,“,欢迎,”,为启动窗体:单击数据库,“,工具,”,菜单下的,“,启动,”,命令打开,“,启动,”,对话框,在,“,启动,”,对话框内的,“,显示窗体,/,页,”,下拉框内选择,“,欢迎,”,窗体。,单击,“,确定,”,保存启动设置。数据库重新启动时将会自动打开,“,欢迎,”,窗体的,“,窗体视图,”,。,相关知识点,如果数据库中包含了,Autoexec,宏,但在启动数据库时不希望执行该宏,可以在数据库被打开的时候按下,“,Shift,”,键,启动完成后再释放,“,Shift
23、键。则,Autoexec,宏不执行。,任务说明:宏操作实际上是一些,Access,数据库的命令,执行对数据库常用的操作和管理。而对数据库更为全面细致的操作只能通过,Visual Basic for Application,(,VBA,)程序代码来实现。,Access,提供了将宏操作转换为,VBA,程序代码的工具。,关键技术:将宏转换为,VBA,程序代码。,将“读者信息”宏转换为模块。,任务,7-6,任务解决过程:,打开数据库,单击,“,宏,”,对象进入宏窗口,选择要转换为,VBA,程序代码的宏;单击,“,工具,”,菜单下的,“,宏,”,将宏转换为,Visual Basic,代码,”,命令。在打开的,“,转换,”,对话框内单击,“,转换,”,按钮。系统将进入,VBA,环境,并显示由宏转变的程序代码。,学习要点,掌握创建宏的各种方法,操作序列宏,条件操作宏,宏组,运行宏的多种方式,创建,启动窗体,的方法,






