《数据库原理及应用宏课件》由会员分享,可在线阅读,更多相关《数据库原理及应用宏课件(60页珍藏版)》请在金锄头文库上搜索。
1、第八章第八章 宏宏1数据库原理及应用宏本章要点 了解什么是宏,掌握宏的创建与编辑的方法,掌握宏与宏组的使用方法,掌握触发事件运行宏或宏组,掌握用宏命令间接运行宏或宏组的方法。2数据库原理及应用宏宏的基本概念宏的基本概念-宏的定义宏的定义宏是一种特定的编码,它是一个或多个宏命宏是一种特定的编码,它是一个或多个宏命令的集合。令的集合。 宏以动作作为基本单位,一个宏命令宏以动作作为基本单位,一个宏命令(宏操作宏操作)能够完成一个特定的操作动作。每个宏命令能够完成一个特定的操作动作。每个宏命令是由动作名和操作参数组成的。其结构有些是由动作名和操作参数组成的。其结构有些类似于函数。但调用函数将获得一个返
2、回值,类似于函数。但调用函数将获得一个返回值,而执行宏操作将完成一个操作动作。而执行宏操作将完成一个操作动作。单个宏操作的功能是很有限的。但是当众多单个宏操作的功能是很有限的。但是当众多的宏操作串联在一起,被依次顺序地执行时,的宏操作串联在一起,被依次顺序地执行时,就能够执行一个较复杂的任务。就能够执行一个较复杂的任务。3数据库原理及应用宏宏的基本概念宏的基本概念-宏的分类宏的分类 Access中的宏可以分为操作序列、中的宏可以分为操作序列、宏组和条件宏三类。宏组和条件宏三类。操作序列宏操作序列宏按照一定的顺序依次定义宏操作。按照一定的顺序依次定义宏操作。Echo 运行宏时停止屏幕更新运行宏时
3、停止屏幕更新(关闭回响关闭回响)MsgBox 显示一条信息。显示一条信息。Close 关闭窗体关闭窗体4数据库原理及应用宏宏的基本概念宏的基本概念-宏的分类宏的分类宏组:宏组:所谓宏组,就是在一个宏对象下存储多个宏。所谓宏组,就是在一个宏对象下存储多个宏。如果存在着许多宏,可以将功能相关或相近的如果存在着许多宏,可以将功能相关或相近的宏设置到一个宏组中,这样不仅减少了宏组的宏设置到一个宏组中,这样不仅减少了宏组的个数,而且有助于对数据库中的宏进行分类管个数,而且有助于对数据库中的宏进行分类管理和维护。理和维护。条件宏:条件宏:为指定的宏操作设置相关的条件表达式,以控为指定的宏操作设置相关的条件
4、表达式,以控制该宏操作在什么情况下执行。制该宏操作在什么情况下执行。5数据库原理及应用宏宏的基本概念宏的基本概念-宏的使用宏的使用将将Access宏的宏的53种基本操作组合起来,能够实现有种基本操作组合起来,能够实现有关窗体、报表、查询的功能,使关窗体、报表、查询的功能,使 用起来非常方便。用起来非常方便。宏运行的前提是有触发宏的宏运行的前提是有触发宏的事件事件发生。发生。 数据处理事件数据处理事件 如:如:AfterInsert 焦点处理事件焦点处理事件 如:如:GetFocus 键盘输入事件键盘输入事件 如:如:KeyDown 鼠标操作事件鼠标操作事件 如:如:MouseUp Click宏
5、的使用一般是通过窗体或报表中的命令按钮控件实宏的使用一般是通过窗体或报表中的命令按钮控件实现。现。宏的调用格式:宏的调用格式:.6数据库原理及应用宏常用的宏操作(常用的宏操作(P165)宏操作宏操作说明说明Beep发出嘟嘟声发出嘟嘟声Close关闭对象关闭对象FindNext查找下一个记录查找下一个记录FindRecord 查找符合查找符合FindRecord参数指定的准参数指定的准则的第一个数据实例。则的第一个数据实例。OpenForm打开一个窗体打开一个窗体OpenQuery 打开一个查询打开一个查询Quit退出退出AccessRunMacro运行宏运行宏SetValue设置对象或属性的值
6、设置对象或属性的值7数据库原理及应用宏宏的设计视图宏的设计视图宏编辑器是创建宏的唯一环境(即宏编辑器是创建宏的唯一环境(即宏只有宏只有设计视图一种方式设计视图一种方式)。在宏编辑器中,可)。在宏编辑器中,可以完成运行宏,设置宏条件、宏操作及宏以完成运行宏,设置宏条件、宏操作及宏操作参数,添加或删除宏,更改宏等操作。操作参数,添加或删除宏,更改宏等操作。宏的设计视图窗口分为:上部分的设计区宏的设计视图窗口分为:上部分的设计区和下部分的操作参数区和下部分的操作参数区.8数据库原理及应用宏宏的设计视图宏的设计视图默认的设计区只显示默认的设计区只显示“操作操作”和和“注释注释”列;通过列;通过单击工具
7、栏上的单击工具栏上的“宏名宏名”按钮和按钮和“条件条件”按钮可以按钮可以显示显示“宏名宏名”和和“条件条件”列。这四个参数列中,列。这四个参数列中,“操作操作”列必须选择命令,其他三列的内容均可以省列必须选择命令,其他三列的内容均可以省略。略。宏名:可以为每个宏指定名称。宏名:可以为每个宏指定名称。条件:设置宏运行的条件,如果条件的值为条件:设置宏运行的条件,如果条件的值为True或或“是是”,就会运行该宏。,就会运行该宏。操作:从操作:从Access定义的宏命令中选择。定义的宏命令中选择。注释:输入说明性的内容,不影响宏的执行。注释:输入说明性的内容,不影响宏的执行。设计窗口的下半部是操作参
8、数区,是为选定的宏操设计窗口的下半部是操作参数区,是为选定的宏操作设置相应的参数的。例如,选择作设置相应的参数的。例如,选择OpenForm命令命令后,需要设置的参数有:窗体名称、视图、后,需要设置的参数有:窗体名称、视图、where条件、数据模式、窗口模式等。条件、数据模式、窗口模式等。9数据库原理及应用宏操作序列宏的创建操作序列宏的创建例例8-1 在在“宏宏”设计窗口中建立一个宏,命名为设计窗口中建立一个宏,命名为“宏宏8-1”,该宏按序依次完成以下操作:打开窗,该宏按序依次完成以下操作:打开窗体体“学生基本信息学生基本信息”;弹出消息框,提示;弹出消息框,提示“已经已经打开打开学生基本信
9、息学生基本信息窗体窗体”,关闭,关闭“学生基本学生基本信息信息”窗体。窗体。10数据库原理及应用宏操作序列宏的创建操作序列宏的创建在宏的设计过程中,也可以通过将某些对在宏的设计过程中,也可以通过将某些对象(窗体、报表及其上的控件对象等)拖象(窗体、报表及其上的控件对象等)拖动至动至“宏宏”窗体的操作行内的方式,快速窗体的操作行内的方式,快速创建一个在指定数据库对象上执行操作的创建一个在指定数据库对象上执行操作的宏。宏。注意:注意:如果保存的宏被命名为如果保存的宏被命名为AutoExec,则在打开该数据库时会自动运行该宏则在打开该数据库时会自动运行该宏(打开打开数据库时数据库时Access 将查
10、找名为将查找名为AutoExec 的的宏,如果找到就自动运行它宏,如果找到就自动运行它)。要想取消自。要想取消自动运行,打开数据库时按住动运行,打开数据库时按住键即可键即可11数据库原理及应用宏宏组的创建宏组的创建将若干个宏设计在一个宏对象中,这个宏将若干个宏设计在一个宏对象中,这个宏对象即称为一个宏组。对象即称为一个宏组。宏组中的每个宏都有单独的名称并可独立宏组中的每个宏都有单独的名称并可独立运行,互相没有影响。运行,互相没有影响。宏组中的每一个宏按照宏组中的每一个宏按照“宏名宏名”列中的名列中的名称来标识。称来标识。注意:注意:在数据库窗口宏对象列表中列出的在数据库窗口宏对象列表中列出的是
11、宏组名。简单宏只包括宏操作,没有宏是宏组名。简单宏只包括宏操作,没有宏名。而宏组包括一个或多个有宏名的宏。名。而宏组包括一个或多个有宏名的宏。12数据库原理及应用宏宏组的创建宏组的创建例例8-2 建立名称为建立名称为“宏组宏组1”的宏组,该宏组由的宏组,该宏组由“宏宏1”、 “宏宏2”和和“宏宏3”组成:组成:宏宏1:打开:打开“教师信息表教师信息表”,使计算机发出,使计算机发出“嘟嘟”的响声;的响声;宏宏2:打开:打开“学生选课成绩查询学生选课成绩查询”,弹出消息框,提示,弹出消息框,提示“成成绩查询已打开绩查询已打开”宏宏3:保存所有设置后,退出:保存所有设置后,退出ACCESS13数据库
12、原理及应用宏条件宏的创建条件宏的创建条件宏是指通过条件的设置来控制宏的执行。条件宏是指通过条件的设置来控制宏的执行。在在“条件条件”列中输入条件表达式,如果表达列中输入条件表达式,如果表达式的结果为式的结果为“真真”,则执行该行的操作。,则执行该行的操作。如果希望条件为如果希望条件为“真真”时执行多项操作,可时执行多项操作,可以在后续行以在后续行“条件条件”列中输入省略号(列中输入省略号(),),表示后续操作的条件与前操作的相同。表示后续操作的条件与前操作的相同。如果条件为如果条件为“真真”,执行条件操作(包括后,执行条件操作(包括后续行续行“条件条件”为省略号的操作),然后执行为省略号的操作
13、),然后执行后面的操作;否则,跳过设置条件的操作以后面的操作;否则,跳过设置条件的操作以及带省略号的操作,转到后续操作继续执行。及带省略号的操作,转到后续操作继续执行。14数据库原理及应用宏条件宏的创建条件宏的创建在宏的组成操作序列中,如果既存在带条件的操作在宏的组成操作序列中,如果既存在带条件的操作又存在无条件的操作,那么带条件的操作是否执行又存在无条件的操作,那么带条件的操作是否执行取决于条件式结果的真假,而没有指定条件的操作取决于条件式结果的真假,而没有指定条件的操作则会无条件地执行。则会无条件地执行。对于条件宏而言,在输入条件表达式时,经常需要对于条件宏而言,在输入条件表达式时,经常需
14、要引用窗体或报表上某个控件的值,表达式中的控件引用窗体或报表上某个控件的值,表达式中的控件必须符合以下格式:必须符合以下格式:Forms!窗体名窗体名!控件名控件名Reports!报名表报名表!控件名控件名例,条件表达式例,条件表达式 Forms!窗体窗体1!Text0=“王海王海”, 该宏条件表示判断该宏条件表示判断“窗体窗体1”窗体中窗体中“Text0”文本控文本控件的值是否为件的值是否为“王海王海”15数据库原理及应用宏条件宏的创建条件宏的创建例例8-3 在在“条件宏练习条件宏练习”窗体中,使用宏命令实现如下功窗体中,使用宏命令实现如下功能:选择能:选择“打开窗体打开窗体”单选按钮,并单
15、击单选按钮,并单击“打开打开”按钮,按钮,则打开窗体则打开窗体“学生基本信息学生基本信息”;选择打开;选择打开“打开查询打开查询”单单选按钮,并单击选按钮,并单击“打开打开”按钮,则打开查询按钮,则打开查询“学生选课成学生选课成绩查询绩查询”;选择打开;选择打开“打开数据表打开数据表”单选按钮,并单击单选按钮,并单击“打开打开”按钮,则打开表按钮,则打开表“教师信息表教师信息表”。单击。单击“关闭关闭”,则关闭当前窗体。则关闭当前窗体。16数据库原理及应用宏条件宏的创建条件宏的创建步骤:建立窗体(建立选项组控件)步骤:建立窗体(建立选项组控件)创建宏组创建宏组关联窗体和宏(设置命令按钮的单击属
16、性)关联窗体和宏(设置命令按钮的单击属性)17数据库原理及应用宏对象运算符对象运算符 对象运算符用于指示随后将出现的项目对象运算符用于指示随后将出现的项目类型。有类型。有“!”和和“”两种形式。两种形式。“!”运算符运算符“!”运算符后通常为用户定义的内容。如使用运算符后通常为用户定义的内容。如使用“!”运算符可以引用一个开启的窗体、报表或运算符可以引用一个开启的窗体、报表或开启窗体上的控件。开启窗体上的控件。“”运算符运算符“”运算符后通常为运算符后通常为Access定义的内容。如定义的内容。如使用使用“” 运算符可引用窗体、报表或控件等运算符可引用窗体、报表或控件等对象的属性。对象的属性。
17、例:例: Forms!Form1!Combox1.Visible18数据库原理及应用宏宏的运行宏的运行直接运行宏或宏组直接运行宏或宏组选择要运行的宏,打开宏编辑器,选择选择要运行的宏,打开宏编辑器,选择“运行运行”菜单中的菜单中的“运行运行”命令,运行宏或宏组。命令,运行宏或宏组。选择要运行的宏,单击选择要运行的宏,单击“运行运行”按钮,运行宏按钮,运行宏或宏组。或宏组。注意:对于宏组,上述两种方法只能运行宏组注意:对于宏组,上述两种方法只能运行宏组中的第一个宏。中的第一个宏。19数据库原理及应用宏宏的运行宏的运行通过触发窗体、报表或控件的事件属性运行宏或宏组通过触发窗体、报表或控件的事件属性
18、运行宏或宏组将宏赋予给某一窗体、报表或控件的事件属性值,通将宏赋予给某一窗体、报表或控件的事件属性值,通过触发事件运行宏或宏组过触发事件运行宏或宏组。 如图所示,在窗体的如图所示,在窗体的“加载加载”事件(指窗体被装入内存但事件(指窗体被装入内存但还未显示窗体之时产生的事件)中输入还未显示窗体之时产生的事件)中输入“统计数据统计数据.不及格不及格学生统计学生统计”,则打开窗体时会执行宏组,则打开窗体时会执行宏组“统计数据统计数据”中的中的宏宏“不及格学生统计不及格学生统计”。20数据库原理及应用宏宏的运行宏的运行用宏命令间接运行宏或宏组用宏命令间接运行宏或宏组利用宏可以间接运行宏或宏组,过程是
19、先创建利用宏可以间接运行宏或宏组,过程是先创建 一个宏,该宏中又调用另一个宏(一个宏,该宏中又调用另一个宏( RunMacro ) 的操作命令。的操作命令。在在VBA代码过程中运行宏,即在过程中使用代码过程中运行宏,即在过程中使用DoCmd对象的对象的RunMacro方法运行宏。方法运行宏。例如,运行简单宏,语句格式为:例如,运行简单宏,语句格式为: DoCmd.RunMacro “宏宏2”运行复杂宏,语句格式为:运行复杂宏,语句格式为: DoCmd.RunMacro “统计数据统计数据. 不及格学生统计不及格学生统计”21数据库原理及应用宏宏的运行宏的运行从从“工具工具”菜单中运行宏菜单中运
20、行宏在在“工具工具”菜单中,选择菜单中,选择“宏宏”中的中的“运行宏运行宏”,在,在“执行宏执行宏”对话框中输入要运行的宏。对话框中输入要运行的宏。或先选择好相应的宏,然后执行或先选择好相应的宏,然后执行“工具工具”/“宏宏”/“运行宏运行宏”命令命令对于简单宏,可直接输入宏名。对于宏组,则对于简单宏,可直接输入宏名。对于宏组,则通过在宏组名后面输入一个句点,然后再输入通过在宏组名后面输入一个句点,然后再输入宏名。即:宏名。即:.22数据库原理及应用宏宏的调试宏的调试对于比较复杂的宏,往往需要先调试,再运行。对于比较复杂的宏,往往需要先调试,再运行。ACCESS提供了提供了“单步单步”执行的宏
21、调试工具。执行的宏调试工具。例例8-4:对例:对例8-1所创建的宏所创建的宏“宏宏8-1”进行调试,其进行调试,其步骤如下:步骤如下:在宏设计窗口中打开宏在宏设计窗口中打开宏“宏宏8-1”单击单击“宏设计宏设计”工具栏上的工具栏上的“单步单步”按钮(或选择按钮(或选择“运运行行”/“单步单步“命令),系统将弹出命令),系统将弹出”单步执行宏单步执行宏“状状态。态。单击单击“运行运行”按钮,系统弹出按钮,系统弹出“单步执行宏单步执行宏”状态状态单击单击“单步执行单步执行”按钮,则以单步执行当前宏操作;单按钮,则以单步执行当前宏操作;单击击“停止停止”按钮,则停止宏的执行,并关闭对话框;单按钮,则
22、停止宏的执行,并关闭对话框;单击击“继续继续”按钮,则关闭按钮,则关闭“单步执行宏单步执行宏”对话框,并执对话框,并执行宏的下一个操作;如果宏的设计有误,则会弹出行宏的下一个操作;如果宏的设计有误,则会弹出“操操作失败作失败”的对话框。的对话框。23数据库原理及应用宏利用宏创建菜单的具体步骤利用宏创建菜单的具体步骤设计菜单设计菜单为每个下拉菜单创建宏为每个下拉菜单创建宏为窗口菜单栏中的每个下拉菜单创建宏组,即一为窗口菜单栏中的每个下拉菜单创建宏组,即一个下拉菜单对应一个宏组个下拉菜单对应一个宏组将所有下拉菜单组合到水平菜单中将所有下拉菜单组合到水平菜单中创建一个与窗口菜单栏对应的宏,该宏中只包
23、含创建一个与窗口菜单栏对应的宏,该宏中只包含一种宏操作(一种宏操作(AddMenu),用来将每个下拉菜),用来将每个下拉菜单所创建的宏组增加到菜单栏中单所创建的宏组增加到菜单栏中通过窗体激活菜单系统通过窗体激活菜单系统将窗体的将窗体的“菜单栏菜单栏”属性设置为菜单栏对应的宏属性设置为菜单栏对应的宏名,把菜单挂接到窗体上,使得打开窗体时自动名,把菜单挂接到窗体上,使得打开窗体时自动激活相应的菜单栏。激活相应的菜单栏。24数据库原理及应用宏利用宏创建菜单利用宏创建菜单例例8-5(P161) 创建如图所示的创建如图所示的“主窗体主窗体”,该,该窗体是仅插入了背景图片的空白窗体。该窗体窗体是仅插入了背
24、景图片的空白窗体。该窗体中创建了如下一个菜单栏,具体设置见后面的中创建了如下一个菜单栏,具体设置见后面的表表25数据库原理及应用宏利用宏创建菜单利用宏创建菜单菜单栏所包含的菜单项如下表菜单栏所包含的菜单项如下表26数据库原理及应用宏创建窗口多级菜单创建窗口多级菜单利用宏可以方便地创建多级下拉菜单,其操作方利用宏可以方便地创建多级下拉菜单,其操作方法为:法为:首先,为最末级的菜单创建相应的宏组首先,为最末级的菜单创建相应的宏组然后,创建上一级菜单项的宏组,并通过然后,创建上一级菜单项的宏组,并通过(AddMenu)宏操作将其下级菜单项组合进来)宏操作将其下级菜单项组合进来再依次建立各级菜单的宏再
25、依次建立各级菜单的宏/宏组宏组最后,将创建的窗口菜单栏宏挂接到窗体上最后,将创建的窗口菜单栏宏挂接到窗体上例例8-6(书上(书上P163)为)为“数据表数据表”主菜单项添加主菜单项添加二级下拉菜单二级下拉菜单27数据库原理及应用宏设置热键设置热键在在“宏名宏名”列中加上列中加上“&热键字符热键字符”即可即可,下图下图为为“查询查询”下拉菜单中的菜单项设置热键及其下拉菜单中的菜单项设置热键及其效果效果28数据库原理及应用宏设置分隔线设置分隔线在下拉菜单中插入分隔线将菜单命令分组在下拉菜单中插入分隔线将菜单命令分组在创建菜单宏组时,在需要插入分隔线位置上的在创建菜单宏组时,在需要插入分隔线位置上的
26、“宏名宏名”栏中输入符号栏中输入符号“-”即可即可例如,在例如,在“数据表数据表”菜单的下拉菜单中插入分隔菜单的下拉菜单中插入分隔线线29数据库原理及应用宏菜单中宏的添加与删除菜单中宏的添加与删除将宏添加到菜单中将宏添加到菜单中在数据库窗口中,选择在数据库窗口中,选择“工具工具”菜单下的菜单下的“自定义自定义”命命令,打开令,打开“自定义自定义”对话框。对话框。切换到切换到“命令命令”选项卡,在选项卡,在“类别类别”列表中选择列表中选择“所有所有宏宏”,右侧的,右侧的“命令命令”列表中将会列出数据库中所有的列表中将会列出数据库中所有的宏。宏。选择一个宏名称后,可以将其拖动到菜单条中。选择一个宏
27、名称后,可以将其拖动到菜单条中。删除菜单中的宏删除菜单中的宏当当“自定义自定义”对话框打开时,对话框打开时,右击菜单中的宏,从快捷菜右击菜单中的宏,从快捷菜单中选择单中选择“删除删除” 或或将菜单中的宏直接拖出将菜单中的宏直接拖出30数据库原理及应用宏上机难题详解上机难题详解实验实验85在上一题的基础上建立一个完整的密码管在上一题的基础上建立一个完整的密码管理窗体。该窗体的记录源为个人密码表,结构为密理窗体。该窗体的记录源为个人密码表,结构为密码表(学号、姓名、班级、口令)。可以在码表(学号、姓名、班级、口令)。可以在“工具工具|启动启动”窗口设置它为启动后自动打开,以保证数据窗口设置它为启动
28、后自动打开,以保证数据库的安全。库的安全。31数据库原理及应用宏习习 题题-选择题选择题1)使用宏组的目的是使用宏组的目的是( )。 A设计出功能复杂的宏设计出功能复杂的宏 B对多个宏进行组织和管理对多个宏进行组织和管理 C设计出包含大量操作的宏设计出包含大量操作的宏 D减少程序内存消耗减少程序内存消耗2)下列关于宏操作的叙述错误的是下列关于宏操作的叙述错误的是( )。 A可以使用宏组来管理相关的一系列宏可以使用宏组来管理相关的一系列宏 B所有宏操作都可以转化为相应的模块代码所有宏操作都可以转化为相应的模块代码 C使用宏可以启动其他应用程序使用宏可以启动其他应用程序 D宏的关系表达式中不能应用
29、窗体或报表的控件值宏的关系表达式中不能应用窗体或报表的控件值3)设宏组名为设宏组名为Macro,其中包括,其中包括3个宏分别为个宏分别为Macro1,Macro2,Macro3,调用,调用Macro2的格式正确的是的格式正确的是( )。 AMacro-Macro2 BMacro!Macro2 CMacroMacro2 DMacro232数据库原理及应用宏习习 题题-选择题选择题4)在宏的条件表达式中,要引用在宏的条件表达式中,要引用“rpt”报表上名称报表上名称为为“txtName”控件的值,可以使用的引用表达式控件的值,可以使用的引用表达式是是( )。 AReports!rpt!txtNam
30、e Brpt!txtName CReport!txtName DtxtName5)要限制宏操作的范围,可以在创建宏时定义要限制宏操作的范围,可以在创建宏时定义( )。 A宏操作对象宏操作对象 B宏条件表达式宏条件表达式 C宏操作目标宏操作目标 D控件属性控件属性33数据库原理及应用宏习习 题题-填空题填空题1)Access中,宏可以分为中,宏可以分为3类:操作序列宏、类:操作序列宏、_、带条件操作的宏。、带条件操作的宏。2)宏是一个或多个宏是一个或多个_的集合。的集合。3)如果要建立一个宏,希望执行该宏后,首先打开如果要建立一个宏,希望执行该宏后,首先打开一个窗体,那么在该宏中执行的宏操作命令
31、为一个窗体,那么在该宏中执行的宏操作命令为_。4)在条件宏设计时,对于连续重复的条件,要替代在条件宏设计时,对于连续重复的条件,要替代重复条件式可以使用符号重复条件式可以使用符号_。5)打开一个表应该使用的宏操作是打开一个表应该使用的宏操作是_。34数据库原理及应用宏常用的宏操作常用的宏操作Access 为用户提供了许多宏操作,常用的为用户提供了许多宏操作,常用的宏操作按其功能大致可以分为:对象操作类、宏操作按其功能大致可以分为:对象操作类、数据导入导出类、记录操作类、数据传递类、数据导入导出类、记录操作类、数据传递类、代码执行类、提示警告类和其他类。代码执行类、提示警告类和其他类。35数据库
32、原理及应用宏常用的宏操作常用的宏操作-对象操作类对象操作类 OpenForm宏操作宏操作 使用使用 OpenForm 宏操作可以在窗体的窗体视图、宏操作可以在窗体的窗体视图、设计视图、数据表视图或打印预览中打开一个窗设计视图、数据表视图或打印预览中打开一个窗体,并通过设置记录的筛选条件、数据模式和窗体,并通过设置记录的筛选条件、数据模式和窗口模式来限制窗体所显示的记录以及操作模式。口模式来限制窗体所显示的记录以及操作模式。OpenModule宏操作宏操作 使用使用OpenModule 宏操作可以在指定的过程中打宏操作可以在指定的过程中打开特定的开特定的 Visual Basic 模块。该过程可
33、以是子程模块。该过程可以是子程序、函数过程或事件过程。序、函数过程或事件过程。OpenQuery宏操作宏操作 使用使用 OpenQuery 宏操作可以运行指定的查询、宏操作可以运行指定的查询、打开指定查询的设计视图或者在打印预览窗口中打开指定查询的设计视图或者在打印预览窗口中显示选择查询的结果。显示选择查询的结果。 36数据库原理及应用宏常用的宏操作常用的宏操作-对象操作类对象操作类OpenReport宏操作使用使用OpenReport宏操作可以打印指定的报表、打开指宏操作可以打印指定的报表、打开指定报表的设计视图或者在打印预览窗口中显示报表的定报表的设计视图或者在打印预览窗口中显示报表的结果
34、,也可以限制需要在报表中打印的记录。结果,也可以限制需要在报表中打印的记录。OpenTable宏操作使用使用OpenTable 宏操作可以打开指定表的数据表视图、宏操作可以打开指定表的数据表视图、设计视图或者在打印预览窗口中显示表中的记录,也设计视图或者在打印预览窗口中显示表中的记录,也可以选择表的数据输入模式。可以选择表的数据输入模式。Rename宏操作 使用使用Rename 宏操作可以重新命名指定的数宏操作可以重新命名指定的数据库对象。据库对象。37数据库原理及应用宏常用的宏操作常用的宏操作-对象操作类对象操作类RepaintObject宏操作使用使用RepaintObject 宏操作可以
35、完成指定数据宏操作可以完成指定数据库对象挂起的屏幕更新。如果没有指定数据库库对象挂起的屏幕更新。如果没有指定数据库对象,则对活动数据库对象进行更新。更新包对象,则对活动数据库对象进行更新。更新包括对数据库对象的所有挂起控件进行重新计算。括对数据库对象的所有挂起控件进行重新计算。SelectObject宏操作使用使用SelectObject 宏操作可以选择指定的数据宏操作可以选择指定的数据库对象,使其成为当前对象。库对象,使其成为当前对象。38数据库原理及应用宏常用的宏操作常用的宏操作-对象操作类对象操作类Close宏操作使用使用Close宏操作可以关闭指定的窗口。如果宏操作可以关闭指定的窗口。
36、如果没有指定窗口,没有指定窗口,Access 则关闭当前活动窗口。则关闭当前活动窗口。DeleteObject宏操作使用使用DeleteObject 宏操作可以删除一个特定的宏操作可以删除一个特定的数据库对象。数据库对象。 CopyObject宏操作使用使用CopyObject宏操作可以将指定的数据库宏操作可以将指定的数据库对象复制到不同的数据库中,或以新的名称复对象复制到不同的数据库中,或以新的名称复制到同一个数据库中。制到同一个数据库中。 39数据库原理及应用宏常用的宏操作常用的宏操作-数据导入导出类TransferDatabase宏操作使用使用TransferDatabase 宏操作可以
37、在宏操作可以在Access 数据库与其它的数据库之间导入与导出数据。还数据库与其它的数据库之间导入与导出数据。还可以从其它的数据库链接表到当前数据库中来。可以从其它的数据库链接表到当前数据库中来。通过链接表,在其它的数据库中也可以访问链接通过链接表,在其它的数据库中也可以访问链接中表的数据。中表的数据。TransferText宏操作使用使用TransferText宏操作可以在宏操作可以在Access 的当前的当前数据库与文本文件之间导入或导出数据。还可以数据库与文本文件之间导入或导出数据。还可以将文本文件中的数据链接到将文本文件中的数据链接到Access的当前数据的当前数据库中。库中。 40数
38、据库原理及应用宏常用的宏操作常用的宏操作-数据导入导出类TransferSpreadsheet宏操作使用使用TransferSpreadsheet宏操作可以在宏操作可以在Access的当前数据库和电子表格文件之间导入的当前数据库和电子表格文件之间导入或导出数据。还可以将或导出数据。还可以将Microsoft Excel 电子表电子表格中的数据链接到格中的数据链接到Access当前数据库中来。通当前数据库中来。通过链接的电子表格,用户可以在过链接的电子表格,用户可以在Access中查看中查看和编辑电子表格数据,同时还允许在和编辑电子表格数据,同时还允许在Microsoft Excel 电子表格中
39、对数据进行访问。电子表格中对数据进行访问。ransferSpreadsheet宏操作还可以链接宏操作还可以链接Lotus 1-2-3电子表格文件中的数据,但这些数据在电子表格文件中的数据,但这些数据在Access中是只读的。中是只读的。41数据库原理及应用宏常用的宏操作常用的宏操作-记录操作类GoToRecord宏操作使用使用GoToRecord宏操作可以在打开的表、窗体或查询宏操作可以在打开的表、窗体或查询中重新定位记录,使指定的记录成为当前记录。中重新定位记录,使指定的记录成为当前记录。 FindRecord宏操作使用使用FindRecord宏操作可以查找与给定的数据相匹配宏操作可以查找与
40、给定的数据相匹配的首条记录。的首条记录。FindRecord宏操作可以在数据表视图、宏操作可以在数据表视图、查询和窗体的数据源中查找记录。查询和窗体的数据源中查找记录。 FindNext宏操作FindNext宏操作通常与宏操作通常与FindRecord 宏操作搭配使用以宏操作搭配使用以查找与给定数据相匹配的下一条记录。可以多次使用查找与给定数据相匹配的下一条记录。可以多次使用FindNext宏操作以查找与给定数据相匹配的记录。宏操作以查找与给定数据相匹配的记录。FindNext宏操作没有任何操作参数。宏操作没有任何操作参数。 42数据库原理及应用宏常用的宏操作常用的宏操作-数据传递类Reque
41、ry宏操作使用使用Requery宏操作可以通过刷新控件的数据源来更新宏操作可以通过刷新控件的数据源来更新活动对象中特定控件的数据。如果不指定控件,活动对象中特定控件的数据。如果不指定控件,Requery宏操作将对对象本身的数据源进行刷新。宏操作将对对象本身的数据源进行刷新。Requery宏操作可以保证活动对象或其所包含的控件显宏操作可以保证活动对象或其所包含的控件显示的是最新的数据。示的是最新的数据。 SendKeys宏操作使用使用SendKeys宏操作可以把按键直接传送到宏操作可以把按键直接传送到Access或或别的别的Windows应用程序。应用程序。 SetValue宏操作使用使用Set
42、Value宏操作可以对窗体和报表上的字段、控件宏操作可以对窗体和报表上的字段、控件或属性进行设置。或属性进行设置。 43数据库原理及应用宏常用的宏操作常用的宏操作-代码执行类RunApp宏操作使用使用RunApp宏操作可以在宏操作可以在Access中运行一个中运行一个Windows或或 MS-DOS 应用程序。应用程序。RunCode宏操作使用使用RunCode宏操作可以调用宏操作可以调用Visual Basic的函数过程。的函数过程。 RunMacro宏操作使用使用RunMacro宏操作可以运行一个宏对象或宏对象中宏操作可以运行一个宏对象或宏对象中的一个宏组。的一个宏组。 RunSQL宏操作
43、使用使用RunSQL宏操作可以运行宏操作可以运行Access的动作查询,还可的动作查询,还可以运行数据定义查询。以运行数据定义查询。 44数据库原理及应用宏常用的宏操作常用的宏操作-提示警告类Beep宏操作使用使用Beep宏操作可以通过个人计算机的扬宏操作可以通过个人计算机的扬声器发出嘟嘟声。声器发出嘟嘟声。Beep宏操作没有任何操宏操作没有任何操作参数。作参数。Echo宏操作使用使用Echo宏操作可以指定是否打开回响。宏操作可以指定是否打开回响。MsgBox宏操作使用使用MsgBox宏操作可以显示包含警告信宏操作可以显示包含警告信息或其它信息的消息框。息或其它信息的消息框。 45数据库原理及
44、应用宏常用的宏操作常用的宏操作-其他类Hourglass宏操作使用使用Hourglass宏操作可以使鼠标指针在宏执行时变成沙宏操作可以使鼠标指针在宏执行时变成沙漏形状或其他选择的图标。漏形状或其他选择的图标。GoToControl宏操作使用使用GoToControl宏操作可以把焦点移到打开的窗体以宏操作可以把焦点移到打开的窗体以及特定的字段或控件上。如果要让某一特定的字段或控及特定的字段或控件上。如果要让某一特定的字段或控件获得焦点,可以使用件获得焦点,可以使用GoToControl宏操作。宏操作。 ShowToolbar宏操作使用使用ShowToolbar宏操作可以显示或隐藏内置工具栏或宏操
45、作可以显示或隐藏内置工具栏或自定义工具栏。自定义工具栏。 Quit宏操作使用使用Quit宏操作可以退出宏操作可以退出Access。Quit宏操作还可以指宏操作还可以指定在退出定在退出Access之前采用何种方式保存数据库对象。之前采用何种方式保存数据库对象。 46数据库原理及应用宏常用的宏操作常用的宏操作-其他类CancelEvent宏操作使用使用CancelEvent宏操作可以中止一个事件,该宏操作可以中止一个事件,该事件导致事件导致Access执行包含此操作的宏。执行包含此操作的宏。Maximize宏操作使用使用Maximize宏操作可以最大化活动窗口,使宏操作可以最大化活动窗口,使其充满
46、其充满Access 的整个窗口。的整个窗口。Maximize宏操作宏操作可以使用户尽可能多地看到活动窗口中的对象。可以使用户尽可能多地看到活动窗口中的对象。Maximize宏操作没有任何操作参数。宏操作没有任何操作参数。Minimize宏操作使用使用Minimize宏操作可以将活动窗口最小化,宏操作可以将活动窗口最小化,使其缩小为使其缩小为Access窗口底部的小标题栏。窗口底部的小标题栏。Minimize宏操作没有任何操作参数。宏操作没有任何操作参数。 47数据库原理及应用宏常用的宏操作常用的宏操作-其他类Restore宏操作使用使用Restore宏操作可以将处于最大化或最小化的宏操作可以将
47、处于最大化或最小化的窗口恢复为原来的大小。窗口恢复为原来的大小。Restore宏操作没有任何宏操作没有任何操作参数。操作参数。 SetWarnings宏操作使用使用SetWarnings宏操作可以打开或关闭系统信宏操作可以打开或关闭系统信息。息。PrintOut宏操作使用使用PrintOut宏操作可以打印打开数据库中的活宏操作可以打印打开数据库中的活动对象,也可打印数据表、报表、窗体和模块。动对象,也可打印数据表、报表、窗体和模块。MoveSize宏操作使用使用MoveSize宏操作可移动活动窗口或调整其大宏操作可移动活动窗口或调整其大小。小。 48数据库原理及应用宏事件属性事件属性要了解宏对
48、象在要了解宏对象在Access中的执行机制,须首先了中的执行机制,须首先了解事件、消息与消息映射的概念。解事件、消息与消息映射的概念。 Access中,每当产生了一个事件时中,每当产生了一个事件时(例如,用户单例如,用户单击鼠标左键产生击鼠标左键产生【单击单击】事件事件),总会有消息与之,总会有消息与之对应。消息一经产生即被送入到消息队列中并最对应。消息一经产生即被送入到消息队列中并最终被窗口对象感知。终被窗口对象感知。 消息的产生是随机的,怎样才能保证消息一经产消息的产生是随机的,怎样才能保证消息一经产生就会很快被窗口对象所感知生就会很快被窗口对象所感知?这将完全依靠消息这将完全依靠消息的循
49、环机制,即窗口对象总是不断地到它自己的的循环机制,即窗口对象总是不断地到它自己的消息队列中寻找消息。一旦某个消息到达队列,消息队列中寻找消息。一旦某个消息到达队列,窗口对象便能立即感知到。窗口对象便能立即感知到。 49数据库原理及应用宏事件属性事件属性在在Access中,窗体对象、报表对象及其内部的控中,窗体对象、报表对象及其内部的控件均为窗口对象,即件均为窗口对象,即Access的窗体、报表及其内的窗体、报表及其内部的控件可以感知消息。部的控件可以感知消息。消息一旦产生并且被窗体、报表或控件感知以后,消息一旦产生并且被窗体、报表或控件感知以后,如何激活一个宏对象以响应消息,这就需要依靠如何激
50、活一个宏对象以响应消息,这就需要依靠消息映射。消息映射是指将某一个消息与指定的消息映射。消息映射是指将某一个消息与指定的宏对象建立起一一对应的关系。如果一旦消息产宏对象建立起一一对应的关系。如果一旦消息产生,生,Access立即自动执行指定的宏或模块对象。立即自动执行指定的宏或模块对象。 50数据库原理及应用宏事件属性事件属性在在Access中,消息映射是通过在窗体、报中,消息映射是通过在窗体、报表及其内部的控件中设置事件属性来实现表及其内部的控件中设置事件属性来实现的。在指定的窗体、报表或控件的事件属的。在指定的窗体、报表或控件的事件属性中填写一个宏对象名就意味着该消息与性中填写一个宏对象名
51、就意味着该消息与填入的宏对象建立起了映射关系,将来一填入的宏对象建立起了映射关系,将来一旦窗体、报表或控件感知到该消息就转去旦窗体、报表或控件感知到该消息就转去执行指定的宏对象或模块。所以,在执行指定的宏对象或模块。所以,在Access中凡是具有事件属性的对象都可以中凡是具有事件属性的对象都可以感知消息并进行消息映射。感知消息并进行消息映射。51数据库原理及应用宏事件属性事件属性在在 Access中,事件属性的使用最为频繁,也最为中,事件属性的使用最为频繁,也最为关键。下表列出了常用的事件属性。关键。下表列出了常用的事件属性。事件属性事件属性说明说明打开打开(On Open)窗体或报表被打开但
52、还未显示记录之时产生的事件窗体或报表被打开但还未显示记录之时产生的事件加载加载(On Load)窗体被装入内存但还未显示窗体之时产生的事件窗体被装入内存但还未显示窗体之时产生的事件调整大小调整大小(On Resize)窗体打开后,窗体的大小改变之时产生的事件窗体打开后,窗体的大小改变之时产生的事件成为当前成为当前(On Current)非非当当前前记记录录成成为为当当前前记记录录时时产产生生的的事事件件。首首次次打打开开窗窗体或非当前窗体成为当前窗体时产生的事件体或非当前窗体成为当前窗体时产生的事件激活激活(On Activate)窗体或报表由非活动状态变为活动状态时产生的事件窗体或报表由非活
53、动状态变为活动状态时产生的事件获得焦点获得焦点(On Got Focus)窗口对象获得焦点之后产生的事体窗口对象获得焦点之后产生的事体失去焦点失去焦点(On Lost Focus)窗口对象失去焦点之前产生的事件窗口对象失去焦点之前产生的事件单击单击(On Click)在窗口对象上单击鼠标产生的事件在窗口对象上单击鼠标产生的事件双击双击(On Dbl Click)在窗口对象上双击鼠标产生的事件在窗口对象上双击鼠标产生的事件关闭关闭(On Close)窗体或报表被关闭并从屏幕上删除之前产生的事件窗体或报表被关闭并从屏幕上删除之前产生的事件52数据库原理及应用宏事件属性事件属性说明说明鼠标按下鼠标按
54、下(On Key Press)在窗口对象上按下鼠标键产生的事件在窗口对象上按下鼠标键产生的事件鼠标移动鼠标移动(On Mouse Move)在窗口对象上移动鼠标产生的事件在窗口对象上移动鼠标产生的事件鼠标释放鼠标释放(On Mouse Up)在窗口对象上松开鼠标键时产生的事件在窗口对象上松开鼠标键时产生的事件更新前更新前(Before Update)更新磁盘数据之前产生的事件更新磁盘数据之前产生的事件更新后更新后(After Updata)更新磁盘数据之后产生的事件更新磁盘数据之后产生的事件卸载卸载(On Unload)窗体关闭后、从内存撤消之前产生的事件窗体关闭后、从内存撤消之前产生的事件停
55、用停用(On Deactivate)窗体或报表由活动状态变为非活动状态时产生的事件窗体或报表由活动状态变为非活动状态时产生的事件插入前插入前(Before Insert)记录插入操作执行之前产生的事件记录插入操作执行之前产生的事件插入后插入后(After Insert)记录插入操作执行之后产生的事件记录插入操作执行之后产生的事件删除删除(On Delete)删除记录操作执行之前产生的事件删除记录操作执行之前产生的事件确认删除后确认删除后(After Del Confirm)删除操作被用户确认之后产生的事件删除操作被用户确认之后产生的事件确确 认认 删删 除除 前前 (Before Del Co
56、nfirm)删除操作交给用户确认之前产生的事件删除操作交给用户确认之前产生的事件事件属性事件属性53数据库原理及应用宏事件属性事件属性说明说明击键击键(On Mouse Up)按下并释放某键盘键时产生的事件按下并释放某键盘键时产生的事件出错出错(On Error)在窗口对象上发生操作错误时产生的事件在窗口对象上发生操作错误时产生的事件计时器触发计时器触发(On Timer)时时间间中中断断事事件件。该该事事件件产产生生的的频频率率由由【计计时时器器间间隔隔】属属性性决决定定。【计计时时器器间间隔隔】(Timer Interval)属属性性值值决决定定了了连连续续两两个个时时间间中中断断事事件件
57、的的间间隔隔时时间间。它它的的值值越越大大,时时间间中中断断事事件件出出现现的的频频率率越越低。但是当它的值为低。但是当它的值为0时,时间中断事件不再出现时,时间中断事件不再出现进入进入(On Enter)光标进入控件之时产生的事件光标进入控件之时产生的事件退出退出(On Exit)光标离开控件之时产生的事件光标离开控件之时产生的事件事件属性事件属性54数据库原理及应用宏用户交互函数用户交互函数InputBoxInputBox函数的作用是打开一个对话框,函数的作用是打开一个对话框,并等待用户键入文本。当用户输入文本,并等待用户键入文本。当用户输入文本,并单击并单击“确定确定”按钮或按回车键后,
58、函数按钮或按回车键后,函数返回文本框中的输入的文本值。返回文本框中的输入的文本值。55数据库原理及应用宏用户交互函数用户交互函数InputBox函数格式:函数格式: InputBox$(提示提示,标题标题,缺省缺省,x坐标位置坐标位置,y坐标位置坐标位置)“$”:如果有此项,返回的数据类型是字符串型;省略此如果有此项,返回的数据类型是字符串型;省略此项,返回的数据类型是变体类型。项,返回的数据类型是变体类型。“提示提示”:是:是InputBox函数中唯一不能省略的选项,是函数中唯一不能省略的选项,是字符表达式,其结果值将作为提示信息显示在对话框中。字符表达式,其结果值将作为提示信息显示在对话框
59、中。“标题标题”为可选项:字符串表达式,其结果值将显示在为可选项:字符串表达式,其结果值将显示在对话框的标题栏中。对话框的标题栏中。“缺省缺省”为可选项:当在对话框中无输入时,则该缺省为可选项:当在对话框中无输入时,则该缺省值作为输入的内容。值作为输入的内容。“x坐标位置坐标位置”和和“y坐标位置坐标位置”:确定对话框在屏幕上:确定对话框在屏幕上的位置。缺省的位置。缺省X坐标时,对话框将在屏幕上水平居中,缺坐标时,对话框将在屏幕上水平居中,缺省省Y坐标,对话框将被放置在屏幕垂直方面坐标,对话框将被放置在屏幕垂直方面1/3的位置的位置56数据库原理及应用宏用户交互函数用户交互函数InputBox
60、例例:x=InputBox(“请输入学生成绩请输入学生成绩”,“查查询输入询输入”,85)其作用是把通过其作用是把通过InputBox函数输入的学生成绩函数输入的学生成绩值赋给了变量值赋给了变量X,以便程序根据变量,以便程序根据变量X中的不同中的不同值进行相关处理。值进行相关处理。57数据库原理及应用宏MsgBox函数和MsgBox语句MsgBox函数和函数和MsgBox语句的作用是打开语句的作用是打开一个对话框,显示相关信息,等待用户通一个对话框,显示相关信息,等待用户通过按钮进行选择,最后针对用户单击的按过按钮进行选择,最后针对用户单击的按钮,返回一个相应的整数告诉用户单击哪钮,返回一个相
61、应的整数告诉用户单击哪一个按钮。一个按钮。MsgBox语句形式:语句形式: MsgBox 提示提示,按钮按钮,标题标题MsgBox函数形式:函数形式: 变量名变量名% = MsgBox(提示提示,按钮按钮,标题标题)58数据库原理及应用宏MsgBox函数和MsgBox语句语句和函数说明:语句和函数说明:“提示提示”和和“标题标题”:同:同InputBox函数的意义函数的意义相同。相同。“按钮按钮”为可选项:整型表达式,由书上为可选项:整型表达式,由书上P222表表11-5所示的所示的4组方式组合而成,且每组方式只组方式组合而成,且每组方式只能选择一个。能选择一个。“按钮按钮”的内容决定了对话框
62、显的内容决定了对话框显示按钮的数目及形式,使用的图标样式,缺省示按钮的数目及形式,使用的图标样式,缺省按钮以及消息框的强制回应等。如省略,缺省按钮以及消息框的强制回应等。如省略,缺省值为值为 0。MsgBox函数的返回值返回了用户的选择。函数的返回值返回了用户的选择。 返返回值的含义见回值的含义见P222表表11-659数据库原理及应用宏MsgBox函数和MsgBox语句例例11-11 MsgBox的使用的使用 x=MsgBox(“MsgBox应用演示应用演示”, vbYesNoCancel+vbExclamaion+vbDefaultButton1,”示例示例”) If x=7 then MsgBox “用户单击的是用户单击的是No按钮按钮“ Endif 以上语句的等效语句为:以上语句的等效语句为: x=MsgBox(“MsgBox应用演示应用演示”,3+48+0,”示例示例”) 而语句而语句x=MsgBox(“MsgBox”+Char(10)+char(13)+”应用演示应用演示”,3+48+0,”示例示例”)的提示信息将分两行显示的提示信息将分两行显示回车+换行60数据库原理及应用宏