Access VBA编程基础补充学习资料.docx
- 文档编号:23867197
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:38
- 大小:95.43KB
Access VBA编程基础补充学习资料.docx
《Access VBA编程基础补充学习资料.docx》由会员分享,可在线阅读,更多相关《Access VBA编程基础补充学习资料.docx(38页珍藏版)》请在冰豆网上搜索。
AccessVBA编程基础补充学习资料
Access编程-VBA模块
第一节VBA基础
一、VBA简介
VBA是VisualBasicforApplication的缩写,是MicrosoftOffice软件的内置编程语言,编写VBA代码需要利用VisualBasic编辑器(VisualBasicEditor,简称VBE),VBE是以VisualBasic的编程环境为基础,提供了Office应用程序集成的编程环境。
启动VBE的常用方法有三种:
(1)通过事件过程
(2)通过模块对象
(3)通过“工具”菜单
VBE窗口主要由工具栏、代码窗口、工程资源管理器窗口和属性窗口等组成。
1、工具栏
默认的情况下,在VBE窗口中显示的是标准工具栏。
2、代码窗口
在代码窗口中可以输入或编辑VBA代码。
3、工程资源管理器窗口
该窗口的列表框中列出了应用程序中所用到的模块文件。
4、属性窗口
该窗口列出了所选对象的各种属性,可以查看属性,并且可以编程这些对象的属性。
二、VBA程序书写规则
1、程序语句书写规则
(1)通常一条语句占一行
(2)如果某条语句较长,一行写不下时,可以使用续行符“_”将一条语句写在多行上,这样在按Enter键时,系统就会将连续有“_”的代码看成一条语句。
(3)如果多个语句都特别短,可以使用冒号“:
”将语句分隔开,写在一行中。
2、注释语句
在VBA程序中,注释可以通过以下两种方式实现:
(1)使用Rem,格式为:
Rem注释的文字
(2)使用单引号,格式为‘注释的文字
例:
有以下语句,分别加了注释。
Dima1AsInterger:
Rem定义了整型变量a1
Dima2AsInterger‘定义了整型变量a2
A1=5:
a2=6‘分别给变量a1、a2赋值
:
Rem重新给变量a1赋值
A1=7
三、VBA的数据类型
(1)标准数据类型
数据类型
类型标识
类型说明符
取值范围
整型
Integer
%
-32768~32767
长整型
Long
&
单精度
Single
!
双精度
Double
#
货币
Currency
@
字符串
String
$
0~65500
布尔型
Boolean
无
True或False
日期型
Date
无
100/1/1~9999/12/31
变体型
Variant
无
⏹布尔型数据:
其取值为True或False,True值存储为-1,False值存储为0。
⏹日期型数据:
其常量表示时以#号为定界符,如#2001-1-1#
⏹变体型数据:
可以包含除定长字符串与用户自定义类型外的任何数据类型。
(2)用户自定义类型(了解)
定义格式:
Type[数据类型名]
成员名1as<数据类型>
成员名2as<数据类型>
……
EndType
如:
TypeStud‘定义数据类型名
Noasintger
Nameasstring*8‘*8表示数据长度最多可以是8个汉字的长度
Sexasstring*1‘*1表示数据长度最多可以是1个汉字的长度
Scoreassinge
Endtype
Dimst‘定义数据类型变量
‘给变量的各个成员赋值
St.no=1001
St.name=”李四”
St.sex=”男”
St.score=88.5
四、常量、变量、运算符和表达式
1、常量
常量是在程序运行过程中其值保持不变的量,在VBA中常量可分为3种:
直接常量、符号常量和系统常量。
(1)直接常量
直接使用一个值来表示的常量,称为直接常量。
(2)符号常量
常量在程序中也可用符号表示,通常可使用Const关键字来声明常量并设置其值。
符号常量的定义格式是:
Const符号常量名称[As数据类型]=常量值
例如:
ConstPIassingle=3.1415926‘定义了一个符号常量PI,其值为3.1415926
(3)系统常量
Access系统一些启动时就建立的系统常量,在编写代码时可以直接使用。
2、变量
变量是在程序运行过程中其值可以改变的量。
如同一间旅馆客房,昨天可住旅客A,今天住旅客B,明天又有可能被闲置。
变量的命名规则如下:
1)以字母或汉字开头,后可跟字母、数字或下划线。
2)变量名最长为255个字符。
3)不区分变量名的大小写,不能使用关键字。
4)字符之间必须并排书写,不能出现上下标。
5)在同一范围内变量名必须唯一
例:
以下是合法的变量名:
a,x,x3,BOOK_1,sum5,长度,宽度
例:
以下是非法的变量名:
3ss*T-3xbowy-1if
(1)变量的声明
声明变量的语法格式为:
Dim变量名As数据类型
VBA中关键字不能作变量名,常用的关键字如下:
Array、As、Case、Double、DO、True、False、Is、Open、End、Integer、Long等。
例:
定义一个变量MyName为字符串,一个变量为MyAge为整形。
DimMyNameAsString
DimMyAgeAsInteger
DimMyNameAsString,MyAgeAsInteger‘在同一行中定义两个关键字,以逗号分隔两个变量
说明:
1)使用一个Dim关键字也可以在一行中声明多个变量,变量与变量之间用逗号分隔。
2)在一行中定义多个变量时,每个变量都应该指定数据类型,若没有指定数据类型,默认为Variant(变体型)数据类型。
如果变量没有声明,直接指定一个值给变量名,这种变量的数据类型也是Variant。
3)在VBA程序中,可以强制要求在使用变量前必须进行声明,方法是在“代码窗口”的顶部对象组合框中选择“通用”,过程组合框中选择“声明”,然后再输入语句:
OptionExplicit。
4)定义变量除了使用关键字Dim,还可以使用关键字Public(全局变量)或Global(全局变量)或Static(静态变量)代替。
补充:
数据库对象变量
Access建立的数据库对象及其属性,均可被看成是VBA程序代码中的变量及其指定的值来加以引用。
例如,Access中窗体和报表对象的引用格式为:
Forms!
窗体名称!
控件名称[.属性名称]
或Reports!
报表名称!
控件名称[.属性名称]
关键字Forms或Reports分别表示窗体或报表对象集合。
感叹号“!
”分隔开对象名称和控件名称。
“属性名称”部分缺省,则为控件基本属性。
如果对象名称中含有空格或标点符号,就要用方括号把名称括起来。
(2)变量赋值
给变量赋值,就是将指定的数据保存到变量中。
赋值语句的基本格式为:
变量名=表达式
例:
定义字符串变量Name,并给变量赋值。
DimNameAsString
Name=”张三”
Name=”李四”
3、运算符
主要包括四种类型的运算符:
算术运算符、关系运算符、逻辑运算符和连接运算符。
(1)算术运算符
算术运算符主要用来进行数学计算。
1)^:
求幂T=2^3
2)-:
负数T=-3
3)*:
乘T=3*4
4)/:
除T=7/2T=7/3.5
5)\:
整除T=10\3结果为3T=10\3.6结果为2
说明:
对于整除(\)运算,如果操作数有小数,系统会四舍五入变成整数后再进行整除运算,若结果有小数直接舍去,只保留整数部分。
6)MOD:
求余数T=10MOD3结果为1T=10MOD-2.6结果为1
说明:
对于求余数(MOD)运算,如果操作数有小数,系统也会四舍五入变成整数后再进行求余数运算,余数的正负号同被除数的正负号相同,即被除数为正数,余数则为正数,反之,如果被除数为负数,余数则为负数。
7)+:
加
8)-:
减
(2)关系运算符
关系运算符也称为比较运算符,用来对两个操作数的大小进行比较,比较运算的结果为逻辑值:
True(逻辑真)和False(逻辑假)。
1)=:
等于T=(1=3)‘False
2)>:
大于T=(5>3)‘TrueT=(“ab”>”c”)‘FalseT=#2008/3/9#>#2009/3/9#
3)>=:
大于等于T=(5>=5)‘TrueT=(“wo”>=”wh”)‘True
4)<:
小于T=(9<5)‘FalseT=(“wo”<”woh”)‘True
5)<=:
小于等于T=(9<=10)‘TrueT=(“C”<=”B”)‘False
6)<>:
不等于T=(“a”<>”b”)‘True
说明:
比较运算符比较数值型数据时,按值的大小进行比较,值大的数据较大,比较运算符比较字符时,按字符ASCII码值的大小进行比较,ASCII码值大的数据较大。
(3)、逻辑运算符
逻辑运算符用来对逻辑值进行运算,结果仍为逻辑值。
VBA中常用的逻辑运算符有3种:
1)NOT:
逻辑非
对于逻辑非(NOT)运算符,若NOT运算符后的逻辑值为True,则运算结果为False,反之,若NOT运算符后的逻辑值为False,则运算结果为True。
例:
NOT10>4
2)AND:
逻辑与
对于逻辑与(AND)运算符,若AND运算符前后的逻辑值同时为True,则运算结果为True,否则为False。
例:
5>3AND6<125>3AND6>7
3)OR:
逻辑或
对于逻辑或(OR)运算符,只要OR运算符前后的逻辑值有一个为True,则运算结果为True,否则为False。
例:
5>3OR5<25<4OR3>6
(4)连接运算符
连接运算符用于将两个或多个字符串连接起来,组成一个新的字符串。
连接运算符有两个:
“+”和“&”。
例:
”visual”+”basic”‘visualbasic
”visual”&”basic”‘visualbasic
”visual”+5‘出错
”visual”&5‘visual5
如果运算符两边不全是字符串数据,则“+”运算符不能进行运算,“&”运算符可以将非字符串数据转换为字符型数据,再进行运算。
4、表达式
表达式是由各种运算符将变量、常量和函数连接起来构成的。
对于包含多种运算符的表达式在计算时,会按照预定的顺序计算每一部分,这个顺序被称为运算符优先级。
运算符的优先级规则:
1)算术运算符>连接运算符>关系运算符>逻辑运算符
2)算术运算符中各运算符的优先级:
求幂(^)>负数(-)>乘、除(*、/)>整除(/)>求余数(MOD)>加、减(+、—)
3)关系运算符中各运算符的优先级相同,即从左到右。
4)逻辑运算符中各运算符的优先级:
逻辑非(NOT)>逻辑与(AND)>逻辑或(OR)。
5)有小括号先算小括号内的。
例:
12\3*2+6>4MOD3,求该表达式的结果。
12\6+6>4MOD3
2+6>4MOD3
2+6>1
8>1
例:
3>4+(7>6AND6<5),求该表达式的结果。
3>4+(TrueANDFalse)
3>4+0
3>4
说明:
在VBE窗口中,单击“视图”菜单中的“立即窗口”命令,随即会弹出立即窗口。
该窗口可以测试表达式的值,先输入“?
”,在问号后输入表达式,回车后即可显示表达式结果。
五、数组
数组用来表示一组具有相同数据类型的值。
数组中可以存储的元素个数称为数组的容量。
数组分为两类:
固定数组和动态数组。
(1)固定数组的声明
声明格式如下:
Dim数组名([下标下界TO]下标上界)AS数据类型
说明:
数组容量计算方法:
下标上界-下标下界+1;若[下标下界TO]缺省,则默认为0。
例:
以下语句声明了两个不同数据类型的数组。
‘定义11个字符串数构成的数组Array1,数组元素为Array1(0)至Array1(10)
DimArray1(10)ASString
:
REM定义一个整型数组Array2,该数组中包含8个数组元素,数组下标下界为-3
DimArray2(-3To4)ASInteger
以上定义的固定数组,都是一维数组,在VBA程序中也可以定义多维数组,最多可以定义60维。
定义多维数组时,格式一样,只是下标下界和下标上界之间用逗号分隔。
例:
定义一个二维整型数组和一个三维字符串数组。
‘定义一个二维整型数组Array3,数组的元素有4*5=20个
DimArray3(3,4)ASInteger
‘定义一个三维字符串数组Array4,数组的元素有3*4*5=60个
DimArray4(2,3,4)ASString
(2)动态数组的声明
动态数组在声明时不指定数组元素的个数,需要时再用ReDim关键字定义。
当不需要动态数组包含的元素时,可以使用ReDim将其设为0.释放该数组占用的内存。
定义格式为:
Dim数组名()AS数据类型
ReDim数组名(个数)
ReDim数组名(0)
例:
定义一个动态整型数组Arrary5。
DimArray5()AsInteger‘定义一个动态整型数组Array5
…
ReDimArray5(10)‘为动态数组Array5定义元素个数
…
ReDimArray5(0)‘释放动态数组Array5所战胜的内存
六、数据的输入输出
InputBox函数和MsgBox函数是两个常用的函数,分别用于数据的输入和输出。
(1)InputBox函数
使用输入对话框来输入数据,输入对话框中包含文本框、提示信息和命令按钮。
返回值的类型是文本型。
InputBox函数的一般格式为:
InputBox(prompt,[,title][,default])
其中3个参数的类型都是文本型,其各自的含义如下:
Prompt:
显示在输入对话框中的提示字符串,该参数必须有。
Title:
显示在输入对话框的标题栏中的内容,该参数可以省略,省略后,标题栏中显示应用程序名。
Default:
在输入对话框中,在没有输入数据时,显示在文本框中的默认值。
可以省略。
该函数的返回值就是用户在对话框中输入的字符型数据,如果需要输入非文本型的数据,可以通过相应的类型转换函数进行相应的转换。
例:
InputBox(“请输入姓名”,”姓名输入”)
(2)MsgBox函数
该函数的作用是弹出消息框,消息框是一种对话框,可以用来显示警告信息其他的提示信息。
该函数的返回值是整型值。
一个消息框由4部分组成:
标题、提示信息、图标和命令按钮。
MsgBox函数的格式为:
MsgBox(prompt[,buttons][,title])
其中各参数的含义如下:
Prompt:
显示在消息对话框中的提示字符串,该参数必须有。
文本型数据。
Buttons:
显示的按钮类型,出现在消息框中的图标样式。
可以省略。
(了解)
取值说明
vbOKOnly只显示OK按钮
vbOKCancel显示OK和Cancel按钮
vbYesNOCancel显示Yes、No和Cancel按钮
vbQuestion显示WarningQuery图标
vbExclamation显示WarningMessage图标
vbInformation显示InformationMessage图标
vbDefaultButton1第1个按钮是默认值
vbDefaultButton2第2个按钮是默认值
vbDefaultButton3第3个按钮是默认值
其中这三组参数只能配合使用,不能出现矛盾的情况。
Title:
显示在消息框标题栏上的目录字符串。
文本型,可以省略。
例:
MsgBox(“您确定要退出吗?
”,vbOKCancel+vbQuestion+vbDefaultButton1,”确认退出”)
作业:
1、编写一个程序。
输入三角形的3条边长,求三角形的周长并输出。
2、编写程序。
通过对话框输入长方形的长和宽,计算其面积并输出计算结果。
第二节VBA常用函数
一、算术函数
1、绝对值函数:
Abs(<数值表达式>)
函数功能:
返回数值表达式的绝对值。
例:
Abs(-10)‘返回值为10
2、向下取整函数:
Int(<数值表达式>)
函数功能:
返回数值表达式的整数部分,如果数值表达式为负值时返回小于等于该数值表达式的第一个负整数。
例:
Int(3.25)=3,Int(3.99)=3,Int(-2.14)=-3,Int(-2.98)=-3
3、向上取整函数:
Fix(<数值表达式>)
函数功能:
返回数值表达式的整数部分,如果数值表达式为负值时返回大于等于该数值表达式的第一个负整数。
例:
Fix(3.25)=3,Fix(3.99)=3,Fix(-2.14)=-2,Fix(-2.98)=-2
4、平方根函数:
Sqr(<数值表达式>)
函数功能:
计算数值表达式的开平方。
例:
Sqr(9)=3
重要5、产生随机数函数:
Rnd(<数值表达式>)
函数功能:
产生0~1之间的单精度随机数。
如果数值表达式值小于0,每次产生相同的随机数;如果数值表达式值大于0,每次产生新的随机数;如果数值表达式值等于0,产生最近生成的随机数,且生成的随机数序列相同,如果省略数值表达式参数,则默认参数值大于0。
例:
Int(100*Rnd)‘产生[0,99]的随机整数
Int(101*Rnd)‘产生[0,100]的随机整数
Int(100*Rnd+1)‘产生[1,100]的随机整数
Int(100*Rnd+200)‘产生[200,299]的随机整数
通式:
Int(a*Rnd+b)=>产生[b,a+b-1]的随机整数
6、四舍五入函数:
Round(<数值表达式>[,<小数位数>])
(详见计算机应用基础教材附录B)
例:
Round(3.84,1)=3.8,Round(3.86,1)=3.9,Round(143.84,-1)=140,Round(143.84,0)=144
二、字符串函数
1、字符串长度检测函数:
Len(<字符串表达式>)或Len(<变量名>)
函数功能:
返回字符串表达式所包含的字符数,每个汉字、字母、数字、空格占1个字符。
例:
dimstrasstring*10
DimI
str=”123”
I=12
Printlen(“12345”)‘长度为5
Printlen(12)‘出错
Printlen(i)‘长度2
Printlen(“等级考试”)‘长度4
Printlen(str)‘长度10
2、字符串检索函数:
InStr([start,]string1,string2[,compare])
函数功能:
用于检索子字符串string2在字符串string1中最早出现的位置,返回一个整型数。
Start为可选参数,用于设置检索起始位置。
如果省略,则从第一个字符开始检索;compare也是可选参数,用于指定文本比较方法,值可以为1、2和0(省略)。
指定0做二进制比较,指定为1做不区分大小写的文本比较,指定为2做基于数据库中包含信息的比较。
如果指定了该参数,则一定要有start参数。
说明:
如果字符串string1的长度为0,或字符串string2在字符串string1检索不到,则Instr函数返回0,如果字符串string2的长度为0,则Instr函数返回start的值。
例:
str1=”12345ab”
Str2=”23
Str3=””
T=Instr(str1,str2)‘返回2
T=Instr(7,str1,str2,1)‘返回0
T=Instr(str1,str3)‘返回1(当一个空字符串测试是否在另一个字符串中出现过,返回值都是1,此处str3是空字符串)
又如T=Instr(3,”AssiAb”,”a”,1)‘返回5
3、字符串截取函数:
1)Left(<字符表达式>,
从字符串左边开始截取N个字符。
例:
DimAnyString,MyStr
AnyString="HelloWorld"'定义字符串。
MyStr=Left(AnyString,1)'返回"H"。
MyStr=Left(AnyString,7)'返回"HelloW"。
MyStr=Left(AnyString,20)'返回"HelloWorld"。
2)Right(<字符表达式>,
从字符串右边开始截取N个字符。
例:
DimAnyString,MyStr
AnyString="HelloWorld"'定义字符串。
MyStr=Right(AnyString,1)'返回"d"。
MyStr=Right(AnyString,6)'返回"World"。
MyStr=Right(AnyString,20)'返回"HelloWorld"。
3)Mid(<字符表达式>,
从字符串左边第N1个字符开始截取N2个字符,如果省略N2参数,则截取从字符串左边第N1个字符开始的所有字符。
例:
DimMyString,FirstWord,LastWord,MidWords
MyString="MidFunctionDemo"建立一个字符串。
FirstWord=Mid(MyString,1,3)'返回"Mid"。
LastWord=Mid(MyString,14,4)'返回"Demo"。
MidWords=Mid(MyString,5)'返回"FuncionDemo"。
说明:
对于Left函数和Right函数,如果参数N的值为0,则返回零长度字符串,即空串;如果N的值大于等于字符串的字符数,则返回整个字符串。
4、生成空格字符函数:
Space(<数值表达式>)
函数功能:
返回数值表达式的值指定的空格字符数。
例:
DimMyString
MyString=Len(Space(10))'返回10
MyString=Len("Hello"&Space(10)&"World")'返回20
5、删除空格函数:
1)LTrim(<字符串表达式>):
删除字符串起始处的空格。
2)RTrim(<字符串表达式>):
删除字符串结尾处的空格。
3)Trim(<字符串表达式>):
删除字符串起始处、结尾处的空格。
例:
Str1=”校园网”
Str2=LTrim(Str1)‘返回”校园网”
Str3=RTrim(Str1)‘返回”校园网”
Str4=Trim(Str1)‘返回”校园网”
6、大小写转换函数:
1)LCase(<字符串表达式>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Access VBA编程基础补充学习资料 VBA 编程 基础 补充 学习 资料