第8章 模块与VBA程序设计

合集下载

模块和VBA程序设计

模块和VBA程序设计
调试
在模块中编写代码时,可以使用调试工具来检查代码中的错误和异常,确保代码的正确性和稳定性。 调试工具包括断点、单步执行、变量监视等。
03 VBA程序流程控制
顺序结构
顺序结构
按照代码的先后顺序执行,是最基本的程序流程结构。
描述
顺序结构按照代码的顺序逐行执行,先执行的语句先执行,后执行的语句后执 行。
VBA具有面向对象的特点,支持类、继承和多 态等特性,使得开发过程更加灵活和高效。
VBA可以用于创建宏、自定义函数、操作Excel 等Office组件,实现自动化办公和定制化功能。
VBA编程环境
01
VBA编程环境通常包括Microsoft Office应用程序(
如Excel、Word等)中的VBA编辑器。
对象
在VBA中,对象是具有属性和方法的实体。例如,Excel工作簿、工作表、单元格等都是对象。
属性
对象的属性描述了对象的特征或状态。例如,一个单元格对象的属性包括它的值、字体、背景色等。
对象的方法
• 方法:对象的方法是对象可以执行的操作。例如 ,一个单元格对象的方法可以包括设置其值、字 体或背景色等。
顺序结构
示例 ```vba Sub sequential_structure()
顺序结构
' 声明变量
Dim number As Integer
顺序结构
' 赋值
number = 10
顺序结构
'
Debug.Print "The number is " & number
顺序结构
End Sub
```
Hale Waihona Puke 选择结构• End If

ACCESS实例教程(第8章vba)

ACCESS实例教程(第8章vba)
你!”。 (3)在窗体ct中创建三个命令按钮→名称分别为c1、c2、
c3→标题分别为“红色”、“绿色”、“蓝色”。
ACCESS实例教程
(4)设置各按钮的前景色,在属性窗口可查 看颜色值。
(5)c1的click事件代码: t1.BackColor = 255 b1.ForeColor = 255
ACCESS实例教程
ACCESS实例教程
8.1.4 标准工具栏
例8-1:创建一个类模块。 1、打开数据库; 2、新创建窗体——名称为w1; 3、在窗体中添加命令按钮——名字为c1; 4、选择c1打开属性——【单击】——打开【代码生成器】;
ACCESS实例教程
例8-1:创建一个类模块。
Private Sub Command0_Click() DoCmd.Close
Docmd是Access的一个特殊对象,用来调用内置方法,在程 序中实现对Access的操作,诸如打开窗口、关闭窗体、打开报表、 关闭报表等。
DoCmd 对象的大多数方法都有参数,有些参数是必需的,有 些则是可选的。若省略可选参数,参数将采用默认值。
(1)用DoCmd 对象打开窗体 格式:DoCmd.OpenForm "窗体名" 功能:用默认形式打开指定窗体。 例如:DoCmd.OpenForm "文本框练习"
方法1:在窗体或报表设计视图中选控件→单击标准工具栏的 “生成器”按钮→在“选择生成器”对话框中选择 “代码生成器”。
方法2:右击窗体或报表设计视图中控件→快捷菜单中选“事 件生成器”→“选择生成器”对话框中选择代码生成 器”。
ACCESS实例教程
8.1.3 VBE窗口
VBE窗口由工具栏、工程资源管理器窗口、 属性 窗口、代码窗口和立即窗口组成。

access8第8章 模块与VBA程序设计

access8第8章  模块与VBA程序设计

MouseDown
MouseMove
BeforeUpdate 文 本 AfterUpdate 框 OnEnter OnGetFoucs OnLostFoucs OnChange
内容更新前 内容更新后 获取焦点后 获取焦点时 失去焦点时 内容更新时
Private Sub 对象 _BeforeUpdate(Cancel As Integer) Private Sub 对象 对象_AfterUpdate() Private Sub 对象 对象_Enter() Private Sub 对象 对象_GotFocus() Private Sub 对象 对象_LostFocus() Private Sub 对象 对象_Change()
数组
1、声明数组 、 格式:Dim 数组名(n) as 数据类型 格式: 数组名
Dim 数组名 数组名([m to] n) as 数据类型 n是数组的下标上界,m是数组的下标下界,m可以省略,如省略表示 是数组的下标上界, 是数组的下标下界 是数组的下标下界, 可以省略 可以省略, 是数组的下标上界 0,数组共有 个元素。 ,数组共有n-m+1个元素。 个元素 举例 Dim a(2 to 5) as integer 说明: 说明:共有数组 a(2)、a(3)、a(4)、a(5)四个元素 、 、 、 四个元素 Dim b(5) as integer 说明:共有数组b(0)、b(1)、b(2)、b(3)、b(4)、b(5)六个元素 说明:共有数组 、 、 、 、 、 六个元素 赋值 a(2)=10 说明: 赋值给a(2)元素 说明:将10赋值给 赋值给 元素
VBA编程环境(VBE) 编程环境( 编程环境 )
VBE
进入VBE可以选择以下几种 进入 可以选择以下几种 方式: 方式: (1)将某个对象的某个事 ) 件设为[事件过程 事件过程], 件设为 事件过程 ,如图 8.4所示,单击右侧的 所示, 所示 “…”。 。 (2)在窗体或报表的【设 )在窗体或报表的【 计视图】 计视图】中单击工具栏上 代码】按钮。 的【代码】按钮。 (3)在数据库窗口中,单 )在数据库窗口中, 击菜单【工具】 【 击菜单【工具】|【宏】| 编辑器】 【Visual Basic编辑器】 编辑器 命令。 命令。 (4)选择数据库模块对象, )选择数据库模块对象, 单击数据库窗口中【新建】 单击数据库窗口中【新建】 或者双击其中一个已经存 在的模块对象

