VBA面向对象程序设计

合集下载

数据库原理及应用课件:第5章 ACCESS 数据库—面向对象的程序设计语言(VBA)

数据库原理及应用课件:第5章 ACCESS 数据库—面向对象的程序设计语言(VBA)

13
2022/10/3
– 用户自定义型 所占字节数与元素个数有关,用 户可以使用Type语句定义任何数据类型。语法 如下:
– [Private/Public] Type 类型名
– 元素名 As 数据类型
–…
– End Type
例如:自定义一个教师的基本信息数据类型,其 中包括姓名、性别、年龄的信息。
4
2022/10/3
– 对象(Object)—是类的一个实例,是组成一个 系统的基本逻辑单元,是具有某些特征的具体的 事物的抽象。每个对象都具有属性和行为。
– 数据抽象(Data Abstraction)—指仅表现核心 的特性而不描述背景细节的行为。
– 继承(Inheritance)—是可以让某个类型的对象 获得另一个类型的对象的属性的方法。
24
2022/10/3
例:已知两个数x和y,比较它们的大小,使 得x大于y。
– 方法一:if x<y then
t=x
x=y
y=t
end if
– 方法二: if x<y then t=x:x=y:y=t
25
2022/10/3
– If …Then…Else语句(双分支结构)。此语句 也有两种形式:块结构和行结构。
– I说f…明T:hen语句(单分支结构)。有两种形
式1):表块达结式构一和般行为结关构系表达式、逻辑表达 块式0结为,构F也a形l可s式e以。:为If<算表术达表式达>式Th,e非n 0为True,
2)语句块可以语是句一块句或多句,若用行结 构来表示,则En只d 能If是一句语句,若多句, 行语结句构间形需式用:冒If号<表隔达开式,>而T且he必n须<语在句一>行上 书写。

面向对象程序设计语言-VBA

面向对象程序设计语言-VBA

2. 自定义型:它是用关键词Type定义的,如:
Type Point X as Integer Y as integer
End Type
即定义了一个点(point)的数据结构,声明和 使用变量形式如:
Dim pCurPoint as Point =10 =10
3. 对象型:
所有的数据库中使用的数据库的对象,如数据表、 查询、窗体和报表,也有对应的Access数据类型。
以Access建立的数据库对象及其属性可被看成是 VB程序代码中的变量及其指定的值,例如含有客户地 址数据的文本框。可以使用以下语句:
Forms! Customers! Address = “123 Elm St.”
关键字Forms定义对象的类型。感叹号“!”(程 序设计称之为bang符号)分隔开格式名和控件对象名。 “!”类似于在处理DOS文件时,使用的“\”路径分 隔符。
“Function”的英文含意就是“函数”。它在这 儿用来作为函数申明的一个内容。在它后面跟着的就 是这个函数的函数名。在这个函数名后面的括号中, 列的是这个函数中的参数。每个函数之间要用逗号隔 开,并用“As”语句后跟“数据类型”来定义数据的 类型。括号外面的“As 数据类型”用来定义“函数名” 的。它表示函数返回的数据的数据类型。
模块对象是将Visual Basic for Application(简称 宏语言VBA)编写的过程和声明作为一个整体进行保存的 过程的集合。一个模块包含一个声明区域,且可以包含 一 个 或 多 个 程 序 ( 以 sub 开 头 ) 或 函 数 ( 以 Function 开 头),模块的声明区域是用来声明模块使用的项目(通 常是变量)。
数组中各元素在通常情况下类型必须相同,但若 数组类型为Variant时,可包含不同类型的数据。

模块和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

第9章 VBA程序设计基础

第9章 VBA程序设计基础

