收藏 分享(赏)

第十章 宏操作.ppt

上传人:无敌 文档编号:813500 上传时间:2018-04-26 格式:PPT 页数:67 大小:569KB
下载 相关 举报
第十章 宏操作.ppt_第1页
第1页 / 共67页
第十章 宏操作.ppt_第2页
第2页 / 共67页
第十章 宏操作.ppt_第3页
第3页 / 共67页
第十章 宏操作.ppt_第4页
第4页 / 共67页
第十章 宏操作.ppt_第5页
第5页 / 共67页
点击查看更多>>
资源描述

1、第十章 宏操作,前面介绍了五种数据库对象,它们都具有强大的功能。如果将这些数据库对象的功能组合在一起,可以担负起数据库中的各项数据管理工作了。但是由于这些数据库对象都是彼此独立的并且不能相互驱动,因此仅靠这五种数据库对象构造数据库将难以形成一体的应用系统。 要使Access 2000的众多数据库对象成为一个整体,以一个应用程序的面貌展示给用户,就必须借助于代码类型的数据库对象。宏对象便是此类数据库对象中的一种。,10.1 宏的概念,宏对象是一个或多个宏操作的集合,其中的每一个宏操作执行特定的单一功能。用户可以将这些宏操作组织起来形成宏对象以执行特定的任务。,要了解宏对象在Access 2000

2、中的执行机制,就必须首先了解事件、消息与消息映射的概念。在Access 2000中,每当产生了一个事件时(例如,用户单击鼠标左键产生【单击】事件),总会有消息与之对应。消息一经产生即被送入到消息队列中并最终被窗口对象感知。,消息的产生是随机的,怎样才能保证消息一经产生就会很快被窗口对象所感知?这将完全依靠消息的循环机制,即窗口对象总是不断地到它自己的消息队列中寻找消息。一旦某个消息到达队列,窗口对象便能立即感知到。,在Access 2000中,窗体对象、报表对象及其内部的控件均为窗口对象,即Access 2000的窗体、报表及其内部的控件可以感知消息。,消息一旦产生并且被窗体、报表或控件感知以

3、后,如何激活一个宏对象以响应消息,这就需要依靠消息映射。消息映射是指将某一个消息与指定的宏对象建立起一一对应的关系。如果一旦消息产生,Access 2000立即自动执行指定的宏或模块对象。,在Access 2000中,消息映射是通过在窗体、报表及其内部的控件中设置事件属性来实现的。在指定的窗体、报表或控件的事件属性中填写一个宏对象名就意味着该消息与填入的宏对象建立起了映射关系,将来一旦窗体、报表或控件感知到该消息就转去执行指定的宏对象或模块。所以,在Access 2000中凡是具有事件属性的对象都可以感知消息并进行消息映射。,在 Access 2000关系数据库中,事件属性的使用最为频繁,也最

4、为关键。表11-1列出了常用的事件属性。,表11-1 常用的事件属性,用户主要是在进行事务性或重复性的操作的情况下使用宏,如打开和关闭窗体、显示和隐藏工具栏或运行报表等。,一般来说,使用宏可以实现下列操作:创建全局赋值键(变量)。在首次打开数据库时,执行一个或一系列操作。建立自定义菜单栏。从工具栏上的按钮执行自己的宏或者程序。可以使用宏把筛选程序加到各个记录中,从而提高记录查找的速度。使用宏可以随时打开或者关闭数据库对象。,使用宏可以为窗体或者报表中的控制设置值,同时还可以模拟键盘动作,并把输入提供给对话框。可以使用宏来显示各种信息,并能够使扬声器发出报警声,以引起用户的注意。使用宏可以实现数

5、据自动传输。可以自动地在各种数据格式之间引入或导出数据。可以使用宏移动Access环境下的任何一个窗体,并能够改变它们的大小。,使用宏可以为窗体定制菜单,并可以让用户设计其中的内容。使用宏可以启动其他的应用程序,可以是MSDOS应用程序,也可以是Windows应用程序。,10.2 宏的分类,Access下的宏可以是包含操作序列的一个宏;可以是某个宏组,宏组由若干个宏构成;还可以是包括条件操作的宏,即使用条件表达式来决定在什么情况下运行宏,以及在运行宏时是否进行某项操作。,1. 操作序列,图101所示的宏是由一系列的操作序列组成。每次运行宏时,Access都将执行这些操作。如果要运行该宏,只要在

