《access2010数据库基础教程第6章 宏》由会员分享,可在线阅读,更多相关《access2010数据库基础教程第6章 宏(31页珍藏版)》请在金锄头文库上搜索。
1、第6章 宏,创建各类宏,6.1.1 宏的基本概念,宏(macro)是指一个或多个操作的集合。我们把那些能自动执行某种操作的命令统称为“宏”。宏也是一种操作命令,它和菜单操作命令是相同的,只是它们对数据库施加作用的时间有所不同,作用时的条件也有所不同。 在 Access 中,可以将宏看作一种简化的编程语言,这种语言是您通过生成一系列要执行的操作来编写的。生成宏时,从下拉列表中选择每一个操作,然后填写每个操作所必需的信息。通过使用宏,无需在 VBA模块中编写代码,即可向窗体、报表和控件中添加功能。宏提供了 VBA 中可用命令的子集,大多数人都认为生成宏比编写 VBA 代码容易。 菜单命令一般用在数
2、据库的设计过程中,而宏命令则用在数据库的执行过程中。菜单命令必须由使用者来施加这个操作,而宏命令则可以在数据库中自动执行。,1、什么是宏,6.1 宏的概念,通过宏的自动执行重复任务的功能,可以保证工作的一致性,还可以避免由于忘记某一操作步骤而引起的错误。宏的具体功能如下:,2、宏的基本功能,1)显示和隐藏工具栏。 2)打开和关闭表、查询、窗体和报表。 3)执行报表的预览和打印操作,以及报表中数据的发送。 4)设置窗体或报表中控件的值。 5)设置Access工作区中任意窗口的大小,执行窗口移动、缩小、放大和保存等操作。 6)执行查询操作,以及数据的过滤、查找。 7)为数据库设置一系列的操作,以简
3、化工作。,操作是宏的基本组成部分,其作用就是执行某个操作命令。一个宏对象可以包含多个宏操作,组成一个操作系列。宏将按序列执行一系列控制指令。,4操作,一个宏对象具有自己的对象名称,而其中的每一个宏也具有一个书写在“宏名”列中的唯一名称“宏名”。,3宏名,操作参数指定操作方向,让操作沿着用户的要求执行。只有指定了操作参数,宏的操作才是完善的。,5操作参数,嵌入宏与独立宏正好相反,它嵌入到窗体、报表和控件对象的事件中,嵌入宏是所嵌入的对象和控件的一部分。嵌入宏在导航窗格中不可见。,7嵌入宏,独立宏是独立的对象,它独立于窗体、报表等对象之外。独立宏在导航窗格中可见。,6独立宏,数据宏是 Access
4、 2010 中新增的一项功能,该功能允许在表事件中(如添加、更新或删除数据等)自动运行。数据宏有两种主要的数据宏类型:一种是由表事件触发的数据宏(也称“事件驱动的”数据宏),一种是为响应按名称调用而运行的数据宏(也称“自已命名的”数据宏)。,8数据宏,子宏是存储在一个宏名下的一组宏的集合。该集合通常都被作为一个引用。在一个宏可以只包含一个子宏,也可以包含若干个子宏。而每一个宏又是由若干个操作组成的。因此,我们可以将若干个子宏设计在一个宏对象中,这个宏对象即称为子宏。,9子宏,1、宏的结构,宏是由操作、参数、注释、组、条件和子宏等组成。Access 2010对宏的结构进行了重新设计,使得宏从结构
5、上与计算机程序结构从形式上看十分相似。宏的操作内容比程序代码要简单,易于设计和理解。 (1)注释 注释是对操作的文字说明,标明该操作的用途和意义。比较简单的操作可以省略注释部分。 (2)条件 条件是一个计算结果为“是”或“否”的逻辑表达式。为宏操作设置执行条件,在一个宏操作中可以设置多个条件。运行宏时,Access将求出第一个条件的表达式的结果,如果这个条件为真,Access就会执行此行所设置的宏操作,直到遇到另一个表达式、宏名或宏的结尾为止。如果条件为假,Access则会忽略相应的宏操作,并且移到下一个包含其他条件或条件列为空的操作行。 (3)组 为了有效的理解宏,Access 2010引进
6、了组(Group)的概念。使用组可以把宏的若干操作,根据其操作目的的相关性分成块,一个块就是一个组。这样宏的结构显得十分清晰,阅读起来也十分方便。,6.1.2 宏的结构及常用宏,2、常用的宏操作,6.1.3 宏选项卡和设计视图,在Access 2010中,在“创建”选项卡的“宏与代码”组中,单击“宏”按钮,打开“宏工具设计”选项卡,该选项卡中共有三个组,分别是“工具”,“折叠/展开”和“显示/隐藏”,如图6-1所示,工具栏中主要按钮功能见表6-2所示。,1.“宏工具设计”选项卡,进入“宏设计”选项卡后,在Access窗口下方,分成3个窗格,左边导航窗格显示宏对象,中间窗格是宏设计器,右边窗格就
7、是“操作目录”,如图6-2所示。,2操作目录,操作目录窗格由3部分组成,上部是程序流程部分,中间是操作部分,下部是此数据库中的对象。 (1)程序流程 程序流程包括注释(Comment)、组(Group)、条件(If)和子宏(Submacro)。 (2)操作部分 操作部分吧宏的操作按操作性能分为8组,分别是“窗口管理”、“宏命令”、“筛选/查询/搜索在”、“数据导入/导出”、“数据库对象”、“数据输入操作”、“系统命令”和“用户界面命令”。Access 2010以清晰的结构形式形式操作命令,是用户创建和管理宏更加方便。如图6-3所示。 (3)在此数据库中 在此部分中列出了当前数据库中的所有宏,以
8、便用户可以重新使用所创建的宏或事件过程代码。如图6-4所示。,在Access 2010中,系统重新设计了宏设计器,与以前版本相比更接近VBA事件过程代码的开发界面,使得开发宏更加方便。 当创建一个宏后,在宏设计器中会出现一个组合框,组合框中显示添加新操作的占位符,组合框前有个绿色十字,这是展开/折叠按钮,如图6-5所示。 添加新操作的方法有3种: (1)直接在组合框中输入操作符; (2)展开“添加新操作”组合框,在下拉列表中选择操作; (3)从“操作目录”窗格中,将某个操作直接拖拽到宏设计器中的组合框中。,3宏设计器,6.1.4 事件属性,事件是预先设置好的可由对象识别并可定义如何响应的动作(
9、或操作)。Access可以响应多种类型的事件,包括鼠标单击、数据更改、窗体打开或关闭及许多其他类型的事件。事件可由用户的操作或Visual Basic语句引起,也可由系统触发。使用与事件关联的属性时,可告知Access执行宏、调用Visual Basic函数或者运行事件过程来响应事件。,1、事件,事件的详细信息被称作属性。事件通常分为鼠标事件、键盘事件、消息事件和空事件4种基本类型。某事件发生后,即刻触发调用一个void类型的响应函数。组件用户和组件设计者均可设定这个函数的内容。 本质上,事件是一种特殊属性,是一个指向事件句柄的函数指针。 对象(object)就是我们软件中所看到窗体、文本框、
10、按钮和标签等。,2、事件属性,1) 插入前(BeforeInsert),当用户在新记录中输入第一个字符时事件发生,在记录真正被创建之前发生。 2) 插入后(AfterInsert),事件在添加新记录之后发生。 3)更新前(BeforeUpdate),事件在控件中的数据被改变或记录被更新之前发生。 4)更新后(AfterUpdate),事件在控件中的数据被改变或记录被更新之后发生。 5)删除(Delete),在用户完成了某些操作时发生事件。例如,按下Delete键,以删除一条记录,在记录实际上被删除之前事件就发生了。 6)打开(Open),在窗体已打开,但第一条记录尚未显示时,Open事件发生。
11、对于报表,事件在报表被预览或被打印之前发生。 7)关闭(Close),事件在当窗体或报表被关闭并从屏幕删除时发生。 8)加载(Load),窗体打开并且显示其中记录时事件Load发生。,3、常用的事件属性,9)卸载(Unload),事件在窗体被关闭之后,在屏幕上删除之前发生。当窗体重新加载时,Access将重新显示窗体和重新初始化其中所有控件的内容。 10)获得焦点(GotFocus),事件在窗体或控件接收到焦点时发生。 11)失去焦点(LostFocus),事件在窗体或控件失去焦点时发生。 12)单击(Click),当用户在一个对象上按下然后释放鼠标按钮时,事件Click发生。 13)计时器触
12、发(Timer),窗体的 Timer 事件按窗体的TimerInterval属性指定的时间间隔定期发生。使用TimerInterval属性可以以毫秒为单位在窗体的 Timer 事件之间指定一个时间间隔。,消息是系统定义的一个32位的值,它唯一地定义了一个事件,向Windows发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息可以由系统或者应用程序产生。比如应用程序改变系统字体改变窗体大小。应用程序可以产生消息使窗体执行任务,或者与其他应用程序中的窗口通讯。,4、消息,消息映射就是把消息跟处理消息的函数一一对
13、应起来,系统内部有一个结构体数组,每个结构体元素都放有消息的类型与对映的处理函数入口地址,这样系统可以跟据消息的类型或ID找到相应的函数处理程序进行处理。,5、消息映射,6.2.1 创建操作序列宏,6.2 创建各类宏,1、单个宏操作,2、多个宏操作,要学会使用宏,我们先来看看宏的设计窗口,宏的创建方法非常简单,所以既不需要有什么“宏向导”,也不必有很多的视图,在宏的创建过程中只有一个设计窗口。 在Access 2010中,在“创建”选项卡的“宏与代码”组中,单击“宏”按钮,就可打开宏设计窗口,就可以在这个窗口中设计宏了,如图6-3所示。,P160 【例6-1】,P161 【例6-2】,6.2.
14、2 创建子宏,Access 2010中的子宏就是之前版本的宏组。子宏是宏的集合,它是将完成同一项功能的多个相关宏组织在一起,构成子宏。通过创建子宏,可以方便地进行分类管理和维护。子宏类似于程序中的“主程序”,而子宏中的“宏名”列中的宏类似于“子程序”。使用子宏既可以增加控制,又可以减少编制宏的工作量。 用户也可以通过引用子宏中的“宏名”执行子宏中的一部分宏。在执行子宏中的宏时,Access 2010将按顺序执行“宏名”列中的宏所设置的操作以及紧跟在后面的“宏名”的操作。在Access 2010中,创建子宏同样也是通过宏设计窗口完成的。 在一个复杂的Access 2010数据库系统中,经常需要响
15、应多种事件,甚至于一个复杂的数据库中很可能需要数百个宏协同工作。如果是用户自行设计宏的话,可能会晕或出错。因此Access 2010提供了一种方便的组织方法,即将宏分组。将几个相关的宏组成一个宏对象,可以创建一个子宏,这样可以减少用户的工作量。,在Access 2010中创建子宏: 1)选择Access 2010“创建”选项卡,打开一个数据表。在“创建”选项卡上的“宏与代码”组中,单击“宏”按钮,打开宏设计器窗口。 2)在“操作目录”窗格中,将程序流程中的子宏命令SubMacro拖拽到“新添加操作”组合框中。 3)在“添加新操作”列中单击下拉按钮,显示操作列表,单击要使用的操作。 4)在“子宏
16、”列表框中为第一个宏输入名称,重复这前面两步,用户可以添加后续宏执行。 5)单击快速访问工具栏中的“保存”按钮,弹出“另存为”对话框,在“宏名称”文本框中输入名称,单击“确定”按钮即完成了创建子宏的工作。 P163 【例6-3】,6.2.3 创建条件宏,条件宏是在满足一定条件后才运行的宏。利用条件宏可以显示一些信息,如学生输入了课程名称却忘记了输入学号,则可利用宏来提醒学生输入遗漏的信息。或者进行数据的有效性检查。要创建条件宏,需要向宏设计器的的宏窗口中的“条件”列表中输入使条件起作用的宏的规则。如果设置的条件为真,宏就运行。如果设置的条件为假,就转到下一个操作。 设置“条件”的含义是:如果前面的条件式结果为True,则执行此行中的操作;若结果为Fatse,则忽略其后的操作。在紧跟此操作的下一行的“条件”栏内输入省略号()。就可以在上述条件为真时连续执行其后的操作。,P165 【例6-4】,6.2.4 创建AutoKeys宏,Autokeys宏通过按下指定给宏的一个键或一个键序触发。为AutoKeys宏设置的键击顺序称为宏的名字。例如,名为F5的宏将在按下F5键时运行。 命名AutoKeys宏时,使用符号“”表示Ctrl键。表6-5列出了可用来运行AutoKeys宏的组合键的类型。,