第8章 模块与VBA程序设计

第8章  模块与VBA程序设计

Variant数据类型是一种特殊数据类型,具有很大的灵活性, 可以表示多种数据类型,其最终的数据类型由赋予它的值来 确定。如果变量在使用前未加以类型说明,默认为Variant型。
2.用户自定义数据类型 VBA允许用户自定义数据类型,使用Type语句就可以实现 这个功能。用户自定义数据类型可包含一个或多个某种数据 类型的数据元素。Type语句的语法格式为 Type 数据类型名 数据元素定义语句 End Type
例8-1 在“教学管理”数据库中创建一个标准模块。 操作步骤: ①打开VBE窗口。 ②在代码窗口中输入一个名为“qq”的子过程,然后在立即 窗口中输入命令“Call qq()”,或单击VBE窗口“标准”工具 栏中的“运行子过程/用户窗体”命令按钮,或从“运行”菜 单中选择相应命令来运行该过程,随后可以看到该过程的运行 结果。 ③在VBE窗口中单击“标准”工具栏中的“保存”按钮,并 输入模块名称将模块存盘,这样一个标准模块就建好了,回到 Access导航窗格中可以看到建好的模块对象。
第8章 模块与VBA程序设计
了解模块的概念与基本操作。 掌握模块和过程的创建方法。 掌握VBA的基础知识。 掌握VBA程序设计中的流程控制方法。 了解VBA数据库访问技术。
8.1 模块与VBA概述 8.1.1 模块的概念 模块是由VBA通用声明和一个或多个过程组成的单元。 组成模块的基础是过程,VBA过程通常分为子过程(Sub过 程)、函数过程(Function过程)和属性过程(Property过程)。每 个过程作为一个独立的程序段,实现某个特定的功能。
2.对象的引用 引用对象属性的语法格式为 对象名.属性名 在程序代码中改变属性的值,其语句格式为 对象名.属性名=属性值 引用方法的语法格式为 对象名.方法名(参数1,参数2,…)

第8章 vba编程基础

第8章 vba编程基础

8
(2)使用Dim语句声明变量
声明变量的一般方法是用Dim语句,其格式为: Dim 变量名 [As 数据类型] 说明:省略[As 数据类型],则默认定义的变量为 Variant数据类型。 可以使用Dim语句在一行中声明多个变量。 例: Dim strX As String Dim intX As Integer, strZ As String Dim i,j,k As Integer
逻辑运算符的优先级低于关系运算符,常用的3个逻辑运算 符之间的优先级由高到低依次为:Not→And →Or。
18
(5)对象运算符
对象运算符有“!”和“.”两种。
使用“!”运算符可以引用一个窗体、报表或窗体和报表 上的控件。
例:
运算符 Forms![学生信息] Forms![学生信息]![学号] Reports![学生成绩] 引用含义 标识打开的“学生信息”窗体 标识打开的“学生信息”窗体 上的“学号”控件 标识打开的“学生成绩”报表
注意:Type语句只能在模块的通用声明部分使用。
10
使用了Type语句声明了一个用户自定义类型后,就 可以在该声明范围内的任何位置声明该类型的变量。 可以使用Dim语句声明用户自定义类型的变量。 例:Dim x as XS =“张红” x.BirthDate=#80/10/12# x.Sex=0
21
1.注释语句
(1)Rem语句 ,语句格式:Rem 注释内容 (2)英文单引号“’”, 语句格式:’注释内容 注释语句可以添加到程序模块的任何位置,并且默认以 绿色文本显示。 例:str1=“hello” :Rem str1赋值为“hello” str2=“world” „str2赋值为“world”

第8章+VBA与模块

第8章+VBA与模块

8.1.2 VBA模块
例8-2 建立一个标准模块,运行时显示“欢迎使用Access!” 操作步骤: (1)在数据库中,单击“创建”选项卡下的“模块”按钮 。 (2)输入代码。
(3)单击“保存”按钮,为模块起名:First。 (4)单击标准工具栏上“运行子过程”命令,数据库窗口显 示相应信息。
8.2 面向对象程序设计
8.2 面向对象程序设计
2.使用代码设置对象属性
(3) 编写窗体的Load事件和命令按钮的Click事件。
(4) 运行窗体视图,单击命令按钮“开始”显示结果如下。
8.2 面向对象程序设计
8.2.3 编程步骤
VBA编程有以下几个主要步骤: 1.创建用户界面
2.设置对象属性
3.编写对象的事件过程 4.运行和调试 5.保存窗体
8.2.2 使用代码设置对象属性和事件
1. 关键字Me
Me是“包含这段代码的对象”的简称,可以代表当前对象。 在类模块中,Me代表当前窗体或当前报表。 例如: Me.Caption= “学生信息一览表” 定义当前窗体的Caption属性。
bel1.Caption= “学生信息”
定义当前窗体中标签Lab础
8.3.3 变量 1.变量命名规则
(1) 以字母开始,可以包括数字、字母和下划线;不能多于 255个字符;
(2) 不能使用关键字命名(如End、Print、Sub等); (3) 在同一作用域中,变量名不能重复。
8.3 VBA编程基础
8.3.3 变量 2.变量的类型和定义
8.3 VBA编程基础
8.3.2 常量
常量指在程序运行过程中其值保持不变的量。 常量有两种:直接常量和符号常量。 1.直接常量 取值本身直接反映了其类型;例如:"abcd",345 2.符号常量 定义符号常量,用来代替数值或字符串,提高代码的可读性, 便于维护。一般格式为: Const 常量名=表达式 [, 常量名=表达式]... 例如: Const pai=3.1415926 Const pai=3.1415926 r=10 r=10 Area=3.14*r*r Area=pai*r*r c=2*3.14*r c=2*pai*r

