您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > Access的编程工具VBA
第8章ACCESS的编程工具VBA8.1VBA程序设计概述8.1.1VBA编程环境VBA编辑器是建立VBA程序的工具,在Access2010中,可以通过以下操作启动VBA编辑器,进入VBA的开发坏境。1.直接进入VBA;2.新建一个模块,进入VBA;3.新建用于响应窗体、报表或控件的事件过程进VBA。8.1.2面向对象程序设计的概念Access是一种面向对象的数据库,它支持面向对象的程序开发技术。1.对象Access中的表、查询、窗体、报表等都是数据库的对象,而控件是窗体或报表中的对象。2.属性一个对象就是一个实体,不同的对象表现出不同的特征,即属性。如书包有大小、材质、颜色等属性数据库对象的属性均可以在各自的设计视图中通过“属性表”面板进行浏览和设置。8.1.2面向对象程序设计的概念3.事件每个对象都能够识别和响应某些操作,这些操作被称为事件,如单击鼠标、窗体或报表打开等。在Access数据库系统里,可以通过两种方式来处理窗体、报表或控件的事件响应。一是使用宏对象来设置事件属性;二是为某个事件编写VBA代码过程,完成指定动作,这样的代码过程称为事件过程或事件响应代码。4.方法方法是对象在事件触发时的行为和动作,是与对象相关联的过程。5.类、子类与对象的封装类是一种对象的归纳和抽象。子类由类派生而来。如电话是一个类,那么有绳电话、无绳电话就是由此类派生的子类。将一个对象内的属性和方法封闭在一个对象的内部,当用到或者创建一个新对象时,它本身已具有了一定的属性和方法,对象的这种属性被称为对象的封装。8.1.3编写简单的VBA程序【例8-1】创建一个内容为“WelcometoChina!”的对话框窗口。SubWelcomeMsg()MsgBoxWelcometoChina!EndSub8.2VBA语法知识8.2.1数据类型1.标准数据类型(1)字符串型字符串型数据就是一个字符的序列,如字母、数字、标点、汉字等都可以定义为字符串类型。在VB中,字符串是放在双引号中的,双引号不算在字符串中,如WelcometoChina!。字符串数据类型又可以分为定长字符串和变长字符串,定长字符串可以包含1~64K个字符,而变长字符串最多可以包含20亿个字符。8.2.1数据类型1.标准数据类型(2)数值型数值型数据是可以进行数学计算的数据。在VBA中,数值型又可以分为整型、长整型、单精度浮点型和双精度浮点型。整型数据占两个字节空间,长整型数据的存储空间为4个字节,单精度浮点型的存储空间为4个字节,双精度浮点型的存储空间为8个字节。8.2.1数据类型(3)货币型货币类型是为了进行钱款的储存和表示而设置的,存储空间为8个字节。(4)布尔型布尔型数据只有两个值True和False。(5)日期型VBA中用来存储日期、时间的数据结构为日期型,存储空间为8个字节。8.2.1数据类型(6)变体型变体型是一种特殊的数据类型,在数据定义时不直接定义数据类型,在以后的调用中可以改变为不同的数据类型。8.2.1数据类型2.用户自定义的数据类型用户自定义型是用户根据自己的需要而定义的标准数据类型所无法满足需要的数据类型。用户自定义数据类型在Type和EndType关键字之间定义,定义格式如下:Type数据类型名数据元素名As〈数据类型〉数据元素名As〈数据类型〉……EndType8.2.1数据类型3.数据库对象数据库、表、查询,窗体和报表等,也有对应的VBA对象数据类型。8.2.2常量、变量和数组1.常量常量是指在数据处理过程中其值保持不变的量。(1)文字常量文字常量实际就是常数,数据类型不同的常量表现也不同。如:3.14,256,1.2e5等为数值型常量;“WelcometoChina!”等为字符串型常量;#11/12/2012#,#11/12/201212:30:30#等为日期型常量。8.2.2常量、变量和数组(2)符号常量符号常量用一个符号来表示常量的值,类型由其值决定。用Const语句来定义符号常量并设定其值,定义格式为:Const常量名=表达式[as类型名]【例8-3】定义一组符号常量。ConstBookname=Access2010数据库管理系统ConstPrice=25ConstPdate=#11/12/2012#8.2.2常量、变量和数组(3)系统常量系统常量由VBA预先定义,用户可以直接调用,如vbRed、vbYes、vbOk等,通常是由应用程序和各种控件提供。8.2.2常量、变量和数组2.变量变量是指在程序运行中值可以改变的量。变量命名语法规则:变量名应是由字母开头的字母、数字、下划线的组合,且不能与VB中的关键字同名,不区分大小写,即add和ADD代表同一变量。8.2.2常量、变量和数组一个变量有以下3个要素构成:变量名:通过变量名来指明数据在内存中的存储位置。变量类型:变量的数据类型决定了数据的存储方式和数据结构。变量的值:即内存中存储的变量值,它是可以改变的量,在程序中可以通过赋值语句来改变变量的值。8.2.2常量、变量和数组2.变量(1)变量的声明声明变量会在内存中提前为该变量分配存储单元,分配的存储单元大小是根据定义的变量类型来确定的。显示声明在使用变量时,一般需先进行定义,即对变量进行显式声明。格式:Dim〈变量名〉As数据类型8.2.2常量、变量和数组【例8-4】显示声明一组变量。DimSnoAsString*10DimScoreAsInteger隐式声明未进行声明而通过赋值语句直接使用的变量,系统会将它默认为Variant型。强制声明在模块通用节中包含一个OptionExplicit语句,则要求程序中的所有变量必须进行显示声明。8.2.2常量、变量和数组(2)变量的作用域变量的作用域就是变量在程序中的有效范围。局部变量局部变量是指定义在模块过程内部的变量。在子过程或函数过程中定义的或不用Dim关键字声明而直接使用的变量,都是局部变量,其作用的范围是其所在的过程。模块变量模块变量是在模块的起始位置、所有过程之外定义的变量。运行时在模块所包含的所有子过程和函数过程中都可见。全局变量全局变量就是在标准模块的所有过程之外的起始位置定义的变量,运行时在所有类模块和标准模块的所有子过程与函数过程中都可见,用Public关键字声明全局变量。8.2.2常量、变量和数组2.变量(3)数据库对象变量Access中的数据库对象及其属性,都可以作为VBA程序代码中的变量加以引用。Access中窗体对象的引用格式为:Forms!窗体名称!控件名称[.属性名称]Access中报表对象的引用格式为:Reports!报表名称!控件名称[.属性名称]3.数组数组是一批相关数据的有序集合,由名字相同而下标不同的一组有序变量表示。一维数组的定义格式:Dim数组名([下标下限to]下标上限)[As数据类型]二维数组的定义格式:Dim数组名([下标下限to]下标上限,[下标下限to]下标上限)[As数据类型]【例8-6】定义数组DimA(6)AsInteger‘定义了一个有7个数组元素的整型数组A,下标从0到6DimB(1to8)AsInteger‘定义了一个有8个数组元素的整型数组B,下标从1到8DimArray1(2,3)AsInteger‘定义了一个有12个数组元素的二维整型数组Array1DimArray2()AsInteger‘定义了一个动态数组Array2A(0)=121‘为数组A的数组元素A(0)赋值1218.2.3VBA的运算符和表达式表达式是由运算符、常量、变量、函数和对象等内容组合而成的。1.算术运算符算数运算符是常用的运算符,用于数值的算数运算。常用的数学运算符如下。8.2.3VBA的运算符和表达式常用的数学运算符如下。运算符含义举例+加1+1结果为2-减1-1结果为0*乘2*3结果为6/除11/2结果为5.5\整除8\3结果为2mod求模8mod3结果为2^幂运算2^3结果为88.2.3VBA的运算符和表达式2.关系运算符关系运算符也称比较运算符,用来表示两个相同数据类型对象之间的大小关系。8.2.3VBA的运算符和表达式运算符含义举例=等于“abc”=”abc”结果为True大于56结果为False小于“abc””abcd”结果为True=大于等于1=2结果为False=小于等于#11/11/2012#=#11/12/2012#结果为True不等于2020结果为FalseLike比较样式1like1结果为TrueIs比较对象变量8.2.3VBA的运算符和表达式3.逻辑运算符逻辑运算符也称为布尔运算符,用于完成逻辑运算。VBA中的主要逻辑运算符如下。8.2.3VBA的运算符和表达式运算符含义说明举例And与参与运算的两个表达式均为真,结果才为真;否则为假。125and76结果为TrueOr或参与运算的两个表达式只要有一个值为真,结果就为真;两个表达式的值均为假,结果才为假。1aor12结果为FalseNot非“非”操作,即原来为真值,运算结果变为假,原来为假值,运算结果变为真值。1aornot12结果为True8.2.3VBA的运算符和表达式4.连接运算符连接运算符具有连接字符串的功能。在VBA中有“&”和“+”两个运算符,如表8-9所示。运算符含义说明举例&强制连接用来强制两个表达式进行字符串连接。“1+1”&”=”&(1+2)+字符串连接只连接两个字符串表达式,将两个字符串连接成一个新字符串。欢迎+光临8.2.4常用的标准函数函数是一种能够完成某种特定操作或功能的数据形式。标准函数的调用形式为:函数名(参数表列)。在使用函数时要注意以几点:(1)函数名:在每一种编程语言中,每个函数都有固定的名称,且不区分大小写。(2)函数的参数:函数的参数相当于数学函数中的自变量,参数跟在函数名的后面,并用小括号()括起来。当函数的参数超过一个时,各个参数之间用逗号“,”分隔;当函数没有参数或参数个数为零时,直接写上函数名即可。8.2.4常用的标准函数(3)返回值:函数的运算结果称为函数值或返回值。任何可以使用表达式的地方都可以使用函数,表达式将函数的返回值作为运算对象。1.数学函数(1)取整函数格式:INT(数值表达式)功能:返回不大于数值表达式的最大整数。【例8-10】INT(5.88)‘结果为:5INT(-5.68)‘结果为:-6INT(21.5+6.8)‘结果为:28(2)截取函数格式:Fix(数值表达式)功能:去掉数值表达式的小数部分,只取整数部分。1.数学函数【例8-11】Fix(5.88)‘结果为:5Fix(-5.68)‘结果为:-51.数学函数(3)绝对值函数格式:Abs(数值表达式)功能:求数值表达式的绝对值。【例8-12】Abs(58)‘结果为:58Abs(-30.27)‘结果为:30.271.数学函数(4)四舍五入函数格式:Round(数值表达式1,数值表达式2)功能:按数值表达式2指定的位数保留小数位数,对数值表达式1的值进行四舍五入运算。【例8-13】Round(215.517,0)‘结果为:216Round(215.517,1)‘结果为:215.5Round(215.517,2)‘结果为:215.52(5)求平方根函数格式:Sqr(数值表达式)功能:返回数值表达式的算术平方根值。【例8-14】Sqr(2)‘结果为:1.41(这里保留了两位有效数字)Sqr(65.78)‘结果为:8.11(这里保留了两位有效数字)(6)求自然对数函数格式:Log(数值表达式)功能:求数值表达式的自然对数值。(7)幂函数格式:Exp(数值表达式)功能:求数值表达式对于e的幂的值。【例8-15】Log(28.67)‘结果为:3.36Exp(5.57)‘结果为:262.43(8)正弦函数格式:Sin(数值表达式)功能:计算以数值表达式正弦值。(9)余弦函数格式:Cos(数值表达式)功能:计算以
本文标题:Access的编程工具VBA
链接地址:https://www.777doc.com/doc-2895799 .html