6、合适的地方引用宏的名称即可。,2. 宏组,如果存在着许多宏,那么将相关的宏分到不同的宏组将有助于数据库的管理。例如,图102所示的宏组就是由四个宏组成的。,宏组类似于程序设计中的“主程序”,而宏组中“宏名”列中的宏类似于“子程序”。使用宏组既可以增加控制,又可以减少编制宏的工作量。用户也可以通过引用宏组中的“宏名”(宏组名.宏名),执行宏组中的一部分宏。在执行宏组中的宏时,Access系统将按顺序执行“宏名”列中的宏所设置的操作以及紧跟在后面的“宏名”列为空的操作。,3. 条件操作宏,在某些情况下,可能希望仅当特定条件为真时,才在宏中执行一个或多个操作。这是可以使用宏的条件来控制宏的流程。含有

7、条件的宏,只有在指定的条件满足时,才执行相应的宏。,10.3 宏窗体中的工具栏,当创建、编辑或者测试宏时,需要用到宏窗体中的工具栏。打开宏的设计窗体,就会在窗体的上端出现一行工具栏,如图104所示。,工具栏中有一些按钮是前面章节中没有见到过的,下面对这些按钮做一下简单介绍:,宏名按钮 :选中该按钮将显示或隐藏宏窗体中宏名列。可以输入宏的名称。,条件按钮 :选中该按钮将显示或隐藏宏窗体中的条件列。可以设定必要的条件。,执行按钮 :选中该按钮将运行宏。,单步执行按钮 :选中该按钮可以设置或取消步调试状态。,Access 2000提供的宏操作几乎涉及到数据库的每一个操作动作。一般情况下,使用宏操作基

8、本上能够实现数据库的各项管理工作。之所以说Access 2000是一种不用编程的关系数据库管理系统,其原因便是它拥有一套功能完善的宏操作。,就单个宏操作而言,功能是很有限的,因为它只能完成一个特定的数据库操作动作。但是当众多的宏操作串联在一起,被依次连续地执行时,就能够执行一个较复杂的任务。宏对象便是一种可以容纳若干个宏操作并且能够依次将这些宏操作执行的一种数据库对象。,10.4 宏动作,Access 2000为用户提供了许多宏操作,常用的宏操作按其功能大致可以分为:对象操作类、数据导入导出类、记录操作类、数据传递类、代码执行类、提示警告类和其他类。 调用函数将获得一个返回值,执行宏操作将完成

9、一个特定的数据库操作动作。,1、OpenForm宏操作 使用 OpenForm 宏操作可以在窗体的窗体视图、设计视图、数据表视图或打印预览中打开一个窗体,并通过设置记录的筛选条件、数据模式和窗口模式来限制窗体所显示的记录以及操作模式。,10.4.1 对象操作类,2、OpenModule宏操作 使用OpenModule 宏操作可以在指定的过程中打开特定的 Visual Basic 模块。该过程可以是子程序、函数过程或事件过程。,3、OpenQuery宏操作 使用 OpenQuery 宏操作可以运行指定的查询、打开指定查询的设计视图或者在打印预览窗口中显示选择查询的结果。,4、OpenReport

10、宏操作 使用OpenReport宏操作可以打印指定的报表、打开指定报表的设计视图或者在打印预览窗口中显示报表的结果,也可以限制需要在报表中打印的记录。,5、OpenTable宏操作 使用OpenTable 宏操作可以打开指定表的数据表视图、设计视图或者在打印预览窗口中显示表中的记录,也可以选择表的数据输入模式。,6、Rename宏操作使用Rename 宏操作可以重新命名指定的数据库对象。,7、RepaintObject宏操作 使用RepaintObject 宏操作可以完成指定数据库对象挂起的屏幕更新。如果没有指定数据库对象,则对活动数据库对象进行更新。更新包括对数据库对象的所有挂起控件进行重新

11、计算。,8、SelectObject宏操作 使用SelectObject 宏操作可以选择指定的数据库对象,使其成为当前对象。,9、Close宏操作 使用Close宏操作可以关闭指定的窗口。如果没有指定窗口,Access 2000则关闭当前活动窗口。,10、DeleteObject宏操作 使用DeleteObject 宏操作可以删除一个特定的数据库对象。,1、TransferDatabase宏操作 使用TransferDatabase 宏操作可以在Access 2000数据库与其它的数据库之间导入与导出数据。还可以从其它的数据库链接表到当前数据库中来。通过链接表,在其它的数据库中也可以访问链接中

12、表的数据。,11、CopyObject宏操作 使用CopyObject宏操作可以将指定的数据库对象复制到不同的数据库中,或以新的名称复制到同一个数据库中。,10.4.2 数据导入导出类,2、TransferSpreadsheet宏操作 使用TransferSpreadsheet宏操作可以在Access 2000的当前数据库和电子表格文件之间导入或导出数据。还可以将Microsoft Excel 电子表格中的数据链接到Access 2000当前数据库中来。通过链接的电子表格,用户可以在Access 2000中查看和编辑电子表格数据,同时还允许在Microsoft Excel 电子表格中对数据进行