8.模块及 VBA程序设计

8.模块及 VBA程序设计

模块及VBA程序设计二级 ACCESS 笔试的重点难点在VBA 程序设计部分,分值占到了35 分左右,主要考察模块基本概念、面向对象程序设计基本概念、运算符和表达式、VBA 程序流程控制语言、常用函数和操作,其中考查密度最大的就是运算符和表达式、流程控制、常用函数。

一、模块的基本概念(1)模块的基本概念模块是 Access数据库7 个对象之一,由面向对象的VBA程序构成。

模块具有很强的通用性,窗体、报表等对象都可以调用模块内部的过程。

模块基本上是由子过程(Sub)、函数过程(Function)作为命名的单元存储在一起的集合,对VBA代码进行组织。

Access 有两种类型的模块:标准模块和类模块。

(2)标准模块1、标准模块包含的是通用过程和常用过程,这些通用过程不与任何对象相关联,常用过程可以在数据库中的任何位置运行。

2、标准模块中的公共变量和公共过程具有全局特性,作用域(作用范围)在整个应用程序,生命期伴着应用程序运行而开始、关闭而结束。

说明:作用范围(作用域):变量或过程在整个程序代码中并不总是有效/可用的,而限定该变量或过程的可用性的代码范围就是该变量或过程的作用域。

作用域决定了生命期。

(3)类模块1、类模块包括窗体模块和报表模块,它们各自与某一特定窗体或报表相关联。

2、作用范围限于所属窗体或报表内部,生命周期也随窗体或报表的打开而开始、关闭而结束。

3、类模块可以调用标准模块中定义好的过程。

(4)模块的基本组成单元简介过程是模块的组成单元,由VBA代码编写而成。

过程分两种类型:Sub子过程和Function函数过程。

1、Sub子过程,基本定义方式如下Sub subname(参数1,参数2,…)变量声明部分操作语句部分End Sub可执行一系列操作,无返回值。

可在该子过程之外用CALL调用:Call subname(参数)。

2、Function函数,基本定义方式如下Function FunctionName(参数)变量声明部分操作语句部分End Function可执行一系列操作,有返回值。

第8章G VBA编程与模块

第8章G VBA编程与模块
本章目录
8.1.6 事件过程的编写
(1) 在窗体或报表的设计视图中,选择某个对象,→【属 性表】→【事件】→【事件过程】选项,如图8-23所示。 (2) 单击 ,打开VBE窗口,如图8-24所示。在代码窗口 中,系统自动建立事件过程的入口语句和结束语句,并将光 标定位在代码段中,输入响应该事件的VBA代码。
整型 数 长整型 单精度型 数值型 浮点数 双精度型 数据在计算机中是以特定的形式存 货币类型 字符型 字节类型 在的,如整数、实数、字符等。各种 基本数据类型 布尔型 不同形式的数据有不同的存储方式和 日期型 数据结构。因此在程序编写过程中, 变体型 数据 类型 必须先定义数据类型,才能保证程序 对象型
查看 代码 查看 对象
切换文件夹
列出组 成工程 的文件
(4) 属性窗口
在设计模式下,属性窗口列出了当前选定 窗体或控件的属性的值,用户可以对这些属性 值进行设置。
打开属性窗口的 方法:单击工具栏 上的“属性窗口” 按钮 ;选择“视 图”菜单下的“属 性窗口”项。
对象列 表框 属性显示 排列方式 属性列 表框
VBE窗口
VBE窗口主要由菜单栏、标准工具栏、模块代码窗 口、工程资源管理器窗口和模块属性窗口组成。 (1) (2) (3) (4) (5) 菜单栏 标准工具栏 模块代码窗口 工程资源管理器窗口 模块属性窗口
(1)标准工具栏
课本174页图8-4
(2) 代码窗口
用来进行代码设计:各种事件过程、过 程代码的编写和修改。 打开代码窗口的方法:
8.1.2 VBA编程环境
Access 提供的VBA开发界面称为VBE(Visual Basic Environment),它以微软中VB编程环境的布局为基 础,为VBA提供了程序编辑、调试及运行的环境。

第8章 VBA程序设计与模块

第8章 VBA程序设计与模块

