《Access2010数据库基础与应用教程第7章宏.pptx》由会员分享,可在线阅读,更多相关《Access2010数据库基础与应用教程第7章宏.pptx(74页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1第第7 7章章 宏宏Access2010Access2010数据库基础与应用教程数据库基础与应用教程(第(第2 2版版)第第7 7章章 宏宏本章主要内容本章主要内容7.1 7.1 宏概述宏概述7.2 7.2 创建宏创建宏7.3 7.3 宏的修改宏的修改7.4 7.4 运行宏和调试宏运行宏和调试宏7.5 7.5 宏与宏与Visual BasicVisual Basic21.1 1.1 宏概述宏概述宏是由一个或多个操作(即宏是由一个或多个操作(即Access的命令)组成的的命令)组成的集合,其中每个操作都实现特定的功能,例如集合,其中每个操作都实现特定的功能,例如:“OpenQuery”操作命令
2、可打开某个查询操作命令可打开某个查询“OpenForm”操作命令可打开某个窗体操作命令可打开某个窗体“OpenReport”操作命令可打印某个报表操作命令可打印某个报表在在Access2010中,如果按照宏创建时打开中,如果按照宏创建时打开“宏设计宏设计视图视图”的方法来分类,宏分为独立宏、嵌入宏和数据宏。的方法来分类,宏分为独立宏、嵌入宏和数据宏。3宏可以由一系列操作组成一个宏,宏也可以宏可以由一系列操作组成一个宏,宏也可以是由若干个子宏组成一个宏。每一个子宏都有自己是由若干个子宏组成一个宏。每一个子宏都有自己的宏名并且又可以由一系列操作组成。的宏名并且又可以由一系列操作组成。在宏中还可以包
3、含由在宏中还可以包含由IF条件表达式来控制操条件表达式来控制操作执行流程的逻辑块,用以确定在某些情况下运行作执行流程的逻辑块,用以确定在某些情况下运行宏时,是否执行某些操作。宏时,是否执行某些操作。对于独立宏,一个独立宏有其宏名,并在对于独立宏,一个独立宏有其宏名,并在“导导航窗格航窗格”的的“宏宏”对象列表中列出。如果该宏中含对象列表中列出。如果该宏中含有子宏,那么该宏中的每一个子宏都有子宏名。有子宏,那么该宏中的每一个子宏都有子宏名。47.1.1 7.1.1 宏设计视图宏设计视图尽管在创建独立宏、嵌入宏或数据宏时,用于打开尽管在创建独立宏、嵌入宏或数据宏时,用于打开“宏设计宏设计视图视图”
4、的方法不同,但是各种方法所打开的方法不同,但是各种方法所打开“宏设计视图宏设计视图”大体上大体上是一样的。是一样的。下面以独立宏的下面以独立宏的“宏设计视图宏设计视图”为例来作介绍。为例来作介绍。在打开某数据库后的在打开某数据库后的Access2010窗口中,单击窗口中,单击“创建创建”选选项卡上的项卡上的“宏与代码宏与代码”组中的组中的“宏宏”按钮,打开按钮,打开“宏设计视图宏设计视图”。在工作区上显出在工作区上显出“宏生成器宏生成器”窗格和窗格和“操作目录操作目录”窗格,并在功窗格,并在功能区上显出能区上显出“宏工具宏工具”下的下的“设计设计”上下文命令选项卡,如图上下文命令选项卡,如图7
5、-1所示。所示。在在“宏生成器宏生成器”窗格中,显出带有窗格中,显出带有“添加新操作添加新操作”占位符的占位符的下拉组合框,在该组合框的左侧还显出一个绿色的下拉组合框,在该组合框的左侧还显出一个绿色的字。字。57.1.1 7.1.1 宏设计视图(续)宏设计视图(续)67.1.1 7.1.1 宏设计视图(续)宏设计视图(续)在在“操作目录操作目录”窗格中,以树型结构分别列出窗格中,以树型结构分别列出“程序流程程序流程”、“操作操作”和和“在此数据库中在此数据库中”三个目录,及其下层的子目录或三个目录,及其下层的子目录或部分宏对象。部分宏对象。(1)程序流程)程序流程“程序流程程序流程”目录包括目
6、录包括Comment、Group、If和和Submacro。(2)操作)操作“操作操作”目录包括目录包括“窗口管理窗口管理”、“宏命令宏命令”、“筛选筛选/查查询询/搜索搜索”、“数据导入数据导入/导出导出”、“数据库对象数据库对象”、“数据输入数据输入操作操作”、“系统命令系统命令”和和“用户界面命令用户界面命令”等八个子目录(即等八个子目录(即8组),总共包含组),总共包含66个操作。个操作。(3)在此数据库中)在此数据库中在在“在此数据库中在此数据库中”目录中,将列出当前数据库中已有的目录中,将列出当前数据库中已有的宏对象。并且将根据已有宏的实际情况,还可能会列出宏对象宏对象。并且将根据
7、已有宏的实际情况,还可能会列出宏对象上层的上层的“报表报表”、“窗体窗体”及及“宏宏”等目录。等目录。77.1.2 7.1.2 常用的宏操作简介常用的宏操作简介Access2010提供了提供了66条操作命令,下面仅条操作命令,下面仅简单介绍其中的一些操作,供参考。简单介绍其中的一些操作,供参考。1.窗口管理窗口管理(1)CloseWindow关闭指定的窗口。如果无指定窗口,则关闭激活的窗口。关闭指定的窗口。如果无指定窗口,则关闭激活的窗口。(2)MaximizeWindow最大化最大化激活窗口,使其充满激活窗口,使其充满Access窗口。该操作可以使窗口。该操作可以使用户尽可能多地看到活动窗口
8、中的对象。用户尽可能多地看到活动窗口中的对象。(3)MinimizeWindow以以最小化激活窗口,使其缩小为最小化激活窗口,使其缩小为Access窗口底部的标题栏。窗口底部的标题栏。87.1.2 7.1.2 常用的宏操作简介(续)常用的宏操作简介(续)(4)MoveAndSizeWindow移动移动并调整激活窗口。并调整激活窗口。(5)RestoreWindow将将最大化或最小化窗口还原到原来的大小。最大化或最小化窗口还原到原来的大小。97.1.2 7.1.2 常用的宏操作简介(续)常用的宏操作简介(续)2.宏命令宏命令(1)CancelEvent取消导致该宏(包含该操作)运行的取消导致该宏
9、(包含该操作)运行的Access事件。事件。(2)ClearMacroError清除清除MacroError对象中的上一错误。对象中的上一错误。(3)OnError定义错误处理行为。定义错误处理行为。(4)RunCode执行执行VisualBasicFunction过程。过程。107.1.2 7.1.2 常用的宏操作简介(续)常用的宏操作简介(续)(5)RunDataMacro运行数据宏。运行数据宏。(6)RunMacro运行一个宏,还可以用该操作从其他宏中运行宏。运行一个宏,还可以用该操作从其他宏中运行宏。(7)RunMenuCommand执行执行Access菜单命令。菜单命令。(8)Sto
10、pAllMacros终止所有正在运行的宏。终止所有正在运行的宏。(9)StopMacros终止当前正在运行的宏。终止当前正在运行的宏。117.1.2 7.1.2 常用的宏操作简介(续)常用的宏操作简介(续)3.筛选筛选/查询查询/搜索搜索(1)FindRecord查找符合指定条件的第一条或下一条记录。查找符合指定条件的第一条或下一条记录。(2)OpenQuery打开选择查询或交叉表查询,或者执行动打开选择查询或交叉表查询,或者执行动作查询。查询可以在作查询。查询可以在“数据表数据表”视图、视图、“设计设计”视图或视图或“打印预览打印预览”中打开。中打开。127.1.2 7.1.2 常用的宏操作
11、简介(续)常用的宏操作简介(续)4.数据导入数据导入/导出导出(1)ExportWithFormatting将指定数据库对象中的数据输出为将指定数据库对象中的数据输出为Excel(.xls)、格式文本()、格式文本(.rtf)、文本)、文本(.txt)、)、HTML(.htm)或快照()或快照(.snp)格)格式。式。137.1.2 7.1.2 常用的宏操作简介(续)常用的宏操作简介(续)5.数据库对象数据库对象(1)GoToControl把焦点移到激活数据表或窗体上指定的字段或控件上。把焦点移到激活数据表或窗体上指定的字段或控件上。(2)GoToRecord在表、窗体或查询结果集中的指定记录
12、成为当前记录。在表、窗体或查询结果集中的指定记录成为当前记录。(3)OpenForm在在“窗体窗体”视图、视图、“设计设计”视图、视图、“打印预览打印预览”或或“数据表数据表”视图中打开窗体。视图中打开窗体。(4)OpenReport在在“设计设计”视图或视图或“打印预览打印预览”中打开报表,或立中打开报表,或立即打印该报表。即打印该报表。147.1.2 7.1.2 常用的宏操作简介(续)常用的宏操作简介(续)(5)OpenTable在在“数据表数据表”视图、视图、“设计设计”视图或视图或“打打印预览印预览”视图中打开表。视图中打开表。(6)PrintObject打印当前对象。打印当前对象。(
13、7)PrintPreview当前对象的当前对象的“打印预览打印预览”。157.1.2 7.1.2 常用的宏操作简介(续)常用的宏操作简介(续)(8)RepaintObject在指定对象上完成所有未完成的屏幕更新在指定对象上完成所有未完成的屏幕更新或控件的重新计算。如果没有指定对象,则在或控件的重新计算。如果没有指定对象,则在活动的对象上完成这些操作。活动的对象上完成这些操作。(9)SetProperty设置设置控件属性。控件属性。167.1.2 7.1.2 常用的宏操作简介(续)常用的宏操作简介(续)6.数据输入操作数据输入操作(1)DeleteRecord删除当前己录。删除当前己录。(2)E
14、ditListItems编辑查阅列表中的项。编辑查阅列表中的项。(3)SaveRecord保存当前己录。保存当前己录。177.1.2 7.1.2 常用的宏操作简介(续)常用的宏操作简介(续)7系统命令系统命令”(1)Beep使计算机发出嘟嘟声,以提醒用户注意。使计算机发出嘟嘟声,以提醒用户注意。(2)CloseDatabase关闭当前数据库。关闭当前数据库。(3)QuitAccess退出退出Access。可以从几种保存选项中选。可以从几种保存选项中选择一种。择一种。187.1.2 7.1.2 常用的宏操作简介(续)常用的宏操作简介(续)8.用户界面命令用户界面命令(1)AddMenu为窗体或报
15、表将菜单添加到自定义菜单栏。为窗体或报表将菜单添加到自定义菜单栏。(2)MessageBox显示显示含有警告或提示消息的消息框。含有警告或提示消息的消息框。(3)Redo重复最近的用户操作。重复最近的用户操作。(4)UndoRecord撤消最近的用户操作。撤消最近的用户操作。197.2 7.2 创建宏创建宏在在Access2010中,如果按照宏创建中,如果按照宏创建时打开时打开“宏设计视图宏设计视图”的方法来分类,宏可的方法来分类,宏可分为独立宏、嵌入宏和数据宏等三种类型。分为独立宏、嵌入宏和数据宏等三种类型。下面分别介绍各种类型宏的创建方法。下面分别介绍各种类型宏的创建方法。207.2.1
16、7.2.1 创建操作序列的独立宏创建操作序列的独立宏操作序列的独立宏一般只包含一条或多条操作和一操作序列的独立宏一般只包含一条或多条操作和一个或多个个或多个“注释(注释(Comment)”。宏执行时按照操作。宏执行时按照操作的顺序一条一条地执行,直到操作执行完毕为止。的顺序一条一条地执行,直到操作执行完毕为止。例例7-1在在“学生管理系统学生管理系统”数据库,创建一个操作序列数据库,创建一个操作序列的独立宏,该宏包含一条注释和三条操作命令。其中的注释的独立宏,该宏包含一条注释和三条操作命令。其中的注释的内容是的内容是“创建操作序列的独立宏创建操作序列的独立宏”,第一条操作命令,第一条操作命令“
17、OpenForm”是打开名为是打开名为“例例5-9浏览学生基本情况浏览学生基本情况”的窗的窗体,第二条操作命令体,第二条操作命令“MaximizeWindow”是自动将该打开的是自动将该打开的窗体最大化,第三条操作命令窗体最大化,第三条操作命令“MessageBox”是显出含有是显出含有“这是操作序列独立宏的例子!这是操作序列独立宏的例子!”消息的消息框。该宏的名称消息的消息框。该宏的名称是是“例例7-1操作序列的独立宏操作序列的独立宏”。217.2.1 7.2.1 创建操作序列的独立宏(例创建操作序列的独立宏(例7-1 7-1)227.2.2 7.2.2 创建创建含有含有If If块的条件操
18、作宏块的条件操作宏在在“宏生成器宏生成器”窗格中,单击窗格中,单击“添加新操作添加新操作”组合框右端的组合框右端的下拉按钮,弹出下拉按钮,弹出“操作操作”的下拉列表,单击的下拉列表,单击“If”项(或双击右项(或双击右侧侧“操作目录操作目录”窗格中窗格中“程序流程程序流程”子目录中的子目录中的“If”项),展项),展开开If块设计窗格,此时该块设计窗格,此时该If块设计窗格自动成为当前窗格并且由一块设计窗格自动成为当前窗格并且由一个矩形框围住,在个矩形框围住,在“If”的右边显出一个的右边显出一个“条件表达式条件表达式”的文本的文本框,用户可直接在该文本框中输入需要的一个条件表达式。框,用户可
19、直接在该文本框中输入需要的一个条件表达式。在该在该“If”所在行的下一行,显出一个(属于该所在行的下一行,显出一个(属于该If块范围的)块范围的)“添加新操作添加新操作”的组合框,用户可在该组合框中选定需要的操作的组合框,用户可在该组合框中选定需要的操作并展开该操作块设计窗格,同时在其下边,又显出一个(还属于并展开该操作块设计窗格,同时在其下边,又显出一个(还属于该该If块范围的)块范围的)“添加新操作添加新操作”的组合框,用户又可在该组合框的组合框,用户又可在该组合框中选定需要的操作并对该操作进行相应的设计,如此类推,在该中选定需要的操作并对该操作进行相应的设计,如此类推,在该If块内可设计
20、多个操作。块内可设计多个操作。237.2.2 7.2.2 创建创建含有含有If If块的条件操作宏(块的条件操作宏(表表7-17-1)使用下列表达式使用下列表达式执行该操作的条件执行该操作的条件 学系名称学系名称=数学系数学系 “数学系数学系”是运行该宏的窗体中是运行该宏的窗体中“学系名称学系名称”字段的值。字段的值。DCount(专业代码专业代码,专业专业)35 “专业专业”表的表的“专业代码专业代码”字字段的项数超过段的项数超过 35。DCount(*,订单明细订单明细,订单订单ID=Forms!订单订单!订单订单ID)3 “订单明细订单明细”表中的表中的“订单订单ID”字段值与字段值与“
21、订单订单”窗体的窗体的“订订单单ID”字段值匹配,字段值匹配,“订单明订单明细细”表中满足这一条件的记录表中满足这一条件的记录超过超过 3 条。条。发货日期发货日期 Between#2001年年2月月2日日#And#2001年年3月月2日日#执行此宏的窗体上的执行此宏的窗体上的“发货日发货日期期”字段值在字段值在 2001 年年 2 月月 2 日和日和 2001 年年 3 月月 2 日之间。日之间。Forms!产品产品!库存量库存量100 运行该宏的窗体上的运行该宏的窗体上的“国家或地区国家或地区”字段值是字段值是 UK,且在,且在“销售总数销售总数”窗体内的窗体内的“订货总数订货总数”字段值
22、大于字段值大于 100。国家或地区国家或地区 In(法国法国,意大利意大利,西班牙西班牙)And Len(邮政编码邮政编码)5 运行该宏的窗体上运行该宏的窗体上“国家国家/地区地区”字段值是法国、意大利或西班牙,字段值是法国、意大利或西班牙,且邮政编码的字符长度不等于且邮政编码的字符长度不等于 5。MsgBox(确认更改?确认更改?,1)=1 在在 MsgBox 函数显示函数显示“确认更改?确认更改?”的对的对话框中,单击话框中,单击“确定确定”按钮,按钮,MsgBox 函函数返回值为数返回值为1。如果在对话框中单击。如果在对话框中单击“取取消消”按钮,按钮,MsgBox 函数返回值为函数返回
23、值为2。257.2.2 7.2.2 创建创建含有含有If If块的条件操作宏(块的条件操作宏(例例7-2 7-2)例例7-2在在“学生管理系统学生管理系统”数据库中,创建一个含有数据库中,创建一个含有If块的独立宏,块的独立宏,If操作的条件表达式是操作的条件表达式是“MsgBox(”是否要打是否要打开查询开查询?“,1)=1”,当该条件表达式的值为,当该条件表达式的值为True(即单击了(即单击了由由MsgBox函数打开的对话框中的函数打开的对话框中的“确定确定”按钮)时,按钮)时,要依次执行两个操作,其中的第一个操作要依次执行两个操作,其中的第一个操作“OpenQuery”是打开名为是打开
24、名为“例例4-28查询女学生的基本信息查询女学生的基本信息”查询,第二查询,第二个操作个操作“Beep”是发出是发出“嘟嘟”声音。在声音。在If块结束之后(即块结束之后(即EndIf的下一行),还要添加另一个不属于该的下一行),还要添加另一个不属于该If块的块的MessageBox操作,该操作,该MessageBox操作是用于显出含操作是用于显出含有有“这是含有这是含有If块的独立宏例子!块的独立宏例子!”消息的消息框。该宏消息的消息框。该宏的名称是的名称是“例例7-2含含If块的独立宏块的独立宏”。267.2.2 7.2.2 创建创建含有含有If If块的条件操作宏块的条件操作宏(例(例7-
25、2 7-2 续续)277.2.2 7.2.2 创建创建含有含有If If块的条件操作块的条件操作宏宏(续续)-If -If块内含有块内含有ElseElse块块单击当前单击当前If块设计窗格的右下角的块设计窗格的右下角的“添加添加Else”按按钮,展开钮,展开Else块设计窗块设计窗格。格。如果如果If块中含有块中含有Else块,即该宏中含有块,即该宏中含有“IfThenElseEndIf”的程序代码块。当运行该宏时,如果的程序代码块。当运行该宏时,如果的的值为值为True便执行便执行Then后后中的操作,否则中的操作,否则(即(即的值为的值为False时)就执行时)就执行Else后后中的操作。
26、中的操作。287.2.2 7.2.2 创建创建含有含有If If块的条件操作块的条件操作宏宏(例(例7-3 7-3)例例例例7-37-3在在“学生管理系统学生管理系统”数据库中,创建一个含数据库中,创建一个含有有If块宏,并且在该块宏,并且在该If块中含有一个块中含有一个Else块。块。If操作的条操作的条件表达式是件表达式是“MsgBox(”是否是否要打开窗体要打开窗体?“,1)=1”,当该,当该条件表达式的值条件表达式的值为为True(即单击了由(即单击了由MsgBox函数打开函数打开的对话框中的的对话框中的“确定确定”按钮)时,执行按钮)时,执行“OpenForm”操操作,以作,以“窗体
27、窗体”视图打开名为视图打开名为“例例5-9浏览学生基本情况浏览学生基本情况”窗体,当该条件表达式的值窗体,当该条件表达式的值为为False(即单击了由(即单击了由MsgBox函数打开的对话框中的函数打开的对话框中的“取消取消”按钮)时,执按钮)时,执行行“OpenQuery”操作,以操作,以“数据表数据表”视图打开名为视图打开名为“例例4-27查询学生全部成绩查询学生全部成绩”查询。该宏的名称是查询。该宏的名称是“例例7-3含含有有If块及块及Else块的独立宏块的独立宏”。297.2.2 7.2.2 创建创建含有含有If If块的条件操作宏(块的条件操作宏(例例7-3 7-3 续)续)307
28、.2.3 7.2.3 使用使用GroupGroup对宏中的操作进行分组对宏中的操作进行分组在在“宏生成器宏生成器”中的中的“操作目录操作目录”窗格窗格里的里的“程序流程程序流程”目录中,有一项是目录中,有一项是Group。Group的功能是允许操作和程序流程在已命名、的功能是允许操作和程序流程在已命名、可折叠、未执行的块中分组可折叠、未执行的块中分组。在在一个宏中,把相邻相关的若干个操作分为一个宏中,把相邻相关的若干个操作分为一组,并对该分组给定一个有意义的组名,从而一组,并对该分组给定一个有意义的组名,从而可提高宏代码的可读性。宏中的分组不会影响该可提高宏代码的可读性。宏中的分组不会影响该宏
29、中操作的执行方式,宏中的分组也不能单独调宏中操作的执行方式,宏中的分组也不能单独调用或运行。在宏中,分组的主要目的是标识一组用或运行。在宏中,分组的主要目的是标识一组操作,帮助用户一目了然地了解宏的功能操作,帮助用户一目了然地了解宏的功能。317.2.3 7.2.3 使用使用GroupGroup对宏中的操作进行对宏中的操作进行分组分组(续(续)在在宏的宏的“宏生成器宏生成器”窗格中,使用窗格中,使用“程序流程序流程程”目录中的目录中的Group,可将该宏中的操作进行分,可将该宏中的操作进行分组组。每个每个分组分组Group块都是以块都是以“Group”表示该分表示该分组块开始,以对应的组块开始
30、,以对应的“EndGroup”表示该分组表示该分组块结束块结束。当当运行该宏时,若该宏中有多个分组,那么运行该宏时,若该宏中有多个分组,那么将按从上到下的分组顺序,分别对各个分组内所将按从上到下的分组顺序,分别对各个分组内所有操作按从上到下的顺序逐个执行,直至所有组有操作按从上到下的顺序逐个执行,直至所有组的所有操作都执行完毕为止。的所有操作都执行完毕为止。327.2.3 7.2.3 使用使用GroupGroup对宏中的操作进行分组对宏中的操作进行分组(续)(续)337.2.4 7.2.4 设置设置宏的操作参数宏的操作参数在在“宏生成器宏生成器”窗格中,当选择(弹出的)窗格中,当选择(弹出的)
31、“操作操作”的下拉列表中的某个操作时,便自动展的下拉列表中的某个操作时,便自动展开该操作设计窗格,此时该操作设计窗格自动成开该操作设计窗格,此时该操作设计窗格自动成为当前窗格并且由一个矩形框围住。在该操作设为当前窗格并且由一个矩形框围住。在该操作设计窗格中,需要设置该操作相关的参数。当然,计窗格中,需要设置该操作相关的参数。当然,不同的操作所拥有的参数及参数个数是不同的!。不同的操作所拥有的参数及参数个数是不同的!。347.2.4 7.2.4 设置设置宏的操作参数宏的操作参数在在“宏生成器宏生成器”窗格中,当选择(弹出的)窗格中,当选择(弹出的)“操作操作”的下拉列表中的某个操作时,便自动展的
32、下拉列表中的某个操作时,便自动展开该操作设计窗格,此时该操作设计窗格自动成开该操作设计窗格,此时该操作设计窗格自动成为当前窗格并且由一个矩形框围住。在该操作设为当前窗格并且由一个矩形框围住。在该操作设计窗格中,需要设置该操作相关的参数。当然,计窗格中,需要设置该操作相关的参数。当然,不同的操作所拥有的参数及参数个数是不同的!。不同的操作所拥有的参数及参数个数是不同的!。357.2.5 7.2.5 创建含子宏的独立宏创建含子宏的独立宏除了一个宏仅包含若干个操作之外,一个宏除了一个宏仅包含若干个操作之外,一个宏还可以包含若干个子宏,而每一个子宏又可包含还可以包含若干个子宏,而每一个子宏又可包含若干
33、个操作。每一个宏都有其宏名,每一个子宏若干个操作。每一个宏都有其宏名,每一个子宏都有其子宏名。引用子宏的格式是都有其子宏名。引用子宏的格式是“宏名宏名.子宏子宏名名”。通过在宏名后面键入一个英文的句点通过在宏名后面键入一个英文的句点“.”字符,再键入子宏名,可以引用宏中的子宏。例字符,再键入子宏名,可以引用宏中的子宏。例如,若要引用如,若要引用“学生信息学生信息”宏中的宏中的“学生成绩学生成绩”子宏,可键入:子宏,可键入:“学生信息学生信息.学生成绩学生成绩”。367.2.5 7.2.5 创建含子宏的独立宏创建含子宏的独立宏例例7-4在在“学生管理系统学生管理系统”数据库,创建数据库,创建一个
34、宏,该宏包含一个宏,该宏包含2个子宏。第个子宏。第1个子宏的宏名个子宏的宏名为为“查询子宏查询子宏”,该宏包括,该宏包括2个操作,主要用于个操作,主要用于打开打开“例例4-31统计全校学生总人数统计全校学生总人数”查询并使该查询并使该查询窗口最大化。第查询窗口最大化。第2个子宏的宏名为个子宏的宏名为“窗体子窗体子宏宏”,该宏包括,该宏包括2个操作,主要用于打开个操作,主要用于打开“例例5-7学系窗体学系窗体”窗体并发出窗体并发出“嘟嘟”声。该宏名为声。该宏名为“例例7-4含子宏的独立宏含子宏的独立宏”。377.2.5 7.2.5 创建含子宏的独立宏(例创建含子宏的独立宏(例7-4 7-4 续)
35、续)387.2.6 7.2.6 创建嵌入宏创建嵌入宏嵌入宏是嵌入在窗体或报表或其控件的事件属性嵌入宏是嵌入在窗体或报表或其控件的事件属性中的宏。创建嵌入宏有两种方法。中的宏。创建嵌入宏有两种方法。第一种方法是使用控件向导创建控件时,为执行第一种方法是使用控件向导创建控件时,为执行某种操作而对该控件的默认事件,某种操作而对该控件的默认事件,Access自动创建嵌自动创建嵌入宏,如第入宏,如第5章中章中“例例5-9浏览学生基本情况浏览学生基本情况”窗体中,窗体中,使用命令向导创建好使用命令向导创建好“下一个记录下一个记录”按钮后,该按钮的按钮后,该按钮的“单击单击”事件属性值被自动设置为事件属性值
36、被自动设置为嵌入的宏嵌入的宏。第二种方法是对某对象的某事件属性使用宏生成第二种方法是对某对象的某事件属性使用宏生成器创建嵌入宏,操作步骤请看下例。器创建嵌入宏,操作步骤请看下例。397.2.6 7.2.6 创建嵌入宏(续)创建嵌入宏(续)例例7-5在在“学生管理系统学生管理系统”数据库,创建一个名数据库,创建一个名为为“例例7-5含嵌入宏窗体含嵌入宏窗体”的窗体,该窗体包含一个名为的窗体,该窗体包含一个名为“txt1”的文本框和一个名为的文本框和一个名为“cmd1”并且其标题为并且其标题为“欢迎欢迎”的命令按钮。对该命令按钮的单击事件创建嵌入的命令按钮。对该命令按钮的单击事件创建嵌入宏,当运行
37、该窗体时,单击宏,当运行该窗体时,单击“欢迎欢迎”命令按钮,根据当命令按钮,根据当前时间所在的范围(前时间所在的范围(=12and=18)情况,)情况,在在txt1文本框中显出相应的文本框中显出相应的“早上好!欢迎光临!早上好!欢迎光临!”或或“下午好!欢迎光临!下午好!欢迎光临!”或或“晚上好!欢迎光临!晚上好!欢迎光临!”。407.2.6 7.2.6 创建嵌入宏(例创建嵌入宏(例7-57-5续)续)417.2.7 7.2.7 创建数据宏创建数据宏Access2010新增了数据宏。数据宏新增了数据宏。数据宏允许用户在表事件中添加逻辑。通过使用允许用户在表事件中添加逻辑。通过使用数据宏将逻辑附
38、加到您的数据中来增加代数据宏将逻辑附加到您的数据中来增加代码的可维护性,从而实现源表逻辑的集中码的可维护性,从而实现源表逻辑的集中化。数据宏包括下面几种宏:插入后、更化。数据宏包括下面几种宏:插入后、更新后、删除后、删除前、更改前。新后、删除后、删除前、更改前。427.2.7 7.2.7 创建数据宏(续)创建数据宏(续)例例7-6在在“学生管理系统学生管理系统”数据库中,为数据库中,为“课程课程”表创建一个表创建一个“更改前更改前”的数据宏,用于限的数据宏,用于限制输入的制输入的“学分学分”字段的值不得超过字段的值不得超过10。在。在“课程课程”表的表的“数据表视图数据表视图”中的学分字段输入
39、的中的学分字段输入的值超过值超过10(如(如12),然后单击),然后单击“保存保存”按钮时,按钮时,显出如图显出如图7-9所示的消息框。所示的消息框。437.2.7 7.2.7 创建数据宏(例创建数据宏(例7-6 7-6 续)续)图图7-7例例7-6的的“创建数据宏创建数据宏”菜单菜单447.2.7 7.2.7 创建数据宏(例创建数据宏(例7-6 7-6 续)续)图图7-8例例7-6的宏生成器窗格中的宏代码的宏生成器窗格中的宏代码457.2.8 7.2.8 创建自动执行的名为创建自动执行的名为AutoExecAutoExec的独立宏的独立宏如果在如果在Access数据库中创建了一个名为数据库中
40、创建了一个名为AutoExec的独立宏,那么在打开该数据库时将的独立宏,那么在打开该数据库时将首先自动执行该首先自动执行该AutoExec宏中的所有操作。适宏中的所有操作。适当设计当设计AutoExec宏对象,可以在打开该数据库宏对象,可以在打开该数据库时执行一些系列的操作,为运行该数据库应用系时执行一些系列的操作,为运行该数据库应用系统做好需要的初始化准备,如对初始参量赋予初统做好需要的初始化准备,如对初始参量赋予初值、打开应用系统的值、打开应用系统的“登录登录”窗体等等。窗体等等。467.2.8 7.2.8 创建自动执行的名为创建自动执行的名为AutoExecAutoExec的独立宏的独立
41、宏(续)(续)创建名为创建名为AutoExec的独立宏的方法与上的独立宏的方法与上述创建独立宏的方法相似,当保存该宏时,指定述创建独立宏的方法相似,当保存该宏时,指定宏名称为宏名称为AutoExec。该宏保存后,在导航窗格。该宏保存后,在导航窗格的宏对象列表中便含有的宏对象列表中便含有AutoExec项。项。请注意,如果在打开数据库时想阻止执行该请注意,如果在打开数据库时想阻止执行该AutoExec宏,可在打开该数据库时按住宏,可在打开该数据库时按住Shift键不放开,直到数据库打开为止。键不放开,直到数据库打开为止。477.3 7.3 宏的修改宏的修改对已经创建好的宏,可以打开该宏的对已经创
42、建好的宏,可以打开该宏的设计视图,在设计视图,在“宏生成器窗格宏生成器窗格”中,对原中,对原有的宏代码可进行编辑,如可添加新操作、有的宏代码可进行编辑,如可添加新操作、修改操作、删除操作、移动操作等等。修改操作、删除操作、移动操作等等。487.3.1 7.3.1 独立宏的修改独立宏的修改打开某个打开某个Access数据库后,右击数据库后,右击“导航窗格导航窗格”上的上的“宏宏”对象列表中的某个宏名,弹出快捷对象列表中的某个宏名,弹出快捷菜单,单击该快捷菜单中的菜单,单击该快捷菜单中的“设计视图设计视图”,便打,便打开该独立宏的开该独立宏的“宏设计视图宏设计视图”,并且在,并且在“宏生成宏生成器
43、窗格器窗格”中显出该宏的原有代码。此时,在中显出该宏的原有代码。此时,在“宏宏生成器窗格生成器窗格”中,对原有的宏代码可进行编辑修中,对原有的宏代码可进行编辑修改,如可添加新操作、修改操作、删除操作、移改,如可添加新操作、修改操作、删除操作、移动操作等等。动操作等等。497.3.2 7.3.2 嵌入宏的修改嵌入宏的修改打开某个打开某个Access数据库后,右击数据库后,右击“导航窗格导航窗格”上上的的“窗体窗体”对象列表中的某个窗体名,弹出快捷菜单,对象列表中的某个窗体名,弹出快捷菜单,单击该快捷菜单中的单击该快捷菜单中的“设计视图设计视图”,便打开该窗体的,便打开该窗体的“设计视图设计视图”
44、。双击某控件(或窗体选定器),显出其。双击某控件(或窗体选定器),显出其“属性表属性表”,在该,在该“属性表属性表”的事件列表中,单击属性的事件列表中,单击属性值为值为嵌入的宏嵌入的宏所在组合框右侧的所在组合框右侧的“”按钮,便打按钮,便打开该嵌入宏的开该嵌入宏的“宏设计视图宏设计视图”,并且在,并且在“宏生成器宏生成器”窗窗格中显出该嵌入宏的宏代码。此时,在格中显出该嵌入宏的宏代码。此时,在“宏生成器宏生成器”窗窗格中,对原有的宏代码可进行编辑修改,如可添加新操格中,对原有的宏代码可进行编辑修改,如可添加新操作、修改操作、删除操作、移动操作等等。作、修改操作、删除操作、移动操作等等。507.
45、3.3 7.3.3 数据宏的修改数据宏的修改打开某个打开某个Access数据库后,右击数据库后,右击“导航窗格导航窗格”上的上的“表表”对对象列表中的某个表名,弹出快捷菜单,单击该快捷菜单中的象列表中的某个表名,弹出快捷菜单,单击该快捷菜单中的“设设计视图计视图”,便打开该表的,便打开该表的“设计视图设计视图”,并在功能区上显出,并在功能区上显出“表表格工具格工具”下的下的“设计设计”命令选项卡,单击该命令选项卡,单击该“设计设计”选项卡上的选项卡上的“字段、记录和表格事件字段、记录和表格事件”组中的组中的“创建数据宏创建数据宏”按钮,弹出按钮,弹出“创建数据宏创建数据宏”命令下拉列表,(假定
46、原来已经创建了命令下拉列表,(假定原来已经创建了“更改前更改前”的数据宏)单击该下拉列表中的某一项(如的数据宏)单击该下拉列表中的某一项(如“更改前更改前”),打开),打开该表的(如该表的(如“更改前更改前”)“宏设计视图宏设计视图”,并且在,并且在“宏生成器宏生成器”窗格中显出该表的该(如窗格中显出该表的该(如“更改前更改前”)数据宏的宏代码。在)数据宏的宏代码。在“宏宏生成器生成器”窗格中,对原有的宏代码可进行编辑修改,如可添加新窗格中,对原有的宏代码可进行编辑修改,如可添加新操作、修改操作、操作、修改操作、删除操作、移动操作等等。删除操作、移动操作等等。517.3.4 7.3.4 宏中操
47、作的删除宏中操作的删除在在“宏生成器宏生成器”窗格中,单击宏代码中需要窗格中,单击宏代码中需要删除的操作名(如删除的操作名(如MessageBox),该操作的),该操作的设计窗格自动成为当前窗格并且由一个矩形框围设计窗格自动成为当前窗格并且由一个矩形框围住,该操作的设计窗格的右上角显出一个交叉的住,该操作的设计窗格的右上角显出一个交叉的“删除删除”按钮,此时单击该按钮,此时单击该“删除删除”按钮或者按按钮或者按键盘上的键盘上的“Delete”键,便可删除该操作(即删键,便可删除该操作(即删除该操作的当前设计窗格及其所属内容)。除该操作的当前设计窗格及其所属内容)。527.3.5 7.3.5 宏
48、中操作的移动宏中操作的移动在在“宏生成器宏生成器”窗格中,单击宏代码中需要移动位置窗格中,单击宏代码中需要移动位置的操作名(如的操作名(如Beep),该操作的设计窗格自动成为当前窗),该操作的设计窗格自动成为当前窗格并且由一个矩形框围住,在该操作的设计窗格的右上角,格并且由一个矩形框围住,在该操作的设计窗格的右上角,会自动根据上下文情况相应地显出一个绿色下箭头的会自动根据上下文情况相应地显出一个绿色下箭头的“下下移移”按钮(如图按钮(如图7-10所示),或者显出一个绿色上箭头的所示),或者显出一个绿色上箭头的“上移上移”按钮和一个绿色下箭头的按钮和一个绿色下箭头的“下移下移”按钮这两个按按钮这
49、两个按钮(如图钮(如图7-11所示),或者显出一个绿色上箭头的所示),或者显出一个绿色上箭头的“上移上移”按钮(如图按钮(如图7-12所示)。此时,如果单击所示)。此时,如果单击“下移下移”按钮,按钮,便把该操作的设计窗格移到其下一个操作之后;如果单击便把该操作的设计窗格移到其下一个操作之后;如果单击“上移上移”按钮,便把该操作的设计窗格移到其前一个操作按钮,便把该操作的设计窗格移到其前一个操作之前。之前。537.3.5 7.3.5 宏中操作的移动(续)宏中操作的移动(续)“下移下移”按钮按钮“上移上移”按钮按钮“上移上移”按钮按钮“下移下移”按钮按钮“删除删除”按钮按钮547.4 7.4 运
50、行宏和调试宏运行宏和调试宏创建了宏后,可运行该宏,可调试该创建了宏后,可运行该宏,可调试该宏。对于含有子宏的宏,如果需要运行宏宏。对于含有子宏的宏,如果需要运行宏中的任何一个子宏,则需要用中的任何一个子宏,则需要用“宏名宏名.子子宏名宏名”格式指定某个子宏。格式指定某个子宏。557.4.1 7.4.1 宏的运行宏的运行对于不含有子宏的宏,可直接指定该宏对于不含有子宏的宏,可直接指定该宏名运行该宏。名运行该宏。对于含有子宏的宏,如果直接指定该宏对于含有子宏的宏,如果直接指定该宏名运行该宏时,仅运行该宏中的第一个子宏名运行该宏时,仅运行该宏中的第一个子宏名的宏,该宏中的随后的其他子宏不会被运名的宏