第9章 VBA程序设计基础 章 程序设计基础
一般Access程序设计在遇到以下情况时需要使用 程序设计在遇到以下情况时需要使用 一般 VBA代码: 代码: 代码 (1)创建用户自定义函数; )创建用户自定义函数; (2)复杂的程序处理; )复杂的程序处理; (3)数据库的事务处理操作; )数据库的事务处理操作; 控件和其他应用程序对象; (4)使用 )使用ActiveX控件和其他应用程序对象; 控件和其他应用程序对象 (5)错误处理; )错误处理;
9.2 面向对象程序设计基础
9.2.1 面向对象程序设计的基本概念 Access自带的编程语言 自带的编程语言VBA采用目前主流的面向对象 自带的编程语言 采用目前主流的面向对象 机制和可视化编程环境, 机制和可视化编程环境,其中面向对象方法涵盖了对象及对 象属性与方法、 继承、多态性几个基本要素, 象属性与方法、类、继承、多态性几个基本要素,这些概念 是理解和使用面向对象方法的基础和关键。 是理解和使用面向对象方法的基础和关键。 1.对象 . 对象是面向对象方法中最基本的概念。 对象是面向对象方法中最基本的概念。对象可以用来表 示客观世界中的任何实体, 示客观世界中的任何实体,它既可以是具体的物理实体的抽 也可以是人为的概念, 象,也可以是人为的概念,或者是任何有明确边界和意义的 东西。例如:一个人、一本书、一台计算机等都是对象。 东西。例如:一个人、一本书、一台计算机等都是对象。
9.1 模块
VBA中也支持在模块中运行宏: 中也支持在模块中运行宏: 中也支持在模块中运行宏 Microsoft Access 定义了一个特殊的对象 定义了一个特殊的对象DoCmd, , 使用它可以在Visual Basic程序中运行宏的操作。要运行 程序中运行宏的操作。 使用它可以在 程序中运行宏的操作 操作, 对象的方法放到过程中即可。 操作,只需将 DoCmd 对象的方法放到过程中即可。大部 方法。具体格式如下: 分的操作都有相应的 DoCmd 方法。具体格式如下: DoCmd.method [arguments] method是方法的名称。当方法具有参数时, 是方法的名称。当方法具有参数时, 是方法的名称 arguments代表方法参数。但是并不是所有的操作都有对 代表方法参数。 代表方法参数 应的DoCmd方法。 方法。 应的 方法

面向对象的程序设计语言-VBA

面向对象的程序设计语言-VBA

s=p*r*r
s
思考:
End Sub
1、此程序是否正确? 2、变量与常量的区别?
(二)变量
程序运行过程中,值可以改变的量。 1、变量命名规则
➢ 变量名必须以字母或汉字开头,由字母、 汉字、数字或下划线组成(不能含有小数 点和空格),长度不超过255个字符的字符 串;
➢ 不能使用VBA中的关键字;
➢ VBA中不区分变量名的大小写。
(3)布尔型(Boolean) 布尔(Boolean)数据类型是一个逻辑值,用2 字节存储,它的取值只有 True或False。
当转换其他的数值类型为Boolean值时,0会成 为False,非0值则变成True。
当转换Boolean值为其他的数据类型时,False 成为0,而True成为-1。
(4)日期型(Date)
2、变量声明 使用变量之前,一般必须先声明变量。
(1)用Dim语句显式声明变量 Dim 变量名 [As 类型] As部分缺省,创建的变量为变体类型 Dim i As integer , sum As single
本章目录
说明: ①为了方便定义,可在变量名后加类型符来代替
“AS 类型”。此时变量名与类型符之间不能有 空格。 例:
在模块对象窗口单击“新建”按钮,或打开一个
已存在的模块,都会打开VBE窗口。
选择工具菜单中“宏”子菜单的“Visual Basic
编辑器”命令。
使用Alt+F11快捷键打开VBE界面,或切换数据
库窗口和VBE窗口。
8.1.3 VBE窗口
VBE窗口由工具栏、属性窗口、工程资源管理 器窗口、代码窗口和立即窗口组成。
该类型以8字节(64位)进行存储,并且小数点位数 是固定的。

学习VBA基础知识讲课教案

学习VBA基础知识讲课教案
方法 方法是系 统事先设计好的,可以完成一定操作的特
殊过程,是附属(fùshǔ)于对象的行为和动作。在需要使用的时 候可以直接调用。 其格式为: 对象名.方法名
第五页,共108页。
常见(chánɡ jiàn)对象及其含义
对象名 Application Window Worksheet Sheets ShapeRange PivotTable Workbook Shape Range Name Chart
Const PI#= 3.1415926
第十四页,共108页。
2-1-2变量(biànliàng)
变量(biànliàng)是内存中的临时单元,存放在程序执 行过程中产 生的中间结果和最后输出结果。 在程序中使用变量(biànliàng),就要给变量(biànliàng) 定义名称及类型,即 对变量(biànliàng)进行声明。
声明(shēngmíng)而未赋值的变量的值为: 数值型变量初始化为0; 字符型变量为零长度字符串; 变体型变量初始化为 Empty;
第二十五页,共108页。
2-3-1算术(suànshù)运算符
第二十六页,共108页。
2-3-2连接(liánjiē)运算符
连接(liánjiē)运算符: & 、+(字符串连接(liánjiē))
数据类型的声明符。 说明:常量名的命名规则与变量名的命名规则相同
第十六页,共108页。
2-2 数据类型与变量(biànliàng)的声明
在VBA中,数据类型用来决定变量可以保存何种数据。 VBA支持多种数据类型,为用户编程提供(tígōng)了方便。
第十七页,共108页。
2-2-1 VBA的数据类型
第十五页,共108页。