十一、运算符 在VBA中,提供了很多运算符来完成各种运算,主 要有算术运算符、关系运算符、逻辑运算符和链接运算 符四种。 1、算术运算符:主要有乘幂(^)、乘法(*)、除法 (/)、整数除法(\)、求模(余)运算(Mod)、加法(+)、减 法(-)这7个运算符。运算符与两个运算对象之间一般都 用一个空格隔开。 说明:对于\运算,操作数有小数一般四舍五入为 整数后再做运算,但结果有小数则直接省略掉小数。 Mod运算的操作数如果有小数则四舍五入为整数后再做 运算,且余数的符号与被除数的符号一致。
五、数组 当有多个类型相同的数据要保存时可以使用数组进行保 存,数组是在有规则的结构中包含一种数据类型的一组数据。 定义格式:Dim 数组名 (下标上限) 或 Dim 数组名 (下标下限 to 下标上限) 数组元素引用格式:数组名(下标值) 说明:每个数组元素相当于一个变量一样,它的下标必 须在规定的范围只内,在定义时如果不指定下标下限则下标 从0开始到上限止。如:Dim NewArray(10) As Integer 表示定义的数组名为NewArray,有11个元素,分别为 NewArray(0)至NewArray(程中,经常需要将某种数据类型转换为另一 种数据类型。例如窗体文本框中显示的数值数据为字符串 类型,要想作为数值处理就需要进行数据类型转换。 使用格式:函数名(被转换的表达式)
例:做如下布局的窗体,并设置三个文本框的名称分别为 s1、s2、result。然后给“计算”按钮的单击事件添加相 应的代码。
提示:如果需要强制变量必须定义,则需要在声 明区域写上语句:Option Explicit。 变量的作用域: 1、局部范围:在过程或函数内部定义的或直接使 用的变量,只在本过程有效。 2、模块范围:在过程之外,即模块的最开始变量 定义处以dim关键字定义的变量,在本模块的所有过程 中都可以使用这个变量。 3、全局范围:在模块开始的变量定义处以 public 变量名 as 数据类型 定义的变量,在所有的 模块中均可以使用。

第八章 模块与VBA编程基础

第八章 模块与VBA编程基础
通常,模块是由以下两部分组成: 子过程
❖ 声明部分:可以在这部分定义变量、常量、自 定义类型和外部过程。在模块中,声明部分和 过程部分是分割开来的,声明部分定义的常量 和变量是全局的,可以被模块中的所函数有过过程程调 用。
❖ 事件过程部分:这是一种自动执行的过程,用 来对用户或者程序代码启动的事件或系统触发 的事件做出响应,包括函数过程和子过程。
1. Sub过程和function函数过程格式:
Sub 过程名
Function 函数名
[程序代码]
[程序代码]
End Sub
End Function
Sub过程的特点: 1)Sub过程又称子过程,执行一系列操作,无返回值.
2)调用方式: 过程名称 或 call 过程名称 Function函数过程的特点:
8.2 创建模块
❖ 模块是装着VBA 代码的容器,过程是模块的单元组成, 由VBA代码编写而成.过程分为两种类型: Sub子过程 和Function函数过程.
❖ 在模块中加入过程 进入类模块编辑区:“代码”工具按钮或者窗体 和报表的事件过程。 进入标准模块编辑区:“模块”—“新建”
模块的组成 声明
❖ 如何进入标准模块代码设计区域?
通过创建新的模块对象而进入其代码 设计环境.
– 标准模块通常安排一些公共变量或过程 供类模块里的过程调用.
– 标准模块中的公共变量和公共过程具有 全局特性,其作用范围在整个应用程序中.
8.1.3 将宏转换为模块
每一个宏操作都有自己对应的VBA代码, 根据需要我们可以把宏转换为模块。
❖ 变量的数据类型可以是前面所介绍的数据类 型中的任何一种,也可以是用户自定义的数 据类型。
三、数据库对象
❖ 如数据库、表、查询、窗体和报表等,也有对应的 VBA对象数据类型,这些对象数据类型由引用的对 象库所定义,常用的VBA对象数据类型和对象库中 所包括的对象参见表8.3所示(教材P208)。

第8章 VBA编程dg

