内容正文:
数据库应用基础
ACCESS 2016
单元六 使用宏及VBA
目录页
01
OPTION
02
OPTION
03
OPTION
04
OPTION
任务一 创建宏
任务二 创建宏组
任务三 创建VBA程序
任务四 创建登录窗体
任务实施
技能拓展
2
02
OPTION
任务二 创建宏组
任务实施
技能拓展
3
任务二 创建宏组
问题导入
在数据库中,为了实现不同的功能,可能需要创建不同的宏,当宏对象比较多时,如何方便管理呢?
任务实施
技能拓展
宏组由多个相关的宏组成,宏组中的每一个宏需要使用不同的宏名。通常将一个窗体或一个报表中的宏放在一个宏组中,以便于管理。
在窗体中创建宏组
任务与目标
任务二 创建宏组
任务实施
技能拓展
5
创建宏组
在上一任务中创建的“商品进货明细”窗体和“商品销售明细”窗体中的“查询”按钮都应用了一个查找记录的宏,但只能查找符合条件的第一条记录,如果希望查找其他符合条件的进货或销售记录,可以在窗体中添加一个“查询下一条”按钮,然后创建一个查找下一条记录的宏与该按钮链接。由于在同一个窗体中创建宏,可以将两个宏合并为一个宏组,操作步骤如下:
(1)在“商品进货明细”窗体的“查询”按钮右侧添加“查询下一条”按钮(名称为“query_next”)。
任务实施
技能拓展
6
创建宏组
(2)打开“商品进货编码查询”宏设计视图,将宏更改为子宏,并命名为“查询”,操作方法如图6-7所示。
图6-7 命名子宏
①选中2个宏操作
②在鼠标右键菜单中选择“生成子宏程序块”命令
③输入子宏名称
任务实施
技能拓展
7
创建宏组
(3)创建第二个子宏“查询下一条”,包括两条操作命令“GoToControl”和“FindNext”,操作方法如图6-8所示。
图6-8 创建“查询下一条”子宏
输入子宏名,添加宏操作命令及相应的参数
提示:
在宏组中,子宏名位置该子宏第一条操作命令的前面,执行宏时,遇到下一个子宏,宏结束。
任务实施
技能拓展
8
图6-9 在窗体按钮单击事件中引用宏
“查询下一条”按钮“单击”事件
“查询”按钮“单击”事件
(4)在“商品进货明细”窗体中,将“查询”按钮的单击事件修改为宏“商品进货编码查询.查询”,将“查询下一条”按钮的单击事件设置为宏“商品进货编码查询.查询下一条”,如图6-9所示。
创建宏组
提示:
引用宏组中某一个子宏的语法为:宏组名.子宏名。
任务实施
技能拓展
9
图6-10 在“商品进货明细”窗体中按商品编码查询相关记录操作
创建宏组
完成以上操作步骤后,打开“商品进货明细”窗体,在“请输入商品编码:”标签后面的文本框中输入需要查询的商品编码,如“A001”,然后单击“查询”按钮,系统会自动查找符合条件的第一条记录。再单击“查询下一条”按钮,如果有同一编码商品的进货记录,则系统自动查找符合条件的下一条记录。如图6-10所示。
任务实施
技能拓展
10
一、创建嵌入宏
嵌入宏存储在窗体、报表或控件的事件属性中,不出现在导航窗格中。前面在窗体中通过向导创建的记录操作按钮,切换面板窗体中的项目等,“单击”事件中都包含有系统自动创建的嵌入宏。
二、创建条件宏
在默认状态下,宏的执行过程是从第一条操作命令依次向下执行,直到最后一个操作命令。在实际应用中,有时需要在满足某种特定条件情况下才执行宏,例如,在“商品进销存”窗体中浏览商品库存数据时,如果库存数量为0,希望弹出提示信息“该商品已售完,请补充货源!”,提醒用户进货。这就需要使用条件宏,本例通过在“商品进销存”窗体中创建嵌入的条件宏的方式来实现上述功能,操作方法如图6-11所示。
任务实施
技能拓展
11
二、创建条件宏
图6-11 创建条件宏
创建好的嵌入宏
①在窗体“属性表”窗格“事件”选项卡“成为当前”事件右侧单击“选择生成器”按钮
⑤在设计视图中创建条件宏
宏操作
③单击“确定”按钮
②在“选择生成器”对话框中选择“宏生成器”
条件表达式
④在“操作目录”窗格中双击“If”程序流程
任务实施
技能拓展
12
二、创建条件宏
技能拓展
图6-12 执行条件宏
库存数量为0
宏设计视图“条件”列中输入的“[Forms]![商品进销存]![amount]=0”,表示“商品进销存”窗体的“amount”字段控件中的值为0时,操作命令为“MsgBox”。
在窗体中完成条件宏创建后,打开“商品进销存”窗体,通过导航按钮浏览记录,当浏览到商品库存数量为0的记录时,系统将弹出消息框,如图6-12所示。
弹出的消息框
任务实施
技能拓展
13
三、创建添加窗体菜单栏宏