13、访问。TransferSpreadsheet宏操作还可以链接Lotus 1-2-3电子表格文件中的数据,但这些数据在Access 2000中是只读的。,3、TransferText宏操作 使用TransferText宏操作可以在Access 2000的当前数据库与文本文件之间导入或导出数据。还可以将文本文件中的数据链接到Access 2000的当前数据库中。,10.4. 3 记录操作类,1、GoToRecord宏操作 使用GoToRecord宏操作可以在打开的表、窗体或查询中重新定位记录,使指定的记录成为当前记录。,2、FindRecord宏操作 使用FindRecord宏操作可以查找与给定的

14、数据相匹配的首条记录。FindRecord宏操作可以在数据表视图、查询和窗体的数据源中查找记录。,3、FindNext宏操作 FindNext宏操作通常与FindRecord 宏操作搭配使用以查找与给定数据相匹配的下一条记录。可以多次使用FindNext宏操作以查找与给定数据相匹配的记录。FindNext宏操作没有任何操作参数。,10.4. 4 数据传递类,1、Requery宏操作 使用Requery宏操作可以通过刷新控件的数据源来更新活动对象中特定控件的数据。如果不指定控件,Requery宏操作将对对象本身的数据源进行刷新。Requery宏操作可以保证活动对象或其所包含的控件显示的是最新的数

15、据。,2、SendKeys宏操作 使用SendKeys宏操作可以把按键直接传送到Access 2000或别的Windows应用程序。,3、SetValue宏操作 使用SetValue宏操作可以对窗体和报表上的字段、控件或属性进行设置。,1、RunApp宏操作 使用RunApp宏操作可以在Access 2000中运行一个Windows或 MS-DOS 应用程序。,10.4. 5 代码执行类,2、RunCode宏操作 使用RunCode宏操作可以调用Visual Basic的函数过程。,3、RunMacro宏操作 使用RunMacro宏操作可以运行一个宏对象或宏对象中的一个宏组。,4、RunSQL

16、宏操作 使用RunSQL宏操作可以运行Access 2000的动作查询,还可以运行数据定义查询。,1、Beep宏操作 使用Beep宏操作可以通过个人计算机的扬声器发出嘟嘟声。Beep宏操作没有任何操作参数。,10.4. 6 提示警告类,2、Echo宏操作 使用Echo宏操作可以指定是否打开回响。,3、MsgBox宏操作 使用MsgBox宏操作可以显示包含警告信息或其它信息的消息框,1、Hourglass宏操作 使用Hourglass宏操作可以使鼠标指针在宏执行时变成沙漏形状或其他选择的图标。,10.4. 7 其他类,2、GoToControl宏操作 使用GoToControl宏操作可以把焦点移

17、到打开的窗体以及特定的字段或控件上。如果要让某一特定的字段或控件获得焦点,可以使用GoToControl宏操作。,3、ShowToolbar宏操作 使用ShowToolbar宏操作可以显示或隐藏内置工具栏或自定义工具栏。,4、Quit宏操作 使用Quit宏操作可以退出Access 2000。Quit宏操作还可以指定在退出Access 2000之前采用何种方式保存数据库对象。,5、CancelEvent宏操作 使用CancelEvent宏操作可以中止一个事件,该事件导致Access 2000执行包含此操作的宏。,6、Maximize宏操作 使用Maximize宏操作可以最大化活动窗口,使其充满A

18、ccess 2000的整个窗口。Maximize宏操作可以使用户尽可能多地看到活动窗口中的对象。Maximize宏操作没有任何操作参数。,7、Minimize宏操作 使用Minimize宏操作可以将活动窗口最小化,使其缩小为Access 2000窗口底部的小标题栏。Minimize宏操作没有任何操作参数。,8、Restore宏操作 使用Restore宏操作可以将处于最大化或最小化的窗口恢复为原来的大小。Restore宏操作没有任何操作参数。,9、SetWarnings宏操作 使用SetWarnings宏操作可以打开或关闭系统信息。,10、PrintOut宏操作 使用PrintOut宏操作可以打

