【任务引导】
宏是Access中的一个对象,是由一个或多个操作组成。它的一个操作是由一段程序(代码)构成,它的操作程序已经由Access系统生成,用户只需掌握宏操作的名称,不必关心程序的具体内容,宏能够自动执行一个或多个操作来完成一个或多个任务。如打开一个窗体,只要在宏中输入Open Form,执行宏就能打开一个指定的窗体。一个宏中可设计一个或多个操作,当宏中有多个操作时,按照从上到下的顺序执行。
【知识储备】
知识点1 宏设计窗口
创建宏时必须在宏设计窗口中进行。在“创建”选项卡中单击“宏与代码”组中的“宏”按钮,打开宏设计窗口,如图6-1所示。在“添加新操作”下拉列表中选择一个宏操作,或在“操作目录”窗格中选择一个宏操作双击,打开相应宏的设置参数框,然后进行设置。如选择OpenForm(打开窗体),在如图6-2中设置相应的参数。
图6-1 宏设计窗口1
图6-2 宏设计窗口2
知识点2 常用宏操作
Access 2010提供了70多种宏操作。用户可以利用这些宏操作设计出各种各样的应用程序。根据用途可将这些宏操作分为以下几类:
(1)信息提示。在程序运行过程中给出相关提示信息,如弹出提示消息框、发出声音等。
(2)对数据库对象进行操作。在任意视图模式中打开或关闭数据表、查询、窗体或报表及窗口操作。
(4)其他操作。如查找、复制、输出数据等。
详细的宏操作如表6.1所示。
表6.1 宏操作明细表
知识点3 宏的分类
Access中的宏对象可分为简单宏、条件宏和宏组3类。
(1)简单宏中有一个或多个宏操作,按照自上而下的顺序执行。
(2)条件宏是在对应的宏操作中写上要执行操作的条件,当满足条件时,该操作才执行,否则不执行,继续执行下一个操作。在Access2010中条件宏是使用If…EndIf的形式,If作为一个宏的操作,相应的操作是嵌套在If中。操作方法是先添加If操作,在If框中写上相应的条件,然后在If操作中添加相应的操作。
(3)宏组是由多个有宏名的操作组成的宏,宏组直接运行时,只有第一个宏运行,其余的宏不运行。要运行宏组中的宏,常常采用窗体或报表中触发控件的事件或菜单等方法。
知识点4 运行宏
宏创建后,只有运行宏才能完成其应有的功能,运行宏有以下几种方法:
(1)在导航窗格中,双击要运行的宏。
(2)在“数据库工具”选项卡中,单击“宏”组的“运行宏”按钮。
(3)在导航窗格中,右击要运行的宏,在快捷菜单中选择“运行”。
(4)当宏在设计窗口时,在“宏工具设计”选项卡的“工具”组中,单击“运行”按钮,或按F5键。
知识点5 自启动宏
宏名为autoexec的宏是一个特殊的宏,该宏可以在每次打开数据库时自动运行。若在打开数据库时不想运行它,可以在打开数据库的同时按住Shift键取消自启动宏的打开。
【工作任务】
【案例6-1】创建一个简单宏“退出系统”,运行宏后显示一个“感谢您的使用,再见!”的消息框,然后关闭消息框的同时关闭Access系统。
【案例效果】图6-3是退出系统消息框,通过本案例可以学会创建简单宏的方法,并会用消息框制作提示信息。
图6-3 退出系统消息框
【设计过程】
(1)打开“教学管理”数据库,在“创建”选项卡的“宏与代码”组中单击“宏”按钮,打开如图6-1所示的设计器。
(2)在“添加新操作”下拉列表中选择“MessageBox”,在“消息”框中输入“感谢您的使用,再见!”;在“发嘟嘟声”框中选择“是”,当弹出消息框时发出嘟声;在“类型”框中选择“信息”,以在消息框中显示消息图标;在“标题”框中输入“退出系统”,以在消息框中显示标题。
(3)在“添加新操作”下拉列表中选择“QuitAccess”,在“选项”下拉列表中选择“退出”,设计器中的内容如图6-4所示,保存并关闭“退出系统宏”。
图6-4 退出系统宏设计器
【案例6-2】利用宏启动登录窗口,在登录窗口中,当输入正确的用户名“user”和密码“123456”时,单击“登录”按钮,显示一个“欢迎使用教学管理系统”消息框,同时关闭登录窗口;当输入的用户名和密码不正确时,显示“您输入有误,请重新输入”消息框,同时将用户名和密码框置空。
【案例效果】图6-5是登录窗口。通过本案例可以学会条件宏的制作方法,利用窗体控件设置宏的操作条件和使用窗体控件运行宏。
图6-5 登录窗口
【设计过程】
(1)首先在窗体设计视图中制作登录窗体,窗体由2个标签、2个文本框和2个命令按钮组成,如图6-6所示。窗体格式如图6-7所示,“密码”文本框数据格式为“掩码”方式。
图6-6 登录窗体设计视图
图6-7 登录窗体格式
(2)制作“登录”宏。根据本任务的要求,当满足条件时操作才能执行,为此该宏必须是一个条件宏。当设计一个条件宏时,操作是嵌套在“If…End If”中的。在“创建”选项卡的“宏与代码”中,单击“宏”按钮,打开宏设计器,按以下设置宏操作:
①OpenForm
窗体名称:登录
视图:窗体
窗体模式:普通
②条件(If):[Forms]![登录]![用户名]="user" And [Forms]![登录]![密码]="123456"
MessageBox
消息:欢迎使用教学管理系统
发嘟嘟声:是
类型:信息
标题:欢迎
③条件(If):[Forms]![登录]![用户名]="user" or [Forms]![登录]![密码]<>"123456"
MessageBox
消息:您输入有误,请重新输入!
发嘟嘟声:是
类型:警告!
标题:出错了
④条件(If):[Forms]![登录]![用户名]="user" or [Forms]![登录]![密码]<>"123456"
SetLocalVal
名称:[Forms]![登录]![用户名]
表达式:“”
⑤条件(If):[Forms]![登录]![用户名]="user" or [Forms]![登录]![密码]<>"123456"
SetLocalVal
名称:[Forms]![登录]![密码]
表达式:“”
⑥Close(www.xing528.com)
对象类型:窗体
对象名称:登录
保存:提示
结果如图6-8所示,保存宏为“登录(宏启动)”,关闭宏设计器。
图6-8 登录宏设计器
(4)在“登录”窗体设计视图中,右击“登录”按钮,在属性表窗口中选择“单击”事件为“登录”宏,如图6-9所示。
图6-9 登录按钮事件
(5)在“登录”窗体设计视图中,右击“退出系统”按钮,在属性表窗口中选择“单击”事件为“退出系统”宏,如图6-10所示。
图6-10 退出系统按钮事件
(6)保存并关闭“登录”窗体。运行“登录(宏启动)”宏,将打开如图6-5登录窗口,当输入正确的用户名和密码,单击“登录”按钮时,会弹出“欢迎”消息框,当输入不正确时,会弹出“出错了”消息框。
【案例6-3】利用宏创建一个学生成绩等级判断窗口,当成绩在一个等级范围内时,显示该等级的信息。成绩大于90为“优秀”;成绩大于等于80小于90为“良好”;成绩大于等于60小于80为及格;成绩小于60为“不及格”。
【案例效果】图6-11是学生成绩等级判断窗口。通过本案例的学习可以进一步熟练条件宏的创建和应用。
图6-11 学生成绩判断窗口
【设计过程】
(1)首先在窗体设计视图中制作“学生信息”窗体,窗体中有6个标签、6个文本框和3个命令按钮组成,如图6-12所示。窗体中文本框数据来源为“显示学生成绩”查询。
图6-12 学生信息窗体
(2)制作“判断成绩等级”宏。根据本任务的要求,成绩区间不同,显示的等级不同,必须创建条件宏。打开教学管理数据库,在“创建”选项卡中,打开宏设计器,在宏设计器中按照下列步骤设置宏操作,宏设计器中的内容如图6-13所示。
①OpenForm
窗体名称:学生信息
视图:窗体
窗体模式:普通
②条件:[Forms]![学生信息]![成绩]>=90
MsgBox
消息:成绩为“优秀”
发嘟嘟声:是
类型:无
标题:成绩等级
③条件:[Forms]![学生信息]![成绩]<90 And [Forms]![学生信息]![成绩]>=80
MsgBox
消息:成绩为“良好”
发嘟嘟声:是
类型:无
标题:成绩等级
④条件:[Forms]![学生信息]![成绩]<80 And [Forms]![学生信息]![成绩]>=60
MsgBox
消息:成绩为“及格”
发嘟嘟声:是
类型:无
标题:成绩等级
⑤条件:[Forms]![学生信息]![成绩]<60
MsgBox
消息:成绩为“不及格”
发嘟嘟声:是
类型:无
标题:成绩等级
⑥StopMacro停止宏。当本宏运行一遍后要停止等待下一条记录的学生成绩。
保存宏为“判断成绩等级”,关闭宏设计器。
图6-13 判断成绩等级宏设计器
(3)在“学生信息”窗体设计视图中,右击“判断成绩等级”按钮,在属性表窗口中选择“单击”事件为“判断成绩等级”宏,保存并关闭“学生信息”窗体。
(4)运行“判断成绩等级”宏,将打开如图6-11“学生成绩等级判断”窗口,单击“判断成绩等级”按钮,按照每个学生成绩的范围,显示相应的等级信息。单击“下一记录”或“上一记录”来查看每个学生的成绩等级。
【案例6-4】创建学生统计宏组。由“各班人数”宏、“选课成绩总分大于300”、“学生平均成绩和最高成绩”宏组成,能够分别统计各班人数和选课成绩总分大于300的学生信息和成绩及学生平均成绩和最高成绩。该宏组由一个窗体中的3个命令按钮分别运行。
【案例效果】该案例的宏组打开“班级人数”、“选课成绩大于300”2个窗体和“学生成绩汇总表”查询组成,宏组由“学生统计”窗体中的三个命令按钮分别引导运行。通过本案例可以学会创建宏组的方法。
【设计过程】
(1)首先制作学生统计窗体,如图6-14所示。
图6-14 “学生统计”窗体
(2)制作“学生统计”宏组。在“创建”选项卡中,打开宏设计器,在右侧的“操作目录”中双击“Submacro”,添加第一个带子宏的操作,“子宏:(宏名)”为“班级人数”,在子宏中添加“OpenForm”操作,窗体为“各班人数”;用同样的方法添加第二个带子宏的操作,宏名为“选课成绩总分大于300”,添加操作为“打开总分大于300”的学生窗体;添加第三个带子宏的操作,宏名为“学生平均成绩和最高成绩”,添加新操作选择“OpenQuery”,查询名称为“学生成绩汇总表查询”,如图6-15所示,保存并关闭宏。
图6-15 “学生统计”宏组设计器
(3)将“学生统计”窗体中的“班级人数”按钮的单击事件设置为宏“学生统计.班级人数”;将“选课总成绩大于300”按钮的单击事件设置为宏“学生统计.选课成绩总分大于300”,将“学生平均成绩和最高成绩”按钮的单击事件设置为宏“学生平均成绩和最高成绩”。
(4)运行“学生统计”窗体,单击“班级人数”按钮,打开各班人数窗体,如图6-16所示。
图6-16 班级人数窗体
(5)在“学生统计”窗体中,单击“选课总成绩大于300”按钮,打开选课总成绩大于300窗体,如图6-17所示。
图6-17 “总分大于300的学生”窗体数据表视图
(6)在“学生统计”窗体中,单击“学生平均成绩和最高成绩”按钮,打开“学生成绩汇总表查询”,如图6-18所示。
图6-18 “学生成绩汇总表查询”
【实战演练】
1.创建一个宏。功能为打开“学生表”、“教师表”和“选课表”三个数据库表。
2.创建学生查询宏组查询学生信息。学生查询宏组数据来源:案例3-6“按学号查询”、案例3-7“按姓氏查询”、案例3-8“按性别和政治面貌查询”。通过图6-19所示窗体中的按钮运行宏组。
图6-19 学生查询
【任务评价】
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。