access第8章VBA程序设计课件.pptx
《access第8章VBA程序设计课件.pptx》由会员分享,可在线阅读,更多相关《access第8章VBA程序设计课件.pptx(73页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第8 8章章 模块与模块与VBAVBA编程编程本章内容8.1 模块概述模块概述8.2 VBA编程环境编程环境8.3 面向对象程序设计面向对象程序设计8.4 VBA编程语言基础编程语言基础8.5 VBA程序流程控制语句程序流程控制语句8.6 VBA过程调用与参数传递过程调用与参数传递8.7 VBA程序调试程序调试8.1 8.1 模模 块块 概概 述述 模块是Access数据库中的一个数据库对象,它以VBA(Visual Basic for Application)语言为基础编写。 8.1.1 模块的类型类模块 可以包含新对象的定义的模块。一个类的每个实例都新建一个对象。 窗体模块和报表模块都是
2、类模块。Access有两种类型的模块:类模块和标准模块。标准模块 简称“模块” 。大多数模块都是标准模块,其中包含的代码和特定的数据库对象并无关联,当数据库中对象被移动时,模块还在原数据库中不动。8.1.2 将宏转换为模块 转换转换窗体或报表中的宏窗体或报表中的宏 将窗体或报表引用的任意宏转换为VBA代码,并向窗体或报表的类模块中添加该代码。该类模块将成为窗体或报表的组成部分,并且如果窗体或报表被移动或复制时,它也随之改变。 例8-1 将“打开学生表”窗体中的宏转换为模块。 转换全局宏转换全局宏 例8-2 将“打开学生表”全局宏转换成VBA代码。操作步骤如下:8.1.3 模块的结构 模块模块声
3、明部分声明部分 可以在这部分定义变量、常量、自定义类型和外部过程。在模块中,声明部分与过程部分是分割开来的,声明部分中设定的常量和变量是全局性的,可以被模块中的所有过程调用。 过程过程定义部分定义部分 这是一种自动执行的过程,用来对用户或程序代码启动的事件或系统触发的事件做出响应。类模块中的过程大部分是事件过程,也可以包含仅供本模块调用的过程和函数。标准模块中的过程和函数均为通用过程,可以供本模块或其他模块中的语句调用。8.2 VBA8.2 VBA编程环境编程环境 在Access中,VBA程序是使用VB编辑器(Visual Basic Editor,VBE)编写的。VBE是编辑、编译、运行、调
4、试VBA代码的集成环境。8.2.1 打开VBE窗口 启动VBE的方法: 在数据库中,单击“数据库工具”选项卡“宏”选项组中的Visual Basic按钮。 在数据库中,单击“创建”选项卡“宏与代码”选项组中的Visual Basic按钮。 创建新的标准模块。单击“创建”选项卡“宏与代码”选项组中的“模块”按钮,就在VBE编辑器中创建一个空白模块。 如果已有一个标准模块。在“导航窗格”窗口选择“模块”对象列表中的该模块,就会打开VBE窗口并显示该模块的内容。 在窗体、报表的设计视图中,右击控件对象,再选择快捷菜单上的“事件生成器”命令,打开 “选择生成器”对话框,选择其中的“代码生成器”选项,单
5、击“确定”按钮。8.2.2 VBE窗口 标准工具栏 工程窗口 属性窗口 代码窗口 立即窗口 本地窗口 监视窗口 8.3 面向对象程序设计面向对象程序设计属性属性方法方法事件事件 VBA程序设计是一种面向对象的程序设计。面向对象程序设计是一种系统化的程序设计方法,它基于对象模型,采用面向对象的程序设计语言编程实现。事件过程事件过程8.3.1 属性 属性是对象所具有的性质特征。窗体设计中,通过“属性表”对所选对象的属性进行可视化设置,这种设置属性的方式成为静静态设置态设置。也可以通过编写代码的方式设置对象的属性,在VBA代码中设置属性的方式称为动态设置动态设置。8.3.1 属性1. 对象属性的代码
6、表示方法对象属性的代码表示方法 在代码中引用控件对象属性的引用格式是: 对象对象名名.属性名属性名=属性值属性值说明: Me是VBA编程中使用频率较高的关键字,Me是“包含这段代码的对象”的简称,可以代表当前对象。在类模块中,Me代表当前窗体或当前报表。 在VBA代码中可以使用Form表示当前窗体。 若省略,则表示引用的是当前窗体中的对象。 属性名必须使用英文字符表示。8.3.1 属性 2.常用常用控件对象的属性控件对象的属性属性标识功能使用举例Name唯一标识每个对象 Caption窗体标题栏上的内容,控件上的标题内容Label1.caption=计算Cancel指定命令按钮是否是窗体上的“
7、取消”按钮 Default指定命令按钮是否是窗体上的“默认”按钮 Enabled用于设置对象是否可用,如果值为False为灰色不可用Command1.enabed=falseVisible用于设置对象是否可见,如果值为False为不会显示Command1.visible=falseFontbold设置字体是否加粗,如果为True字体加粗Label1.fontbold=trueFontname设置字体名Text1.fontname=”隶书”Fontsize字体的大小值Label1.fontsize=20Forecolor标题的颜色Text1.forecolor=RGB(0,0,255)TabIn
8、dex在窗体中Tab键次序中的位置 Left控件左上角距窗体左边界的距离Label1.left=20Top控件左上角距窗体上边界的距离Text1.top=10Width控件的宽度Label1.width=20Height控件的高度Label1.width=30Value文本框中的内容Text1.value=100text设置文本框中显示的文本(要求文本框先获得焦点)Text1.text=1008.3.2 方法 对象的方法是对象可以执行的行为。如果说,对象的属性是静态规格,那么对象的方法便是动态操作。每个对象都有自己的若干方法,从而构成该对象的方法集。可以把方法理解为内部函数,可以用来完成改变对
9、象的当前状态某种特定的功能。1. 对象方法的引用方式:对象名对象名.方法名方法名2. SetFocus方法:使对象获得焦点,只有获得焦点的控件才是当前操作的对象。3. DoCmd对象方法:它的主要功能是通过调用包含在内部的方法实现VBA编程中对Access的操作。 8.3.3 事件 事件是Access预先定义好的,能被对象识别的动作。事件作用于对象,对象识别事件并做出相应的反应,如单击事件(Click)、双击事件(DblClick)、移动鼠标事件(MouseMove)等都能引起对象做出操作。 事件是固定的,由系统定义好的,用户不能定义新的事件,只能引用。 8.3.3 事件 1. 窗体对象事件窗
10、体对象事件 事件动作动作说明Load窗体加载时发生事件UnLoad窗体卸载时发生事件Open窗体打开时发生事件Clase窗体关闭时发生事件Click窗体单击时发生事件DblClick窗体双击时发生事件MouseDown窗体鼠标按下时发生事件KeyPress窗体上键盘按键时发生事件KeyDown窗体上键盘按下键时发生事件8.3.3 事件 1. 窗体对象事件窗体对象事件 事件动作动作说明Load窗体加载时发生事件UnLoad窗体卸载时发生事件Open窗体打开时发生事件Clase窗体关闭时发生事件Click窗体单击时发生事件DblClick窗体双击时发生事件MouseDown窗体鼠标按下时发生事件K
11、eyPress窗体上键盘按键时发生事件KeyDown窗体上键盘按下键时发生事件当窗体首次打开时,依次触发了下列事件,顺序是:打开(Open)加载(Load)调整大小(Resize)激活(Activate)成为当前(Current)。关闭窗体时事件触发顺序:卸载(Unload) 停用(Deactivate) 关闭(Close)。8.3.3 事件 2. 报表对象事件报表对象事件 事件动作动作说明Open 报表打开时发生事件Close 报表关闭时发生事件3. 命令按钮控件命令按钮控件事件事件事件动作动作说明Click 按钮单击时发生事件DblClick 按钮双击时发生事件Enter按钮获得输入焦点之
12、前发生事件GetFocus 按钮获得输入焦点时发生事件MouseDown按钮上鼠标按下时发生事件KeyPress按钮上键盘按键时发生事件KeyDown 按钮上键盘按下键时发生事件8.3.3 事件 4. 标签控件事件标签控件事件 5. 文本框控件事件文本框控件事件事件动作动作说明Click 标签单击时发生事件 DblClick 标签双击时发生事件 MouseDown标签上鼠标按下时发生事件事件动作动作说明AfterUpdate 文本框内容更新后发生事件 Enter 文本框获得输入焦点之前或拥有输入焦点之后按回车时发生事件GetFocus 文本框获得输入焦点时发生事件LostFocus 文本框失去
13、输入焦点时发生事件 Change 文本框内容更新时发生事件KeyPress 文本框内键盘按键时发生事件 MouseDown 文本框内鼠标按下时发生事件事件动作动作说明 BeforeUpdate文本框内容更新前发生事件8.3.4 事件过程 在Access的程序设计中,需要从对象属性和事件方法两个方面进行设计,其中事件响应可以通过“宏”操作,也可以通过编写某个事件过程代码,由程序来完成指定操作。 事件过程用来识别对象的激发,存在于对象模块中,当事件被激发时事件过程就自动执行。 对象事件过程的编写方法是进入VBE代码编辑窗口,进行代码编写。8.3.4 事件过程 在Access的程序设计中,需要从对象
14、属性和事件方法两个方面进行设计,其中事件响应可以通过“宏”操作,也可以通过编写某个事件过程代码,由程序来完成指定操作。 事件过程用来识别对象的激发,存在于对象模块中,当事件被激发时事件过程就自动执行。 对象事件过程的编写方法是进入VBE代码编辑窗口,进行代码编写。8.3.4 事件过程1. 代码编写方法代码编写方法进入对象代码生成器的方法有以下3种: 在窗体、报表的设计视图中,右击控件对象,选择如下图所示快捷菜单上的“事件生成器”命令,就会出现代码编辑器。 对象对象的快捷菜单的快捷菜单 “代码生成器代码生成器”窗口窗口8.3.4 事件过程1. 代码编写方法代码编写方法 如果是对该对象的第一次操作
15、,将出现如下图所示的“选择生成器”对话框。选择“代码生成器”后单击“确定”按钮。也会进入代码编辑器窗口。 8.3.4 事件过程1. 代码编写方法代码编写方法 选择控件对象,单击属性窗口的“事件”选项卡,选中某个事件并单击属性栏右边的省略号按钮,也可以打开“选择生成器”对话框,选择其中的“代码生成器”选项,单击“确定”按钮。命令按钮Command1的Click事件过程名为“Command1_Click”。该子程序就是处理该事件的程序,称为事件过程,一般格式如下:Private Sub 对象名_事件名(参数表)(事件过程代码)End Sub8.3.4 事件过程2. 案例案例 创建如图所示的名为“计
16、算球体体积”窗体,窗体上有文本框text1和text2,标签label1和label2,两个命令按钮command1(计算)和command2(退出),窗体实现在text1中输入一个数据,单击命令按钮command1时,在text2里显示以其为半径的球体体积。命令按钮command1(计算)的事件代码如下:Private Sub Command1_Click()r = Text1.Valuev = (4 / 3) * 3.14 * r 3Text2.Value = vEnd Sub8.4 VBA8.4 VBA编程语言编程语言基础基础8.4.1 数据类型数据类型数据类型类型关键字类型符存储空间取
17、值范围整型Integer%2-3276832767长整型Long&4-21474836482147483647单精度浮点型Single!4负数:-3.402823E38-1.401298E-45正数:1.401298E-453.402823E38双精度浮点型Double#8负数:-1.79769313486232E308-4.94065645841247E-324正数:4.94065645841247E-3241.79769313486232E3088.4 VBA8.4 VBA编程语言编程语言基础基础8.4.1 数据类型数据类型数据类型类型关键字类型符存储空间取值范围货币型 Currency8
18、-922337203685477.5808922337203685477.5807日期型Date无8100年1月1日9999年12月31日字符型String$暂不定0字符65400个字符字节型Byte无10255逻辑型Boolean无2True或False对象型Object无4任何引用的对象变体型Variant无暂不定数字和双精度相同;文本和字符串相同8.4.2 常量1. 直接直接常量常量不同类型的直接常量有不同的表示方法,使用时应遵循相应的规则,常用的表示方法如下:(1) 数值型:十进制整数由数字09和正、负号组成,实数可采用小数表示形式或科学记数表示形式。科学计数法用E表示10的乘幂。如:
19、123、-489、2.34E-3。(2) 字符型:字符串常量是一个用双引号括起来的字符序列。在字符串中,字母的大小写是有区别的。如:abc、吉林财经。(3) 布尔型:有True和False两个值。(4) 日期型:以字面上可被认作日期和时间的字符并用一对“#”括起来表示。如:#2015-11-25#。8.4.2 常量2. 符号常量符号常量 符号常量是用标识符来表示某个常量,用户一旦定义了符号常量,在以后的程序中不能用赋值语句来改变它们的值,否则,在运行程序时将出现错误。 标识符是用来表示用户所定义的常量、变量、过程、函数等程序要素的符号。在VBA中,标识符的命名必须是以字母或汉字开头,且只能由汉
20、字、字母(az或AZ)、数字(09)或下划线(_)所组成,其最大长度为255个字符。此外,不能使用VBA的关键字作为标识符,标识符不区分大小写。 在VBA中声明常量的语句格式如下:Const常量名常量名 As 数据类型数据类型|类型符类型符=表达式表达式,常量名常量名 As 数据类型数据类型|类型类型符符=表达式表达式8.4.2 常量3. 系统常量系统常量 系统常量是Access系统内部包含有若干个启动时就建立的系统常量,有True、False、Yes、No、On、Off和Null等。编码时可以直接使用。4. 固有常量固有常量 VBA提供的一些预定义的内部符号常量,通过前两个字母来指明定义该常
21、量的对象库。来自Access的常量以“ac”开头,来自VB库的常量则以“vb”开头,来自ADO库的常量以“ad”开头。如:acForm、adAddNew、vbCurrency。8.4.3 变量 变量是指在程序运行过程期间其值可以变化的量。在VBA 代码中声明和使用指定的变量来存储值、计算结果或操作数据库中的任意对象。一个变量有3个要素:变量名、数据类型和变量值。在VBA代码中,通过变量名来引用变量。1. 变量的命名变量命名时应遵循以下准则:(1) 变量名必须以英文字母开头,可以包含字母、数字或下划线字符“_”(2) 变量名不能包含空格、句点等字符。(3) 变量名的长度不能超过255个字符,且变
22、量名不区分大小写。(4) 不能在某一范围内的相同层次中使用重复的变量名。(5) 变量的名字不能是VBA的关键字,如For、To、Next、If等。如a1、b_1、sa等可以作为变量名,1a、b.1、x-1等不能作为变量名。8.4.3 变量2. 变量的变量的声明声明 声明变量有两个作用,一是指定变量的数据类型,二是指定变量的作用范围。如果在程序中没有明确声明变量,VBA会默认将它声明为Variant数据类型。 (1) 显式声明变量显式声明变量要使用Dim语句,Dim语句的格式为:Dim 变量名 As 数据类型|类型符,变量名 As 数据类型|类型符8.4.3 变量2. 变量的变量的声明声明 (2
23、) 隐式声明变量 隐式变量是指没有直接定义,借助将一个值指定给变量名的方式建立的变量。当在变量名称后没有附加类型符来指明隐含变量的类型时,默认为变体类型。 (3) 变量的强制声明 在VBA中可以强制要求在过程中使用变量前必须进行声明,方法如下:方法一:在模块通用声明部分中包含一个Option Explicit语句,它要求在模块级别中强制对模块中所有使用的变量显式声明。方法二:在VBE窗口中,选择“工具”菜单“选项”命令,打开“选项”对话框。在“编辑器”选项卡下,选择“代码设置”栏中的“要求变量声明”复选框。8.4.4 数组1. 定义一维数组定义一维数组(1) 格式1 Dim ( to ) As
24、 例如:Dim y(1 to 5) As Integer。该语句声明数组变量为y,该数组元素从y(1)y(5)共有5个元素。(2) 格式2Dim ( ) As 例如:Dim x(5) As Integer。声明数组变量为x,该数组元素从x(0)x(5)共有6个元素。8.4.4 数组2. 定义多维数组定义多维数组格式:Dim (,) As 例如:Dim b(1 to 3,3 to 5) as Integer。 定义二维数组,每个元素都为整型,行下标下界为1,上界为3,共3行,列下标下界为3,上界为5共3列,该数组共3*3=9个元素,各元素分别表示为:b(1,3)、b(1,4)、b(1,5)、b(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- access VBA 程序设计 课件
限制150内