9 VBA数据库编程

9 VBA数据库编程


设置窗体的背景
◦ Me.Picture = “c:\pic\11.bmp"

改变窗体的数据来源
◦ Me.RecordSource = "qtemp“ ◦ Me.RecordSource = “select * from temp"

改变当前窗体文本框的值
◦ Me!Txt1.value=“文本文本” ◦ Me!Txt1.value=[姓名] ◦ Me!Txt1.value=Year(date())-year([工作时 间])
标签属性的设置
文本框属性的设置
窗体fEmp中已有标签Label1、文本框txt1和命令按钮 cmd1 。要求窗体加载时,使用VBA代码设置以下属性:
1.将窗体标题显示为“学生信息浏览”; 2.将窗体记录源改为查询“qt1”; 3.将标签Label1的字体颜色设为红色(255代表红色),字号 为22,字体为黑体; 4.设置文本框txt1的内容为当前系统时间; 5.将命令按钮cmd1设为不可用.
‟Text1文本框的标题 ‟当前窗体中Text1文本框的标题
设置当前报表的标题为“教师基本情况”: Me.caption=“教师基本情况”
在属性窗口设置对象的属性,属于“静态”设置方法,代码实现对对象属性 值的设置,称为“动态”设置方法。
以aption=“学生窗体”

3.关闭窗体/对象
◦ 格式:Docmd.Close [对象类型][,名称]
不带参数时:关闭活动窗体或当前对象 参数的设置:对象类型(窗体、报表、表、查询等),对象名称,保存(是否保存) 例1:DoCmd.Close ‟关闭当前窗口 例2:DoCmd.Close acForm ,“学生信息” ‟关闭学生信息窗体 例3:DoCmd.Close acReport,”输出教师信息” ‟关闭“输出教师信息”报表

第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”
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2019/3/18
数据库应用
24
4. 对象的自治性



由于对象是属性和方法(或事件)的封装 体。 对象状态的改变是由该对象自身实施的。 即其他对象通过发送消息,请求一个对象 改变其状态,该对象的状态是否改变取决 于该对象当前的状态,在某些状态下可能 无法改变该对象的状态,这称为对象的自 治性。
2019/3/18
数据库应用
7
属性

属性取值不同,可以使对象具有不同的状 态。

对图形化界面中的命令按钮来说,属性用来控 制其显示的特性,


例如“标题”属性的取值为“确定”,决定命令按 钮上显示的文字为“确定”。 命令按钮的“可用”属性决定命令按钮是否有效
2019/3/18
数据库应用
8
命令按钮部分属性

即通常不存在一条语句来说明事件被调用。事 件的调用或触发是由用户的操作来实现的,这 被称为事件驱动。
2019/3/18
数据库应用
11
事件例子

例如:命令按钮上存在鼠标的单击事件, 当用户使用鼠标指向该命令按钮并单击鼠 标左键时,将触发在命令按钮上单击事件 中预先编写的代码。
2019/3/18
数据库应用



对象 属性 方法和事件 接口 消息 类
2019/3/18
数据库应用
3
对象


对象就是现实或抽象世界中具有明确含义 或边界的事物。 例如学生“江华”就是一个对象。 对象是属性和方法(或事件)的封装体。

VBA包括:窗体、命令按钮、组合框等对象。 这些对象用来构成与用户交互的界面元素

Application.<上一级对象>!<下一级对象>.属性名 = 值
数据库应用 15
2019/3/18
6. 类



在面向对象程序设计中,为提高程序代码 的重用,一个特定对象的属性和方法(或 事件)由一个特定类来定义。 类可以视为生产多个具有相同属性和方法 (或事件)的对象模板。 一般利用类来组织相似的多个对象。



对象的可标识性 类或对象的封装性 对象的状态性 对象的自治性 类的继承性
2019/3/18
数据库应用
20
对象的可标识性