19、印打开数据库中的活动对象,也可以打印数据表、报表、窗体和模块。,11、MoveSize宏操作 使用MoveSize宏操作可以移动活动窗口或调整其大小。,10.5 创建宏,宏对象是由一个或一个以上的宏操作构成的数据库对象。每一个宏操作可以执行一个特定的数据库操作动作。宏操作由操作名和操作参数构成,其结构有些类似于函数。但它与函数不同的是: 调用函数将获得一个返回值,执行宏操作将完成一个特定的数据库操作动作。 在运行宏对象时,它所包含的宏操作将被顺序地执行,不能实现跳转。宏对象是一种特殊的代码,它不具有编译特性,不能进行控制转移,也不能对变量直接进行操作。,宏对象编辑窗口分为上下两部分。上半部分是

20、宏操作区,它以二维表的形式显示,允许用户在二维表的每一行中选择填写一个宏操作。二维表的行数可以是任意多行,所以一个宏对象可以包含任意多个宏操作。下半部分是宏操作参数区,用以为选择的宏操作设置操作参数。,需要注意的是:在宏对象编辑窗口打开时,Access 2000 仅显示【操作】和【备注】列,【宏名】和【条件】列最初是隐藏的。需要使用这两列时可以从【视图】菜单中选择【宏名】和【条件】命令或单击【宏设计】工具栏上的【宏名】和【条件】按钮来显示相应的列。,宏对象编辑窗口的下半部分用于为当前宏操作提供操作参数。Access 2000 的大部分宏操作都拥有自己的操作参数,但也有个别的宏操作没有操作参数。

21、,建立一个宏对象的关键是如何正确地为每一个宏操作选择输入操作参数。操作参数区域中的每一行显示了宏操作的一个参数,左边是操作参数名称,右边是该操作参数值。,宏操作区由四列构成,分别是:【操作】、【备注】、【条件】和【宏名】列。在打开宏对象编辑窗口时,缺省情况下仅显示【操作】和【备注】列。,【操作】列用于选择要使用的宏操作名称。,【备注】列用于对该行或以下几行的宏操作的功能、意义进行说明注释。【备注】列中的文字说明对宏的执行没有任何影响,它纯粹是为了提高宏对象的可读性而设立的。,【条件】列用于为宏操作设置执行条件。只有当【条件】列中设置的逻辑表达式结果为真时,该行的宏操作才能够执行,否则将跳过该行

22、的宏操作往下执行。,【宏名】列用于为某段宏操作命名。在【宏名】列中的命名称其为宏组名。一个宏组名所对应的宏操作是从该宏组名所在行的宏操作开始到下一个宏组名所在行的前一行结束。通过在【宏名】列中填写宏组名,从而将宏对象中的宏操作分成组,这样便于用户有选择地执行其中的一段宏操作。,宏对象中的某一个宏组可以采用【宏对象名宏组名】的形式在相关对象的事件属性中调用。,具体步骤如下:在“数据库”窗体中,单击“宏”选项卡。单击“新建”按钮。系统将出现新建宏的设计窗体。单击“操作”字段的第一个单元格,然后再单击该单元格的下拉按钮,来显示出操作列表。选择要使用的操作。键入操作的说明(备注)。说明不是必选的,但可

23、以使宏更易于理解和维护。在窗体的下半部是当前操作的“操作参数”列表。若要在一个宏内添加更多的操作,请移动到另一个操作行,重复3-7步。,当我们要在两个操作行之间插入一个操作时,首先需要单击插入行下面的操作行的行选定按钮,然后在工具栏上单击“插入行”按钮 。就可以在选定之上添加一新行。再为新行选择要使用的操作即可。,我们也可以通过将某些对象(窗体及其上控件对象等)拖动至“宏”窗体的操作行内的方式来快速创建一个在指定数据库对象上执行操作的宏。 例如,单击代表“个人综合得分”报表的图像,把它直接拉到一个空的“操作”单元格中。代表打开“个人综合得分”报表的OpenReport操作和其他操作参数,继续进

24、行宏的编制。,10.6 在宏中设置操作参数的提示,在宏中添加某个操作之后,可以在“宏”窗体的下部设置这个操作的参数。,关于设置操作参数的简要说明如下可以在参数框中键入数值,也可以从列表中选择某个设置。通常,按参数排列顺序来设置操作参数是很好的方法。通过从“数据库”窗体拖动数据库的方式来在宏中添加操作,系统会自动设置适当的参数。如果操作中有调用数据库对象名的参数,则可以将对象从“数据库”窗体中拖动到参数框,从而由系统自动设置操作及其对应的对象类型参数。可以用前面加等号(=)的表达式来设置操作参数。但是不可以对表10-1中的参数使用表达式。,10.7 创建宏组,如果要在一个位置上将几个相关的宏构成