第8章 VBA编程dg
需要说明的是,在 Access 中,引用一个对象时,一般要指明它的上 一级是哪个,最前面的就是根对象。 比如: [Forms]![窗体1]![text0]="111" 其中, Forms 就是窗体对象的根。此外,报表的根对象为 Reports , 屏幕对象的根对象为 Screen,立即窗口的根对象为Debug,应用程序的根 对象为Application,而DBEngine为数据库管理系统、表对象、查询对象 、记录对象、字段对象的根。
章目录 节目录
8.2.2
属性和方法
可以通过属性对话框来设置某个控件对象的属性,也可 以通过代码来设置。通过代码来设置某个对象的属性值的格 式为: 对象名.属性名=属性值 比如,下面是将名为Cmd_add的命令按钮的标题属性设置 为“求和”的VBA代码: Cmd_add.Caption = "求和" 对象的方法一般通过代码来实现,应用某个对象的方法 的格式为: 对象名.方法 [参数1][,参数2][,…][,参数n]
章目录
节目录
8.1.2
VBA编程环境
2.VBA编程环境介绍
(1)VBE窗口的组成 和其他应用程序窗口一样,VBE窗口除了有标题栏、菜单栏、工具栏这些常用 的对象外,还有自己独有的窗口,包括工程资源管理窗口、属性窗口、代码窗口 、立即窗口、对象窗口、对象浏览器窗口、本地窗口和监视窗口等等,如图8-1所 示。通过视图菜单可以打开上述窗口。其中,最常用的是上述前四个窗口。
8.2.1
类和对象
类是面向对象可视化编程中最基本的概念之一,它是具 有共同抽象的对象的集合。类定义了一个抽象模型。类实例 化后就称为对象。换言之,将对象的共同特征抽取出来就是 类,类是模板,而对象是以类为模板创建出来的具体的实例 ,类与对象就像模具与成品的关系。比如,某个学校的每一 个学生就是一个对象,将这个学校的所有学生抽象化,就形 成学生类,而每个学生就是学生类的实例。 在 Access 中,一个窗体是一个对象,它是 Form 类的实例 ;一个报表是一个对象,它是 Report 类的实例;一个文本框 是一个对象,它是TextBox类的实例,等等。事实上,放在窗 体上的一个具体的控件就是其控件类所对应的实例。

第8章 模块和VBA程序设计

第8章  模块和VBA程序设计

12
8.1 模块的概念
③ 在对话框的“保存类型”下拉列表框中,选择“模 块”列表项,然后单击“确定”按钮,屏幕显示 “转换宏”对话框。 ④ 在对话框中单击“转换”按钮,屏幕显示“转换完 毕”对话框。
⑤ 单击“确定”按钮完成转换。
返 回
13
8.2 VBA程序设计基础
在VBA中,程序是由过程组成的,过程由根据VBA规则书 写的指令组成。一个程序包括语句、变量、运算符、函数、 数据库对象、事件等基本要素。 一般Access程序设计在遇到下列情况时需要使用VBA代码: 1.创建用户自定义函数。 2.复杂程序处理。 3.数据库的事务处理程序。
2
3
8.1 模块的概念
模块对象是Access系统中所包含的7种对象之一,模 块和宏的使用有一些相似之处。宏是由系统自动生成的 程 序 模 块 , 而 模 块 对 象 是 用 VBA(Visual Basic for Application)语言编写的,VBA是Office软件中内置的编 程语言,语法与Visual Basic兼容。 1.模块的分类 在Access中,模块分为类模块和标准模块两种类型。 (1).类模块 类模块包括窗体模块和报表模块,它们与各自的窗 体或报表相关联。 窗体模块中的事件过程的代码用于响应窗体或窗体 上控件的触发事件。报表模块中的事件过程的代码用于 响应报表或报表上控件的触发事件。
15
8.2 VBA程序设计基础
具有相同属性和方法的对象就组成了类,在窗体或 报表设计视图窗口中,工具箱中的每个控件就是一个 类,而在窗体或报表中创建的具体控件则是这个类的对 象。而属于同一个类的两个对象是通过属性值来区分 的。 Access中的表、查询、窗体、报表、页、宏和模块 对象也是类,称为对象类。Access数据库窗口左侧显示 的就是数据库的对象类,单击某个对象类可以打开相应 对象窗口。 对象除了属性以外还有方法。对象的方法就是对象 可以执行的行为。

第8章 模块与VBA编程基础

第8章 模块与VBA编程基础
第8章 程序设计基础
8.1 模块的基本概念
8.2 创建模块
8.3 VBA程序设计基础
8.4 VBA流程控制语句
8.5 过程调用和参数传递 8.6 VBA程序运行错误处理 8.7 VBA程序的调试:设置断点
8.1 模块的基本概念
程序设计是指设计、编制、调试程序的方法和过程。 程序设计不仅仅指程序编码,其内容涉及到有关的 基本概念、工具以及方法等。就目前而言,程序设 计方法主要有两种,就是面向过程的结构化程序设 计方法和面向对象的程序设计方法。 程序设计是软件开发的重要部分,以软件工程的观点 来看,由于软件开发是工程性的工作,所以要有规 范。所以在进行程序设计时,也要进行规范化的程 序设计,要注意程序的可靠性、易读性和易维护性。 模块是以函数或子过程为单元的语句代码集合。在 VBA中分:类模块和标准模块
VBA中的输入输出
1.输入函数InputBox
InputBox(Prompt[, Title] [, Default])
Prompt指定显示在对话框中的信息 Title设置在对话框标题栏中显示的信息,如果省略,则在标题 栏中显示应用程序名 Default设置显示在文本框中的信息,如果用户没有输入数据, 它就是默认值
vbDefaultBu tton3
MsgBox函数的返回值
【例题8.4】在窗体上添加一 个命令按钮,当单击该按钮 后,显示一个对话框,其中 包含“确定”和“取消”两 个命令按钮以及一个询问图 标,默认选择“确定”按钮。 【例题8.5】在窗体上添加一 个命令按钮,当单击该按钮 后接受用户输入的三角形的 三条边长,求其周长并输出。
【例题8.12】在窗体上放有一个命令按钮, 当单击该命令按钮时,计算1+2+…+100 的结果,并输出计算结果。

最新2019-模块与VBA编程基础-PPT课件

最新2019-模块与VBA编程基础-PPT课件

