模块8.1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第八章模块第一节
一、介绍:在ACCESS系统中,借助宏对象可以完成事件的响应处理,但对于复杂条件的循环等结构则无能为力;
二是宏对数据库对象的处理,如对表或查询对象的处理,能力也很弱。
在这种情况下,可以使用ACCESS系统提供的“模块”数据库对象解决实际开发中复杂的应用。
本章主要介绍Access数据库的VBA代码操作以及代码“容器”——类模块(包含窗体模块和报表模块)
——标准模块对象的使用。
二、模块的基本概念
1、介绍:模块是ACCESS系统中的一个重要对象,以VBA(Visual Basic Application)语言为基础编写,以函数
过程(Function)或子过程(Sub)为单元的集合方式存储。
2、分类:在ACCESS中,模块分为类模块
标准模块
3、类模块:窗体模块和报表模块都属于类模块,它们从属于各自的窗体或报表。
进入模块代码设计区域方法:一是鼠标点击工具栏“代码”按钮进入
二是为窗体或报表创建事件过程时,系统会自动进入相应代码设计区域。
窗体模块和报表模块通常都含有事件过程而过程的运行用于响应窗体或报表上的事件。使用事件可以控制窗体或报表的行为以及它们对用户操作的响应。
4、标准模块:一般用于存放供其他Access数据库对象使用的公共过程。
标准模块通常安排一些公共变量或过程供类模块里的过程调用。
在这个标准模块内部也可以定义私有变量和私有过程仅供本模块内部使用。
5、窗体和控件的事件
事件就是在窗体和控件上进行够识别的动作而执行的操作。
(1).事件有:键盘事件,鼠标事件,对象事件,窗口事件,操作事件.
键盘事件:键按下,键释放,击键.
鼠标事件:单击事件(click),双击事件(dbclick).
对象事件:获得焦点,失去焦点.
窗口事件:打开(窗体打开,但第一条记录显示之前发生的),关闭,加载(打开窗体,并显示它的记录时发生,在打开之后).open
操作事件:指操作数据有关的事件.
(2).事件的设置。
a设置某个事件执行某个宏。
b通过模块设置某事件。
模块设置事件,涉及到vba代码。
事件的命名方式。
窗体的事件命名方式:
PRIVATE SUB FORM_事件名。
语句序列
END SUB
①窗体的打开事件:窗体打开时里面的语句
PRIVATE SUB FORM_OPEN。
语句序列
END SUB
例如:窗体的单击事件,实现进入窗体视图时,单击显示“363133”
Private Sub Form_Click()
MsgBox "363133"
End Sub
②窗体的计时器事件:每隔计时时间间隔(Timerinterval)的时间J就会被激发一次,该时间的
设定是设置窗体的计时器间隔属性,里面的数值以毫秒为单位。把属性改为0就会停止计时。
PRIVATE SUB FORM_TIMER。
语句序列
END SUB
例如:双击窗体选择器—事件—记时器间隔(500)—记时器触发(事件过程)—“…”向导
Private Sub Form_Timer()
Me.lb1.FontSize = Me.lb1.FontSize + 9
End Sub
Private Sub Form_Timer()
Me.Lb1.FontSize = Me.Lb1.FontSize + 9
End Sub
已知当前窗体上有一标签控件(Lb1), 计时器事件
实现每隔500ms Lb1标签上的文字放大9号
注:计时器间隔的单位是毫秒(mm)
500毫秒为半秒
1000毫秒为1秒
控件的事件的命名方式
PRIVATE SUB 控件名称_事件名。
语句序列
END SUB
例如:定义一个窗体的事件(给整个窗体设置单击事件),使其显示“信息”。
方法:从窗体中进入代码的编辑区域—Sub aa()
MsgBox "aa"
End Sub——form
Private Sub Form_Load()—F5
MsgBox "信息"
End Sub
已知当前窗体上有两个命令按钮,分别命名为
comd1和comd2,comd2初始状态为不可用,要求:
当单击 comd1时实现comd2可用
Private Sub comd1_Click()
d2.Enabled = True
End Sub
例如:定义一个命令按钮控件命名为cmd执行它的单击事件(编写vba代码)
要求:①弹出一个提示框显示“3”
②使得当前窗体上标签控件(Lb1),在鼠标单击命令按钮(cmd)是实现文字颜色显示为“红色”,同时“标
题”显示信息为“123564”
方法:在窗体中有两个控件,分别是标签控件、命令按钮控件—分别命名为Lb1、cmd—设置其命令按钮的单击事件—语句序列①me.Lb1.Forecolor=255
③me.Lb1.Caption=”123564”(为什么加引号?因为每个属性变量都有一个接收的数据类型,当前
Caption就是一个变量,即标题接收的数据类型就是字符串,所以要用引号引起)
注意:Me.可写可不写,但是写上之后,当我们想要引用的窗体名称较长时,我们可以很容易地找到该控件。
报表模块与窗体一样
对于文本框有更新事件(cheng),表示文本框里面内容更改时执行里面的语句。
三、引用
1.引用的方式:
(1)引用当前窗体的属性。
ME.属性名或者ME!属性名,或者直接写属性亦可,但为了书写更快速,用ME.属性名的方式。
(2)引用控件的属性
引用方式:
FORMS!窗体名!控件名.[属性名]
Reports!报表名!控件名.[属性名]
例如:单击窗体2上的命令按钮( cmd)使得fTest窗体上的Btitle控件的文字颜色显示为红色
Forms!fTest!Btitle.forecolor=255
Backcolor背景颜色
Fontsize字号
如果应用当前窗体的控件:
ME.控件名.属性名
对于有的类型控件有默认的属性,比如文本框,他的默认属性就是text,那么这默认属性不必写,
也就是说
引用文本框的值的方式为
me.控件名就可以了
举例:文本框控件的事件,设置其事件为运行时在文本框内显示对应的“工作时间”。
方法:以教师表为数据源,在当前窗体中添加计算控件,命名为(txt1),显示“工作时间”字段值
右键—属性—事件生成器—Private Sub txt1_BeforeUpdate(Cancel As Integer)
Me.txt1 (即默认属性不必写)
End Sub
习题:txt1的单击事件
PRIVATE SUB txt1_click。
语句序列
END SUB