每个对象实例都有标识自己的名称(Name) 或标识号(英语为Identifier,简写为ID)。 例如,如果图章具有自动改变序号功能, 则每个实例化出来的图章印,虽具有相同 的属性和操作,但它们具有不同的标识 号——序号不同。
2019/3/18
数据库应用
16



在面向对象系统和程序中,具有相同结构 和功能的对象一般用类进行描述,并把一 个特定对象称为其所属类的实例。 类描述的是具有相同属性和方法(或事件) 的一组对象。
2019/3/18
数据库应用
17
类的例子



例如:江华和杨阳都是学生,即他们是 “学生”类的实例,他们都具有“学号”、 “姓名”等属性,同时都具有“注册学 籍”、“选修课程”等操作方法。 为此面向对象方法中提出将具有相同属性 和方法(或事件)对象抽象到类的方法, 即类是对象的抽象,而一个具体对象是某 个类的实例。
数据库应用 18
2019/3/18
类的例子

由于类与对象使用相同的描述方式,即都 具有属性和方法(或事件)。这使得类、 对象的概念容易混淆。

“学生”是一个类 “学生A”则是“学生”类的一个对象。

在面向对象概念中,类是对象的抽象,对 象是类的实例。
2019/3/18
数据库应用
19
9.1.2 类或对象的特性
第9章VBA面向对象的程序设计
面向对象的基本概念
VBA面向对象的方法
面向对象的系统观


不同于结构化程序设计思想,基于面向对 象的系统观认为,一个系统是由若干对象 和这些对象间的交互构造而成。 面向对象系统观反映了基于面向对象的方 法如何构造软件系统。
2019/3/18
数据库应用
2
9.1.1 面向对象核心概念
2019/3/18
数据库应用
21
对象可标识性示例

左侧选中的复选框名称为Check0 名称“Check0”被用来标识左侧的复选框 对象。
2019/3/18
数据库应用
22
2. 类或对象的封装性


类(或对象)的封装性表现在对象将属性 和方法(或事件)封装在对象中。 对象封装的好处是可以隐藏对象内部的实 现细节,即所谓的信息隐蔽原则,也可以 理解为黑箱。


只关心它提供的功能,不关心对象的功能是如 何编写实现。 可以杜绝由于某个对象的方法(或事件)改变 对其他对象的影响,通过独立的分治原则可以 减低问题的复杂性。
数据库应用 23
2019/3/18
3. 对象的状态性


对象的状态性是通过给对象的属性赋值来 表现的。 即对象的取值不同,对象就处于不同状态。 例如,命令按钮是否可用。
2019/3/18
数据库应用
14
5. 消息




消息实现了对象间的交互。 一个对象通过接口向外界公布其提供的属性和 方法(或事件),其他对象通过发送一个特定 的消息来与这个对象进行交互,可能有结果返 回到发送消息的对象,也可能没有结果返回发 送消息的对象。 消息的描述除了和对象公布的属性和方法(或 事件)有关外,它还有特定的格式。 例如:
12
命令按钮具有的事件

通常一个对象包括很多事件,命令按钮具 有的事件。
2019/3/18
数据库应用
13
4. 接口



接口是对象的特殊属性和方法(或事件), 它表示一个对象为其他对象提供的服务。 这些服务包括一个对象向其他对象公开的 属性和方法(或事件)。 一个对象接口中的属性和方法(或事件) 为其他对象所知道,故其他对象通过发送 消息到该对象来实现对象间的交互。
2019/3/18
数据库应用
4
对象示意图
对象 消息 接口 方法或事件 属性
2019/3/18
数据库应用
5
组合框对象的方法
2019/3/18
数据库应用
6
2. 属性


属性用来刻画对象所具备 的特性, 属性具有属性名和属性值 两个部分。

例如江华的籍贯为“江西赣 州”

“江西赣州”为学生“江华” 的籍贯属性取值
2019/3/18
数据库应用
9
3. 方法和事件


方法(或事件)是对象具有的某种处理功 能,在程序代码上表现为一个程序过程。 例如学生“江华”的“注册学籍”、“选 修课程”操作就是学生对象具有的方法。
2019/3/18
数据库应用
10Biblioteka 方法和事件不同之处

对象的方法调用是使用特定格式的显式调 用。 事件的调用方式是隐式的。
相关文档
最新文档