25、组,而不希望对其单个追踪,可以将它们组织起来构成一个宏组,具体的创建过程如下:,在“数据库”窗体中,单击“宏”选项卡。单击“新建”按钮。系统将出现新建宏的设计窗体。单击工具栏中的“宏名”按钮。在“宏名”栏内,键入宏组中的第一个宏的名字。添加需要宏执行的操作。如果希望宏组内包含其他的宏,请重复第4-5步。,保存宏组时,指定的名字是宏组的名字。这个名字也是显示在“数据库”窗体中的宏和宏组列表的名字。如果要引用宏组中的宏,请用下面的语法:宏组名.宏名。,10.8 宏的条件表达式,条件是逻辑表达式。返回值只有两个:“真”和“假”。宏将根据条件结果的“真”或“假”而沿着不同的路径执行。,单击“视图”菜单

26、中的“条件”命令,或者单击工具栏上的“条件”按钮 ,都可以在宏列表中增加“条件”列。,可以将条件输入到“宏”窗体的“条件”列中。如果这个条件结果为真,则Microsoft Access将执行此行中的操作。在紧跟此操作的“条件”栏内键入省略号(),就可以使Microsoft Access在条件为真时,可以执行这些操作。,在宏的条件表达式中,有可能会引用到窗体的控件值。在宏表达式中要使用如下的语法:Forms!对象名!控件名,10.9 执行宏,在执行宏时,Access数据库系统将从宏的起始点启动,并执行宏中所有操作直到到达另一个宏(如果宏是在宏组中的话)或者到达宏的结束点。,如果要直接执行宏,请进

27、行下列操作之一:如果要从宏窗体中执行宏,请单击工具栏上的执行按钮 。如果要从数据库窗体中执行宏,请单击“宏”选项卡,然后双击相应的宏名。如果要从窗体“设计”视图或报表“设计”视图中执行宏,请将鼠标指向“工具”菜单中的“宏”在单击“执行宏”。,如果要在Access数据库系统的其他地方执行宏,请在“工具”菜单上单击“执行宏”,然后单击“宏名”框中相应的宏。,在通常情况下直接执行宏只是进行宏测试。在确保宏的设计无误之后,可以将宏附加到窗体、报表或控件中,以对事件做出响应,或创建一个执行宏的自定义菜单命令。,10.10 调试宏,在Access数据库系统中提供了一个重要的宏调试工具,可以用来单步调试宏中

28、的各个动作,使用单步执行宏的方法,就可以观察宏的流程和每一个操组的结果,并且可以排除导致错误或产生非预期结果的操作。,打开要调试的宏,例如宏“autoexec”,如图1010所示。,在工具栏上单击“单步”按钮 。,在工具栏上单击“执行”按钮 。系统将出现“单步执行宏”对话框,如图1011所示。,单击“单步”按钮,以执行显示在“单步执行宏”对话框中的操作。单击“暂停”按钮,可以停止宏的执行并关闭对话框。单击“继续”按钮,可以关闭“单步执行宏”,并执行宏的未完成部分。,如果要在宏执行过程中暂停宏的执行,请同时按Ctrl键和Break键。 如果宏没有按预期要求运行,或者出现如图1012所示的“操作失

29、败”对话框。,10.11 宏的触发,在窗体或者报表中运行宏,实际上是利用触发宏的事件来运行宏。有如下几种方法: 打开和关闭窗体或者报表的宏有以下几个。,OnOpen:打开窗体或报表后,显示第一条记录之前,触发所定义的宏。OnClose:在关闭窗体或者报表并清除之前,触发所定义的宏。,用于改变数据的宏有以下几个。,After Update:在修改窗体或控件中的数据之后,触发所定义的宏。,Before Update:在修改窗体或保存到数据库之前,触发所定义的宏。OnDelete:在删除记录之前,运行所定义的宏。OnInsert:在向新的记录输入字符时,运行所定义的宏。,用于改变操作的宏有以下几个。

30、,OnCurrent:在首次打开窗体或从当前记录翻到另一个记录并显示此记录之前运行宏。OnActivate:当窗体或报表成为激活窗体时,运行所定义的宏。OnExit:在试图离开某一个控件之前,运行所定义的宏。,OnEnter:在试图移到某一个控件之前,运行所定义的宏。OnClick:当用户在一个对象上按下鼠标按钮然后释放时,运行所定义的宏。,用于打印的宏有以下几个。,OnFormat:在格式化报表区域进行打印之前,运行所定义的宏。OnPrint:在打印报表中经过格式化的区域之前,运行所定义的宏。,用于激活菜单的宏有OnMenu,它可在选择菜单时运行所定义的宏。 触发宏的事件,可以在窗体、报表及控件的属性表中找到。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报