模块比宏的功能更强大,运行速度更快,能直接运行 Windows的其他程序。 使用模块可以建立用户自己的函数,完成复杂的计算、 执行宏所不能完成的任务。 使用模块可以开发十分复杂的应用程序,使数据库系 统功能更加完善。

Access中,模块分为类模块和标准模块两种。
8.1.1 标准模块

语法与 VB 语言兼容。不是一个独立的开发工具, 一般被嵌入到像 Word 、 Excel 、 Access 这样 的宿主软件中,与其配套使用
VBA采用了面向对象的程序设计方法。
8.3.1、程序语句书写原则
1、语句书写规则 通常一个语句写在一行,语句较长一行写不下时,可以 用续行符(_)将语句连续写在下一行 可以使用冒号将几个语句分隔写在一行中 例如模块2 当输入一行语句并按下回车键后,代码以红色文本显示 表明该语句存在错误 2、注释语句 两种方式: :Rem 注释语句 ’注释语句 注释默认以绿色文本显示。 还可以利用“编辑”工具栏中的“设置注释块”按钮和 “解除注释块”按钮对大块代码进行注释或解除注 释
二、在模块中执行宏
在模块的过程定义中,使用Docmd对象 的RunMacro方法可以执行设计好的宏 调用格式: Docmd. RunMacro 宏名[,宏的运行 次数][,数值表达式] 注意:宏名用双引号引起来

Байду номын сангаас
8.3 VBA程序设计基础
VBA 是 Microsoft Office 内置的编程语言,其
用户定义类模块

创建方法: 在模块对象下: 单击”插入”|“类模块”
8.2 创建模块
创建模块就是创建过程 过程是模块的单元组成,由VBA代码编写而成。 过程是一段可以实现某个具体功能的代码 过程分为两类:Sub子过程和Function函数过程。

第8章 模块和VBA程序设计

第8章  模块和VBA程序设计

8.1认识模块
8.1.2模块设计环境
8.1认识模块
8.1.2模块设计环境
8.2 VBA编程基本概念和步骤
8.2.1基本概念
在面向对象的程序设计中,基本概念包括对象、类、属性、 事件、方法等。
1.对象 在自然界中,一个对象就是一个实体,如一个人就是一个
对象。面向对象程序设计的主要任务是以“对象”为中心设计 模块。Access中的对象代表应用程序中的元素,如表,窗体、 按钮等。
8.2 VBA编程基本概念和步骤
8.2.2 用代码设置窗体属性和事件 2.用代码设窗体置性
操作步骤: (1)创建窗体,建立文本框,并将其“名称”属性改为 txtXm;创建命令按钮,将其“名称”属性改为cmdStart, “标题”属性改为“开始”。 (2)编写窗体的Load事件和Click事件 (3)转到窗体视图,单击命令按钮“开始”,
3.通用过程
通用过程是与特定事件无关的一组代码,能被多个同类型或不同类 型的事件调用。 类模块和标准模块中都可以定义通用过程
4.使用模块的几种情况
8.1认识模块
8.1.1模块的基本概念 5.建立第一个类模块
类模块与窗体或报表关联,以窗体模块为例建立类模块的方法有3种 方法1:
在窗体设计视图中选定窗体控件, 单击属 性窗口“事件”选项卡,选定某个事件, 单击单元格右边的“生成器”按钮 ,在 “选择生成器”对话框中选择“代码生成 器”,单击“确定”按钮。
Mod
意义 加法运算 减法运算 乘法运算 除法运算 整除运算 幂运算 取模(求 余)运算
举例 2+5 2-7 2.1*1.5 13/5 13\5 2^3
性,便于维护。 一般格式为: Const 常量名=表达式 [, 常量名=表达式]...

模块与VBA编程

模块与VBA编程

