收藏 分销(赏)

Access2010数据库基础与应用教程第7章宏.pptx

上传人:天**** 文档编号:8916112 上传时间:2025-03-07 格式:PPTX 页数:74 大小:5.70MB 下载积分:16 金币
下载 相关 举报
Access2010数据库基础与应用教程第7章宏.pptx_第1页
第1页 / 共74页
Access2010数据库基础与应用教程第7章宏.pptx_第2页
第2页 / 共74页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,1,第,7,章 宏,Access2010,数据库基础与应用教程,(第,2,版,),第,7,章 宏,本章主要内容,7.1 宏概述,7.2 创建宏,7.3,宏的修改,7.4 运行宏和调试宏,7.5,宏与,Visual Basic,2,1.1 宏概述,宏是由一个或多个操作(即,Access,的命令)组成的集合,其中每个操作都实现特定的功能,例如,:,“OpenQuery”,操作命令可打开某个查询,“,OpenForm”,操作命令可打开某个窗体,“,OpenReport”,操作命令可打印某个报表,在,Access 2010,中,如果按照宏创建时打开“宏设计视图”的方法来分类,宏分为独立宏、嵌入宏和数据宏。,3,宏可以由一系列操作组成一个宏,宏也可以是由若干个子宏组成一个宏。每一个子宏都有自己的宏名并且又可以由一系列操作组成。,在宏中还可以包含由,IF,条件表达式来控制操作执行流程的逻辑块,用以确定在某些情况下运行宏时,是否执行某些操作。,对于独立宏,一个独立宏有其宏名,并在“导航窗格”的“宏”对象列表中列出。如果该宏中含有子宏,那么该宏中的每一个子宏都有子宏名。,4,7.1.1,宏设计视图,尽管在创建独立宏、嵌入宏或数据宏时,用于打开“宏设计视图”的方法不同,但是各种方法所打开“宏设计视图”大体上是一样的。,下面以独立宏的“宏设计视图”为例来作介绍。,在打开某数据库后的,Access 2010,窗口中,单击“创建”选项卡上的“宏与代码”组中的“宏”按钮,打开“宏设计视图”。在工作区上显出“宏生成器”窗格和“操作目录”窗格,并在功能区上显出“宏工具”下的“设计”上下文命令选项卡,如图,7-1,所示。,在“宏生成器”窗格中,显出带有“添加新操作”占位符的下拉组合框,在该组合框的左侧还显出一个绿色的 字。,5,7.1.1,宏设计视图(续),6,7.1.1,宏设计视图(续),在“操作目录”窗格中,以树型结构分别列出“程序流程”、“操作”和“在此数据库中”三个目录,及其下层的子目录或部分宏对象。,(,1,)程序流程,“程序流程”目录包括,Comment,、,Group,、,If,和,Submacro,。,(,2,)操作,“操作”目录包括“窗口管理”、“宏命令”、“筛选,/,查询,/,搜索”、“数据导入,/,导出”、“数据库对象”、“数据输入操作”、“系统命令”和“用户界面命令”等八个子目录(即,8,组),总共包含,66,个操作。,(,3,)在此数据库中,在“在此数据库中”目录中,将列出当前数据库中已有的宏对象。并且将根据已有宏的实际情况,还可能会列出宏对象上层的“报表”、“窗体”及“宏”等目录。,7,7.1.2,常用的宏操作简介,Access 2010,提供了,66,条操作命令,下面仅简单介绍其中的一些操作,供参考。,1.,窗口管理,(,1,),CloseWindow,关闭指定的窗口。如果无指定窗口,则关闭激活的窗口。,(,2,),MaximizeWindow,最大化,激活窗口,使其充满,Access,窗口。该操作可以使用户尽可能多地看到活动窗口中的对象。,(,3,),MinimizeWindow,以,最小化激活窗口,使其缩小为,Access,窗口底部的标题栏。,8,7.1.2,常用的宏操作简介(续),(,4,),MoveAndSizeWindow,移动,并调整激活窗口。,(,5,),RestoreWindow,将,最大化或最小化窗口还原到原来的大小。,9,7.1.2,常用的宏操作简介(续),2.,宏命令,(,1,),CancelEvent,取消导致该宏(包含该操作)运行的,Access,事件。,(,2,),ClearMacroError,清除,MacroError,对象中的上一错误。,(,3,),OnError,定义错误处理行为。,(,4,),RunCode,执行,Visual Basic Function,过程。,10,7.1.2,常用的宏操作简介(续),(,5,),RunDataMacro,运行数据宏。,(,6,),RunMacro,运行一个宏,还可以用该操作从其他宏中运行宏。,(,7,),RunMenuCommand,执行,Access,菜单命令。,(,8,),StopAllMacros,终止所有正在运行的宏。,(,9,),StopMacros,终止当前正在运行的宏。,11,7.1.2,常用的宏操作简介(续),3.,筛选,/,查询,/,搜索,(,1,),FindRecord,查找符合指定条件的第一条或下一条记录。,(,2,),OpenQuery,打开选择查询或交叉表查询,或者执行动作查询。查询可以在“数据表”视图、“设计”视图或“打印预览”中打开。,12,7.1.2,常用的宏操作简介(续),4.,数据导入,/,导出,(,1,),ExportWithFormatting,将指定数据库对象中的数据输出为,Excel,(,.xls,)、格式文本(,.rtf,)、文本(,.txt,)、,HTML,(,.htm,)或快照(,.snp,)格式。,13,7.1.2,常用的宏操作简介(续),5.,数据库对象,(,1,),GoToControl,把焦点移到激活数据表或窗体上指定的字段或控件上。,(,2,),GoToRecord,在表、窗体或查询结果集中的指定记录成为当前记录。,(,3,),OpenForm,在“窗体”视图、“设计”视图、“打印预览”或“数据表”视图中打开窗体。,(,4,),OpenReport,在“设计”视图或“打印预览”中打开报表,或立即打印该报表。,14,7.1.2,常用的宏操作简介(续),(,5,),OpenTable,在“数据表”视图、“设计”视图或“打印预览”视图中打开表。,(,6,),PrintObject,打印当前对象。,(,7,),PrintPreview,当前对象的“打印预览”。,15,7.1.2,常用的宏操作简介(续),(,8,),RepaintObject,在指定对象上完成所有未完成的屏幕更新或控件的重新计算。如果没有指定对象,则在活动的对象上完成这些操作。,(,9,),SetProperty,设置,控件属性。,16,7.1.2,常用的宏操作简介(续),6.,数据输入操作,(,1,),DeleteRecord,删除当前己录。,(,2,),EditListItems,编辑查阅列表中的项。,(,3,),SaveRecord,保存当前己录。,17,7.1.2,常用的宏操作简介(续),7,系统命令”,(,1,),Beep,使计算机发出嘟嘟声,以提醒用户注意。,(,2,),CloseDatabase,关闭当前数据库。,(,3,),QuitAccess,退出,Access,。可以从几种保存选项中选择一种。,18,7.1.2,常用的宏操作简介(续),8.,用户界面命令,(,1,),AddMenu,为窗体或报表将菜单添加到自定义菜单栏。,(,2,),MessageBox,显示,含有警告或提示消息的消息框。,(,3,),Redo,重复最近的用户操作。,(,4,),UndoRecord,撤消最近的用户操作。,19,7.2,创建宏,在,Access 2010,中,如果按照宏创建时打开“宏设计视图”的方法来分类,宏可分为独立宏、嵌入宏和数据宏等三种类型。下面分别介绍各种类型宏的创建方法。,20,7.2.1,创建操作序列的独立宏,操作序列的独立宏一般只包含一条或多条操作和一个或多个“注释(,Comment,)”。宏执行时按照操作的顺序一条一条地执行,直到操作执行完毕为止。,例,7-1,在“学生管理系统”数据库,创建一个操作序列的独立宏,该宏包含一条注释和三条操作命令。其中的注释的内容是“创建操作序列的独立宏”,第一条操作命令“,OpenForm”,是打开名为“例,5-9,浏览学生基本情况”的窗体,第二条操作命令“,MaximizeWindow”,是自动将该打开的窗体最大化,第三条操作命令“,MessageBox”,是显出含有“这是操作序列独立宏的例子!”消息的消息框。该宏的名称是“例,7-1,操作序列的独立宏”。,21,7.2.1,创建操作序列的独立宏(例,7-1,),22,7.2.2,创建,含有,If,块的条件操作宏,在“宏生成器”窗格中,单击“添加新操作”组合框右端的下拉按钮,弹出“操作”的下拉列表,单击“,If”,项(或双击右侧“操作目录”窗格中“程序流程”子目录中的“,If”,项),展开,If,块设计窗格,此时该,If,块设计窗格自动成为当前窗格并且由一个矩形框围住,在“,If”,的右边显出一个“条件表达式”的文本框,用户可直接在该文本框中输入需要的一个条件表达式。,在该“,If”,所在行的下一行,显出一个(属于该,If,块范围的)“添加新操作”的组合框,用户可在该组合框中选定需要的操作并展开该操作块设计窗格,同时在其下边,又显出一个(还属于该,If,块范围的)“添加新操作”的组合框,用户又可在该组合框中选定需要的操作并对该操作进行相应的设计,如此类推,在该,If,块内可设计多个操作。,23,7.2.2,创建,含有,If,块的条件操作宏(,表,7-1,),使用下列表达式,执行该操作的条件,学系名称,=,数学系,“,数学系,”,是运行该宏的窗体中,“,学系名称,”,字段的值。,DCount(,专业代码,专业,)35,“,专业,”,表的,“,专业代码,”,字段的项数超过,35,。,DCount(*,订单明细,订单,ID=,Forms!,订单,!,订单,ID)3,“,订单明细,”,表中的,“,订单,ID,”,字段值与,“,订单,”,窗体的,“,订单,ID,”,字段值匹配,,“,订单明细,”,表中满足这一条件的记录超过,3,条。,发货日期,Between#2001,年,2,月,2,日,#And#2001,年,3,月,2,日,#,执行此宏的窗体上的,“,发货日期,”,字段值在,2001,年,2,月,2,日和,2001,年,3,月,2,日之间。,Forms!,产品,!,库存量,100,运行该宏的窗体上的,“,国家或地区,”,字段值是,UK,,且在,“,销售总数,”,窗体内的,“,订货总数,”,字段值大于,100,。,国家或地区,In(,法国,意大利,西班牙,)And Len(,邮政编码,),5,运行该宏的窗体上,“,国家,/,地区,”,字段值是法国、意大利或西班牙,且邮政编码的字符长度不等于,5,。,MsgBox(,确认更改?,1)=1,在,MsgBox,函数显示,“,确认更改?,”,的对话框中,单击,“,确定,”,按钮,,MsgBox,函数返回值为,1,。如果在对话框中单击,“,取消,”,按钮,,MsgBox,函数返回值为,2,。,25,7.2.2,创建,含有,If,块的条件操作宏(,例,7-2,),例,7-2,在,“学生管理系统”数据库中,创建一个含有,If,块的独立宏,,If,操作的条件表达式是“,MsgBox(”,是否要打开查询,?“,1)=1”,,当该条件表达式的值为,True,(即单击了由,MsgBox,函数打开的对话框中的“确定”按钮)时,要依次执行两个操作,其中的第一个操作“,OpenQuery”,是打开名为“例,4-28,查询女学生的基本信息”查询,第二个操作“,Beep”,是发出“嘟”声音。在,If,块结束之后(即,End If,的下一行),还要添加另一个不属于该,If,块的,MessageBox,操作,该,MessageBox,操作是用于显出含有“这是含有,If,块的独立宏例子!”消息的消息框。该宏的名称是“例,7-2,含,If,块的独立宏”。,26,7.2.2,创建,含有,If,块的条件操作宏,(例,7-2,续,),27,7.2.2,创建,含有,If,块的条件操作,宏,(,续,)-If,块内含有,Else,块,单击当前,If,块设计窗格的右下角的“添加,Else”,按钮,展开,Else,块设计窗,格。,如果,If,块中含有,Else,块,即该宏中含有“,If Then Else End If”,的程序代码块。当运行该宏时,如果,的值为,True,便执行,Then,后,中的操作,否则(即,的值为,False,时)就执行,Else,后,中的操作。,28,7.2.2,创建,含有,If,块的条件操作,宏,(例,7-3,),例,7-3,在“学生管理系统”数据库中,创建一个含有,If,块宏,并且在该,If,块中含有一个,Else,块。,If,操作的条件表达式是“,MsgBox,(”,是否,要打开窗体,?“,1)=1”,,当该条件表达式的值,为,True,(即单击了由,MsgBox,函数打开的对话框中的“确定”按钮)时,执行“,OpenForm”,操作,以“窗体”视图打开名为“例,5-9,浏览学生基本情况”窗体,当该条件表达式的值,为,False,(即单击了由,MsgBox,函数打开的对话框中的“取消”按钮)时,执行“,OpenQuery”,操作,以“数据表”视图打开名为“例,4-27,查询学生全部成绩”查询。该宏的名称是“例,7-3,含有,If,块及,Else,块的独立宏”。,29,7.2.2,创建,含有,If,块的条件操作宏(,例,7-3,续),30,7.2.3,使用,Group,对宏中的操作进行分组,在,“宏生成器”中的“操作目录”窗格里的“程序流程”目录中,有一项是,Group,。,Group,的功能是允许操作和程序流程在已命名、可折叠、未执行的块中分组,。,在,一个宏中,把相邻相关的若干个操作分为一组,并对该分组给定一个有意义的组名,从而可提高宏代码的可读性。宏中的分组不会影响该宏中操作的执行方式,宏中的分组也不能单独调用或运行。在宏中,分组的主要目的是标识一组操作,帮助用户一目了然地了解宏的功能,。,31,7.2.3,使用,Group,对宏中的操作进行,分组,(续,),在,宏的“宏生成器”窗格中,使用“程序流程”目录中的,Group,,可将该宏中的操作进行分组,。,每个,分组,Group,块都是以“,Group”,表示该分组块开始,以对应的“,End Group”,表示该分组块结束,。,当,运行该宏时,若该宏中有多个分组,那么将按从上到下的分组顺序,分别对各个分组内所有操作按从上到下的顺序逐个执行,直至所有组的所有操作都执行完毕为止。,32,7.2.3,使用,Group,对宏中的操作进行分组,(续),33,7.2.4,设置,宏的操作参数,在,“宏生成器”窗格中,当选择(弹出的)“操作”的下拉列表中的某个操作时,便自动展开该操作设计窗格,此时该操作设计窗格自动成为当前窗格并且由一个矩形框围住。在该操作设计窗格中,需要设置该操作相关的参数。当然,不同的操作所拥有的参数及参数个数是不同的!。,34,7.2.4,设置,宏的操作参数,在,“宏生成器”窗格中,当选择(弹出的)“操作”的下拉列表中的某个操作时,便自动展开该操作设计窗格,此时该操作设计窗格自动成为当前窗格并且由一个矩形框围住。在该操作设计窗格中,需要设置该操作相关的参数。当然,不同的操作所拥有的参数及参数个数是不同的!。,35,7.2.5,创建含子宏的独立宏,除了一个宏仅包含若干个操作之外,一个宏还可以包含若干个子宏,而每一个子宏又可包含若干个操作。每一个宏都有其宏名,每一个子宏都有其子宏名。引用子宏的格式是“宏名,.,子宏名”。,通过在宏名后面键入一个英文的句点“,.”,字符,再键入子宏名,可以引用宏中的子宏。例如,若要引用“学生信息”宏中的“学生成绩”子宏,可键入:“学生信息,.,学生成绩,”。,36,7.2.5,创建含子宏的独立宏,例,7-4,在“学生管理系统”数据库,创建一个宏,该宏包含,2,个子宏。第,1,个子宏的宏名为“查询子宏”,该宏包括,2,个操作,主要用于打开“例,4-31,统计全校学生总人数”查询并使该查询窗口最大化。第,2,个子宏的宏名为“窗体子宏”,该宏包括,2,个操作,主要用于打开“例,5-7,学系窗体”窗体并发出“嘟”声。该宏名为“例,7-4,含子宏的独立宏”。,37,7.2.5,创建含子宏的独立宏(例,7-4,续),38,7.2.6,创建嵌入宏,嵌入宏是嵌入在窗体或报表或其控件的事件属性中的宏。创建嵌入宏有两种方法。,第一种方法是使用控件向导创建控件时,为执行某种操作而对该控件的默认事件,,Access,自动创建嵌入宏,如第,5,章中“例,5-9,浏览学生基本情况”窗体中,使用命令向导创建好“下一个记录”按钮后,该按钮的“单击”事件属性值被自动设置为,嵌入的宏,。,第二种方法是对某对象的某事件属性使用宏生成器创建嵌入宏,操作步骤请看下例。,39,7.2.6,创建嵌入宏(续),例,7-5,在“学生管理系统”数据库,创建一个名为“例,7-5,含嵌入宏窗体”的窗体,该窗体包含一个名为“,txt1”,的文本框和一个名为“,cmd1”,并且其标题为“欢迎”的命令按钮。对该命令按钮的单击事件创建嵌入宏,当运行该窗体时,单击“欢迎”命令按钮,根据当前时间所在的范围(,=12 and=18,)情况,在,txt1,文本框中显出相应的“早上好!欢迎光临!”或“下午好!欢迎光临!”或“晚上好!欢迎光临!”。,40,7.2.6,创建嵌入宏(例,7-5,续),41,7.2.7,创建数据宏,Access 2010,新增了数据宏。数据宏允许用户在表事件中添加逻辑。通过使用数据宏将逻辑附加到您的数据中来增加代码的可维护性,从而实现源表逻辑的集中化。数据宏包括下面几种宏:插入后、更新后、删除后、删除前、更改前。,42,7.2.7,创建数据宏(续),例,7-6,在,“学生管理系统”数据库中,为“课程”表创建一个“更改前”的数据宏,用于限制输入的“学分”字段的值不得超过,10,。在“课程”表的“数据表视图”中的学分字段输入的值超过,10,(如,12,),然后单击“保存”按钮时,显出如图,7-9,所示的消息框。,43,7.2.7,创建数据宏(例,7-6,续),图,7-7,例,7-6,的“创建数据宏”菜单,44,7.2.7,创建数据宏(例,7-6,续),图,7-8,例,7-6,的宏生成器窗格中的宏代码,45,7.2.8,创建自动执行的名为,AutoExec,的独立宏,如果在,Access,数据库中创建了一个名为,AutoExec,的独立宏,那么在打开该数据库时将首先自动执行该,AutoExec,宏中的所有操作。适当设计,AutoExec,宏对象,可以在打开该数据库时执行一些系列的操作,为运行该数据库应用系统做好需要的初始化准备,如对初始参量赋予初值、打开应用系统的“登录”窗体等等。,46,7.2.8,创建自动执行的名为,AutoExec,的独立宏,(续),创建名为,AutoExec,的独立宏的方法与上述创建独立宏的方法相似,当保存该宏时,指定宏名称为,AutoExec,。该宏保存后,在导航窗格的宏对象列表中便含有,AutoExec,项。,请注意,如果在打开数据库时想阻止执行该,AutoExec,宏,可在打开该数据库时按住,Shift,键不放开,直到数据库打开为止。,47,7.3,宏的修改,对已经创建好的宏,可以打开该宏的设计视图,在“宏生成器窗格”中,对原有的宏代码可进行编辑,如可添加新操作、修改操作、删除操作、移动操作等等。,48,7.3.1,独立宏的修改,打开某个,Access,数据库后,右击“导航窗格”上的“宏”对象列表中的某个宏名,弹出快捷菜单,单击该快捷菜单中的“设计视图”,便打开该独立宏的“宏设计视图”,并且在“宏生成器窗格”中显出该宏的原有代码。此时,在“宏生成器窗格”中,对原有的宏代码可进行编辑修改,如可添加新操作、修改操作、删除操作、移动操作等等。,49,7.3.2,嵌入宏的修改,打开某个,Access,数据库后,右击“导航窗格”上的“窗体”对象列表中的某个窗体名,弹出快捷菜单,单击该快捷菜单中的“设计视图”,便打开该窗体的“设计视图”。双击某控件(或窗体选定器),显出其“属性表”,在该“属性表”的事件列表中,单击属性值为,嵌入的宏,所在组合框右侧的“,”,按钮,便打开该嵌入宏的“宏设计视图”,并且在“宏生成器”窗格中显出该嵌入宏的宏代码。此时,在“宏生成器”窗格中,对原有的宏代码可进行编辑修改,如可添加新操作、修改操作、删除操作、移动操作等等。,50,7.3.3,数据宏的修改,打开某个,Access,数据库后,右击“导航窗格”上的“表”对象列表中的某个表名,弹出快捷菜单,单击该快捷菜单中的“设计视图”,便打开该表的“设计视图”,并在功能区上显出“表格工具”下的“设计”命令选项卡,单击该“设计”选项卡上的“字段、记录和表格事件”组中的“创建数据宏”按钮,弹出“创建数据宏”命令下拉列表,(假定原来已经创建了“更改前”的数据宏)单击该下拉列表中的某一项(如“更改前”),打开该表的(如“更改前”)“宏设计视图”,并且在“宏生成器”窗格中显出该表的该(如“更改前”)数据宏的宏代码。在“宏生成器”窗格中,对原有的宏代码可进行编辑修改,如可添加新操作、修改操作、,删除操作、移动操作等等。,51,7.3.4,宏中操作的删除,在“宏生成器”窗格中,单击宏代码中需要删除的操作名(如,MessageBox,),该操作的设计窗格自动成为当前窗格并且由一个矩形框围住,该操作的设计窗格的右上角显出一个交叉的“删除”按钮,此时单击该“删除”按钮或者按键盘上的“,Delete”,键,便可删除该操作(即删除该操作的当前设计窗格及其所属内容)。,52,7.3.5,宏中操作的移动,在“宏生成器”窗格中,单击宏代码中需要移动位置的操作名(如,Beep,),该操作的设计窗格自动成为当前窗格并且由一个矩形框围住,在该操作的设计窗格的右上角,会自动根据上下文情况相应地显出一个绿色下箭头的“下移”按钮(如图,7-10,所示),或者显出一个绿色上箭头的“上移”按钮和一个绿色下箭头的“下移”按钮这两个按钮(如图,7-11,所示),或者显出一个绿色上箭头的“上移”按钮(如图,7-12,所示)。此时,如果单击“下移”按钮,便把该操作的设计窗格移到其下一个操作之后;如果单击“上移”按钮,便把该操作的设计窗格移到其前一个操作之前。,53,7.3.5,宏中操作的移动(续),“下移”按钮,“上移”按钮,“上移”按钮,“下移”按钮,“删除”按钮,54,7.4,运行宏和调试宏,创建了宏后,可运行该宏,可调试该宏。对于含有子宏的宏,如果需要运行宏中的任何一个子宏,则需要用“宏名,.,子宏名”格式指定某个子宏。,55,7.4.1,宏的运行,对于不含有子宏的宏,可直接指定该宏名运行该宏。,对于含有子宏的宏,如果直接指定该宏名运行该宏时,仅运行该宏中的第一个子宏名的宏,该宏中的随后的其他子宏不会被运行。如果需要运行宏中的任何一个子宏,则需要用“宏名,.,子宏名”格式指定某个子宏。,56,7.4.1,宏的运行(续),当运行宏过程中,如果宏的操作有误,则会显出,“,Microsoft Access,”出错信息对话框,形如图,7-13,所示。用户可根据出错信息提示,对该宏的设计进行修改,排除错误。,图,7-13,“,Microsoft Access,”出错信息对话框示例,57,7.4.1,宏的运行(续),运行宏有如下几种方法:,(,1,)打开某宏的“设计视图”,单击“宏工具”下的“设计”命令选项卡的“工具”组中的“运行”按钮,可以直接运行宏。,(,2,)在,Access 2010,窗口中,双击“导航窗格”上的“宏”对象列表中的某个宏名,可以直接运行该宏。对于含有子宏的宏,仅运行该宏中的第一个子宏名的宏。,58,7.4.1,宏的运行(续),(,3,)在,Access 2010,窗口中,右键“导航窗格”上的“宏”对象列表中的某个宏名,弹出快捷菜单,单击快捷菜单中的“运行”,可以直接运行该宏。对于含有子宏的宏,仅运行该宏中的第一个子宏。,59,7.4.1,宏的运行(续),(,4,)在,Access 2010,窗口中,单击“数据库工具”标题,显出“数据库工具”选项卡。单击该选项卡上的“宏”组中的“运行宏”按钮,显出“执行宏”对话框。在“宏名称”组合框的下拉列表中,列出所有独立宏的宏名,对于含有子宏的宏,在该下拉列表中还以“宏名,.,子宏名”格式列出了所有子宏名,在该下拉列表中选定某个宏名或子宏名,如图,7-14,所示。单击“执行宏”对话框的“确定”按钮。,60,7.4.1,宏的运行(续),(,5,)将窗体、报表或控件的某个事件属性设为宏的名称。在某对象的“属性表”的某个事件的属性值组合框的下拉列表中,列出所有独立宏的宏名,对于含有子宏的宏,在该下拉列表中还以“宏名,.,子宏名”格式列出了所有子宏名,在该下拉列表中选定某个宏名或子宏名。如图,7-15,所示。,61,7.4.1,宏的运行(续),(,6,)从另一个宏中运行宏。,在“宏生成器”窗格中,单击“添加新操作”组合框右端的下拉按钮,弹出“操作”的下拉列表,单击“,RunMacro,”项,展开,RunMacro,操作设计窗格。在“宏名称”组合框的下拉列表中,列出所有独立宏的宏名,对于含有子宏的宏,在该下拉列表中还以“宏名,.,子宏名”格式列出了所有子宏名,在该下拉列表中选定某个宏名或子宏名。如图,7-16,所示。,62,7.4.1,宏的运行(续),(,7,)在,VBA,过程中,使用,DoCmd,对象的,RunMacro,方法运行宏。在指定宏名时,对于含有子宏的宏,要用“宏名,.,子宏名”格式指定某个子宏名。,运行宏的语句格式:,DoCmd.RunMacro ,宏名,语句格式例子:,DoCmd.RunMacro,例,7-4-,含子宏的独立宏,.,窗体子宏,63,7.4.1,宏的运行(续),(,8,)在打开数据库时自动运行宏。,Access,中设置了一个特殊的宏名,AutoExec,。,AutoExec,代表自动加载或处理。,如果在,Access2010,数据库中创建了一个名为,AutoExec,宏对象,那么在打开该数据库时将首先自动执行该,AutoExec,宏中的所有操作。,请注意,如果在打开数据库时想阻止执行该,AutoExec,宏,可在打开该数据库时按住,Shift,键不放开,直到数据库打开为止。,64,7.4.2,宏的调试,一般来说,在运行宏的过程中,当执行的操作有错误时,会显出相应出错信息的消息框。此外,,Access,还提供了以“单步执行”(即一次只执行宏的一个动作)的方式来查找宏中的问题。,使用单步执行宏,可以观察宏的流程和每一个操作的结果,方便用户发现导致错误或产生非预期结果的原因,从而对该宏的设计进行修改完善。,65,7.4.2,宏的调试(,续),单步执行宏的操作步骤如下:,(,1,)打开某个,Access,数据库后,右击“导航窗格”上的“宏”对象列表中的某个宏名,弹出快捷菜单,单击快捷菜单中的“设计视图”,显出“宏设计视图”。,(,2,)单击“宏工具”下的“设计”命令选项卡的“工具”组中的“单步”按钮,要确保“单步”按钮已经按下。,(,3,)单击“工具”组中的“运行”按钮,显出“单步执行宏”对话框,形如图,7-17,所示。,66,7.4.2,宏的调试(,续),(,4,)请执行下列操作之一:,若要执行“单步执行宏”对话框中所显示的操作,请单击“单步执行”按钮。,若要停止宏的运行并关闭“单步执行宏”对话框,请单击“停止所有宏”按钮。,若要关闭“单步执行宏”对话框并继续执行宏的未完成部分,请单击“继续”按钮。,67,7.5,宏与,Visual Basic,在,Access,中,由于宏可以自动执行任务的一个操作或一组操作,因此,使用宏可以自动完成许多任务。,在,Access,中,要完成相同的任务还可以通过,Visual Basic for Applications,(,VBA,)编程来实现。,VBA,是,Visual Basic,的一个子集。,68,7.5.1,宏与,VBA,编程,在,Access,应用中,是使用宏还是使用,VBA,编写应用程序,取决于用户需要完成的任务。在,Access 2010,中,宏提供了处理许多编程任务的简单方法,例如打开和关闭窗体以及运行报表。用户可以轻松快捷地绑定自己创建的数据库对象(如表、窗体、报表等),因为用户几乎不需要记住任何语法,并且每个操作的参数都显示在宏生成器中。,然而,对于下列情况,用户应该使用,VBA,编程而不是使用宏:,69,7.5.1,宏与,VBA,编程(,续),(,1,)使用内置函数或创建自己的函数,Access,中包括许多内置函数,例如,IPmt,函数,它可以计算应付利息。用户可以使用这些内置函数执行计算,而无须创建复杂的表达式。通过使用,VBA,代码,用户还可以创建自己的函数来执行超出表达式能力的计算或者替代复杂的表达式。此外,用户还可以在表达式中使用自己创建的函数向多个对象应用公共操作。,(,2,)创建或操纵对象,在大多数情况下,用户会发现在对象的“设计视图”中创建和修改对象最容易。不过,在某些情况下,用户可能想在代码中操纵对象的定义。通过使用,VBA,,除了可以操纵数据库本身以外,用户还可以操纵数据库中的所有对象。,70,7.5.1,宏与,VBA,编程(,续),(,3,)执行系统级操作,用户可以在宏内执行,RunApp,操作,以便在,Access,中运行另一个程序(如,Microsoft Excel,),但用户无法使用宏在,Access,外部执行更多其他操作。通过使用,VBA,,用户可以检查某个文件是否存在于计算机上,使用自动化或动态数据交换,(DDE),与其他基于,Microsoft Windows,的程序(如,Excel,)通信,还可以调用,Windows,动态链接库,(DLL),中的函数。,(,4,)一次一条地操纵记录,用户可以使用,VBA,来逐条处理记录集,一次一条记录,并对每条记录执行操作。相反,宏将同时处理整个记录集。,71,7.5.2,将独立宏转换为,Visual Basic,程序代码,Microsoft Access,可以自动将宏转换为,Visual Basic,程序代码模块。这些模块用,Visual Basic,代码执行与宏等价的操作。,将宏转换为,Visual Basic,程序代码模块的操作步骤如下例所述:,72,7.5.2,将独立宏转换为,Visual Basic,程序代码(,续),例,7-7,将名为“欢迎光临独立宏”的宏转换为,Visual Basic,程序代码模块。,单击“宏工具”下的“设计”命令选项卡的“工具”组中的“将宏转换为,Visual Basic,代码”按钮(如图,7-18,所示),显出“转换宏:欢迎光临独立宏”对话框,(如图,7-19,所示)。,73,7.5.2,将独立宏转换为,Visual Basic,程序代码(,续),例,7-7,(续),图,7-21,“导航窗格”上的“模块“对象列表,图,7-20,74,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服