Private Sub Area() Rem 定义长、宽两个变量
Dim length As Single '长方形的长 Dim height As Single '长方形的宽 Rem 通过输入框输入长与宽,并将值变成数值型 length = Val(InputBox("请输入长方形的长")) height = Val(InputBox("请输入长方形的宽")) a = length * height '计算面积 MsgBox Str(a), vbDefaultButton1, "面积"
End Sub
8.4.2 条件语句
1. 单行结构条件
❖ 格式:
If <条件> Then<语句1>[else <语句2>]
解释:
如果<条件>成立,则执行<语句1>,否则执行<语句2> 若没有否则,则else <语句2>可省略。
2. 块结构条件 格式: If <条件1> Then <语句块1> [ElseIf <条件2> Then <语句块2>] [ElseIf <条件3> Then <语句块3>]
8.2.2 在模块中执行宏
在模块的过程定义中,使用Docmd对象的RunMacro方法,可以执行设计好的宏。 其调用格式为: Docmd.RunMacro MacroName [,RepeatCount] [,RepeatExpression] 其中,MacroName表示当前数据库中宏的有效名称;RepeatCount可选项,用于 计算宏运行次数的整数值;RepeatExpression可选项,数值表达式,在每一次运行 宏时进行计算,结果为False时,停止运行宏。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8.2.2 常量与变量 1.常量 (1)直接常量 不同类型的直接常量有不同的表示方法,使用时应遵循相 应的规则,常用的表示方法有如下4种。 ①十进制整数由数字0~9和正、负号组成,实数可采用小 数表示形式和科学记数表示形式。 ②字符串常量是一个用双引号括起来的字符序列。在字符 串中,字母的大小写是有区别的。 ③布尔常量有True和False两个值。 ④日期常量以字面上可被认做日期和时间的字符并用一对 “#”括起来表示。
2.对象的引用 引用对象属性的语法格式为 对象名.属性名 在程序代码中改变属性的值,其语句格式为 对象名.属性名=属性值 引用方法的语法格式为 对象名.方法名(参数1,参数2,…)
当引用对象的多个属性时,可使用With…End With结构,而 不需要重复指出对象的名称。例如,如果要给命令按钮Cmd1 的多个属性赋值,可表示为 With Cmd1 .Caption="确定" .Height=2000 .Width=2000 End With
2.类模块 类模块其实是一个对象的定义,它封装了一些属性和方 法。VBA中类模块有3种基本类型:窗体模块、报表模块和 自定义类模块。 还有一种自定义类模块,不与窗体和报表相关联,允许 用户自定义所需的对象、属性和方法。
8.1.2 VBA的开发环境 1.VBE的启动 ①单击“创建”选项卡,再在“宏与代码”命令组中单击 “模块”、“类模块”或“Visual Basic”命令按钮,均可以打 开VBE窗口。 ②在导航窗格的“模块”组中双击所要显示的模块名称,就 会打开VBE窗口并显示该模块的内容。 ③在“数据库工具”选项卡中,单击“宏”命令组中的 “Visual Basic”命令按钮,打开VBE窗口。在VBE窗口中,选 择“插入”→“模块”命令,或在VBE窗口“标准”工具栏中 单击“插入模块”命令按钮旁的向下箭头,并从下拉菜单中选 择“模块”命令,可以创建新的标准模块。
Access中提供了一个重要的对象——DoCmd对象,它的主要 功能是通过调用包含在内部的方法实现VBA程序设计中对 Access的操作。例如,利用DoCmd对象的OpenReport方法打开 “学生”报表,语句为 DoCmd.OpenReport "学生"
3.编写对象响应的程序代码 可以通过两种方法来处理窗体、报表或控件的事件响应。 ①使用宏操作来设置事件的属性。 ②在代码窗口中为某个事件创建事件过程。 例如,命令按钮Command1的Click事件过程名为 “Command1_Click”。该子程序就是处理该事件的程序,称 为事件过程,一般格式为 Private Sub 对象名_事件名([参数表]) ……(事件过程代码) End Sub
(3)变量的赋值 声明了变量后,变量就指向了内存的某个单元。在程序的 执行过程中,可以向这个内存单元写入数据,这就是变量的 赋值。给变量赋值的语句格式为 变量名=表达式
3.数组变量 数组是一组具有相同数据类型的数据所构成的集合,而其中 单个的数据称为数组元素。数组必须先声明后使用,数组声明 即定义数组名、类型、维数和各维的大小。定义数组后,数组 名代表所有数组元素,而数组名加下标表示一个数组元素,也 称为下标变量。
(2)变量的声明 声明变量有两个作用,一是指定变量的数据类型,二是指 定变量的作用范围。如果在程序中没有明确声明变量,VBA 会默认地将它声明为Variant数据类型。虽然默认声明变量很 方便,但可能会在程序代码中导致严重的错误,因此,使用 变量前声明变量是一个很好的编程习惯。 声明变量要使用Dim语句,Dim语句的格式为 Dim 变量名 [As 数据类型|类型符][,变量名 [As 数据类型| 类型符]]
启动VBE后,屏幕出现VBE窗口,这就是VBA的开发环 境,如图所示。
2.VBE窗口的组成 VBE窗口除主窗口外,主要由工程资源管理器窗口、属性窗 口、代码窗口和立即窗口等组成,另外还有对象窗口、对象浏 览器、本地窗口和监视窗口等,可以通过VBE“视图”菜单中 的相应命令来控制这些窗口的显示。 (1)VBE主窗口 VBE主窗口有菜单栏和工具栏。VBE的菜单栏包括文件、编 辑、视图、插入、调试、运行、工具、外接程序、窗口和帮助 10个菜单项,其中包含了各种操作命令。 在默认情况下,VBE窗口中显示的是“标准”工具栏,其中 包括创建模块时常用的按钮。可以通过选择“视图”→“工具 栏”命令来显示其他工具栏。
第8章 模块与VBA程序设计
了解模块的概念与基本操作。 掌握模块和过程的创建方法。 掌握VBA的基础知识。 掌握VBA程序设计中的流程控制方法。 了解VBA数据库访问技术。
8.1 模块与VBA概述 8.1.1 模块的概念 模块是由VBA通用声明和一个或多个过程组成的单元。 组成模块的基础是过程,VBA过程通常分为子过程(Sub过 程)、函数过程(Function过程)和属性过程(Property过程)。每 个过程作为一个独立的程序段,实现某个特定的功能。
例8-2 在“教学管理”数据库中创建如图9-3所示的窗体, 窗体中包含两个文本框和相应的标签及两个命令按钮。单击 第1个命令按钮时将第1个文本框中的内容显示在第2个文本框 中,单击第2个命令按钮时关闭该窗体。
8.2 VBA的数据类型及运算 8.2.1 数据类型 数据类型反映了数据在内存中的存储形式及所能参与的运 算,它又分为标准数据类型和用户自定义数据类型。 1.标准数据类型 VBA支持多种标准数据类型,为用户编程提供了方便。例 如,Integer(整型)、Long(长整型)、Single(单精度型)、 Double(双精度型)、Currency(货币型)、String(字符型)、 Date(日期型)、Boolean(布尔型)、Byte(字节型)、Variant(变体 型)、Object(对象)。
在VBA中声明常量的语句格式为 Const常量名 [As 数据类型|类型符]=表达式[,常量名 [As 数据类型|类型符]=表达式]
(3)系统常量 系统常量是VBA预先定义好的常量,用户可以直接使用。 例如,VBA用vbKeyReturn来表示Enter键,它的ASCII码值是 13。
2.变量 在高级语言中,变量可以看做是一个被命名的内存单元, 通过变量的名字来访问相应的内存单元。 (1)变量的命名规则 为了区别存储着不同数据的变量,需要对变量命名,VBA 的变量名要遵循标识符的命名规则。为了增加程序的可读性 和可维护性,可以在命名变量时使用前缀的约定。这样通过 变量名就可以知道变量的数据类型。
(2)工程资源管理器窗口 工程资源管理器窗口列出了在应用程序中用到的模块。使用 该窗口,可以在数据库内各个对象之间快速地浏览。各对象以 树形图的形式分级显示在窗口中,包括Access类对象、模块和 类模块。要查看对象的代码,只需在该窗口中双击对象即可。 要查看对象的窗体,可以右键单击对象名,然后在弹出的快捷 菜单中选择“查看对象”命令。
例8-1 在“教学管理”数据库中创建一个标准模块。 操作步骤: ①打开VBE窗口。 ②在代码窗口中输入一个名为“qq”的子过程,然后在立即 窗口中输入命令“Call qq()”,或单击VBE窗口“标准”工具 栏中的“运行子过程/用户窗体”命令按钮,或从“运行”菜 单中选择相应命令来运行该过程,随后可以看到该过程的运行 结果。 ③在VBE窗口中单击“标准”工具栏中的“保存”按钮,并 输入模块名称将模块存盘,这样一个标准模块就建好了,回到 Access导航窗格中可以看到建好的模块对象。
(1)声明固定大小数组 下面的语句声明了一个固定大小数组。 Dim MyArray(10,10) As Integer (2)声明动态数组 可以利用Dim语句来声明数组,不需给出数组大小。每当需 要时,可以使用ReDim语句去更改动态数组,此时数组中存在 的值会丢失。若要保存数组中原先的值,则可以使用ReDim Preserve语句来扩充数组。
数组的声明方式和其他变量是一样的,可以使用Dim语句来 声明,其一般格式为 Dim 数组名([下标1下界 To] 下标1上界[, [下标2下界 To] 下标 2上界]…) As 数据类型 下标下界的默认值为0,在使用数组时,可以在模块的通用 声明部分使用“Option Base 1”语句来指定数组下标下界从1开 始。 数组分为固定大小数组和动态数组两种类型。若数组的大小 被指定,则它是个固定大小数组;若程序运行时数组的大小可 以被改变,则它是个动态数组。
Байду номын сангаас
(2)符号常量 符号常量用标识符来表示某个常量,用户一旦定义了符号 常量,在以后的程序中不能用赋值语句来改变它们的值,否 则,在运行程序时将出现错误。 标识符是用来表示用户所定义的常量、变量、过程、函数 等程序要素的符号。在VBA中,标识符的命名必须以字母或 汉字开头,且只能由汉字、字母(a~z或A~Z)、数字(0~9)或 下划线(_)所组成,其最大长度为255个字符。此外,不能使用 VBA的关键字作为标识符,标识符不区分大小写。
(3)属性窗口 属性窗口列出了所选对象的各种属性,可按字母和分类排序 来查看属性。可以直接在属性窗口中对这些属性进行编辑,还 可以在代码窗口中用VBA语句设置对象的属性。
(4)代码窗口 在代码窗口中可以输入和编辑VBA代码。可以打开多个代码 窗口来查看各个模块的代码,而且可以方便地在代码窗口之间 进行复制和粘贴。 在代码窗口的顶部是两个下拉列表框,左边是对象下拉列表 框,右边是事件下拉列表框。对象下拉列表框中列出了所有可 用的对象名称,选择某一个对象后,在事件下拉列表框中将列 出该对象所有的事件。
④在窗体设计视图或报表设计视图中,单击“窗体设计工具/ 设计”选项卡或“报表设计工具/设计”选项卡,再在“工具” 命令组中单击“查看代码”命令按钮。 ⑤在窗体、报表的设计视图中,右键单击控件对象,再在打 开的快捷菜单中选择“事件生成器”命令,打开“选择生成器” 对话框,选择其中的“代码生成器”选项,单击“确定”按钮。 或单击“属性表”对话框中的“事件”选项卡,选中某个事件 并单击属性框右边的省略号按钮,也可以打开“选择生成器” 对话框,选择其中的“代码生成器”选项,单击“确定”按钮。 ⑥使用Alt+F11组合键,可以在Access主窗口和VBE窗口之 间进行切换。
相关文档
最新文档