您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 招标投标 > AccessVBA编程
11.1VBA概述11.2VBA编程基础11.3程序的流程控制11.4模块、函数与子过程11.5面向对象的程序设计11.6VBA的数据库编程11.7调试过程第11章AccessVBA编程本章要点了解什么是标准模块了解VBA程序设计相关内容掌握程序基本结构,能够利用VBA程序设计主窗体、查询窗体、登录窗体等。11.1VBA概述11.1.1VBA简介Access提供了强大的交互操作功能,开发者通过创建表、查询、窗体、报表、页、宏等对象,可以将数据整合在一起,快速建立和管理简单的数据库应用系统。创建过程虽然简单,但是所建系统会有一定的局限性,无法实现复杂的处理和必要的判断控制。Access提供了VBA编程技术,VBA在开发中的应用,大大加强了对数据管理应用功能的扩展,使开发出来的系统更具灵活性和自动性,更容易发挥开发者的想象力和创造力。11.1VBA概述11.1.2VBA的编程环境VBA的编程环境,称为VBE(MicrosoftVisualBasicEditor),是编写和调试程序的重要环境。11.1VBA概述1.进入VBE(1)在窗体或报表中进入VBE(2)在窗体或报表外进入VBE属性窗口插入模块视图MicrosoftAccess中断设计模式运行子过程/用户窗体重新设计对象浏览器11.1VBA概述2.VBE界面VBE界面主要由常用工具栏和多个子窗口组成。11.1VBA概述VBE界面中的的窗口有代码窗口、立即窗口、本地窗口、监视窗口、对象浏览器、工程资源管理器、属性窗口。不同的窗口显示不同的对象,可以执行【视图】菜单中的相应命令来调出窗口。11.2VBA编程基础在编写代码时,需要用到程序设计基础知识,包括VBA的基本数据类型、常量与变量、运算符、表达式以及常用函数。11.2VBA编程基础11.2.1数据类型数据是信息的物理表示形式,是程序处理的对象。在VBA中,对不同类型的数据有不同的操作方式和不同的取值范围。VBA的数据类型有系统定义和自定义两种,系统定义的数据类型称为标准类型。11.2VBA编程基础11.2.2常量和变量计算机处理数据时,必须将其装入内存。在高级语言编写的程序中,需要将存放数据的内存单元命名,通过内存单元名来访问其中的数据。命名的内存单元,就是常量或变量。11.2VBA编程基础1、常量(1)直接常量文字常量直接出现在代码中,也称为字面常量或直接常量,文字常量的表示形式决定它的类型和值。例如:字符型:Iamastudent放在一对引号当中。数值型:3.14159、56、8.432E-15日期型:#3jan,98#放在一对#当中。逻辑型:True、False11.2VBA编程基础(2)符号常量符号常量就是用标识符来表示一个常量,例如:我们把3.14定义为pi,在程序代码中,我们就可以在使用圆周率的地方使用pi。使用符号常量的好处主要在于,当我们要修改该常量时,只需要修改定义该常量的一个语句即可。定义常量的方法如下:const常量名[as类型]=表达式说明:常量名的命名规则。[as类型]用以说明常量的数据类型。11.2VBA编程基础(3)固有常量VBA还提供了许多固有常量,固有常量有两个字母前缀指明了定义该常量的对象库。来自MicrosoftAccess库的常量以“ac”开头,来自ADO库的常量以“ad”开头,而来自VisualBasic库的常量则以“vb”开头,例如:acForm、adAddNew、vbCurrency。可以用“对象浏览器”来查看所有可用对象库中的固有常量列表。11.2VBA编程基础(4)系统定义常量系统定义的常量有:TrueFalseNull11.2VBA编程基础2、变量在程序执行过程中,其值可以改变的量称为变量。在VBA代码中,变量名的命名有如下规定:最长只能有255个字符。必须用字母开头。可以包含字母、数字或下划线字符(_)。不能包含标点符号或空格等。不能是VisualBasic关键字。关键字是那些在VisualBasic中用作语言的一部分的词,包括预定义语句(如If和Loop)、函数(如Len和Abs)和运算符(如Or和Mod)。11.2VBA编程基础使用变量前,应首先定义所用到的变量(包括变量名和类型),使系统分配相应的内存空间,并确定该空间可存储的数据类型。所有变量都具有名字和类型。在VB中可以用类型说明语句或隐式说明来定义变量。(1)类型说明语句格式:说明符变量名[As类型]说明符是说明语句的关键字,它可以是Dim,Private,Public,Static。11.2VBA编程基础(2)使用类型说明符声明变量VBA允许使用类型声明符来声明变量,类型声明符放在变量的末尾。如:intX%表示是一个整型变量,douY#是一个双精度变量,strZ$是个字符串变量。例如:intX%=1243douY#=45665.456strZ$=Access11.2VBA编程基础(3)隐式说明VB中使用未加说明的变量时,系统默认为可变类型(Variant),这种方式称为隐式说明。建议初学者养成对变量显示说明的习惯,以避免一些不必要的错误。11.2.3运算符与表达式表达式是由常量、变量和运算符按一定的规则组成的字符序列。11.2VBA编程基础11.2VBA编程基础1、算术运算符和算术表达式算术运算符用来连接数值型数据进行算术运算。2、字符串运算符和字符串表达式字符串只有连接运算,在VB中可以用“+”或“&”。建议尽量使用“&”,使程序看起来更明了。注意“+”和“&”的区别。当两个被连接的数据都是字符型时,它们的作用相同。当数字型和字符型连接时,“&”把数据都转化成字符型然后连接;“+”把数据都转化成数字型然后连接。11.2VBA编程基础11.2VBA编程基础3、关系运算符和关系表达式关系运算符用作两个数值或字符串的比较,返回值是逻辑值True或False。表列出了VB中的关系运算符及使用示例。ab.not.aa.and.ba.or.btruetruefalsetruetruetruefalsefalsefalsetruefalsetruetruefalsetruefalsefalsetruefalsefalse11.2VBA编程基础4、逻辑运算符11.2VBA编程基础5、对象运算符和对象运算符表达式引用了对象或对象属性的表达式称为对象表达式。对象运算符有两种:“!”和“.”。“!”运算符的作用是指出随后为用户定义的内容。使用它可以引用一个开启的窗体、报表或开启窗体或报表上的控件。“.”运算符通常引用窗体、报表或控件等对象的属性。11.2VBA编程基础11.2.4常用函数函数实际上是系统事先定义好的内部程序,用来完成特定的功能。VBA提供了大量的内部函数,供用户在编程时使用。函数的一般形式是:函数名(参数表)11.2VBA编程基础11.2.5数组数组不是一种数据类型,而是一组相同类型的变量集合。数组的优点:用数组名代表逻辑上相关的一批数据。用下标表示数组中的各个元素。11.2VBA编程基础1、数组的声明数组在使用前,必须显式声明,可以用Dim语句来声明数组。⑴一维数组的声明Dim数组名(下标)[As类型]例如:Dimy(5)AsInteger定义了一个一维数组,该数组的名字为y,类型为Integer,占据6个(0~5)整型变量的空间。11.2VBA编程基础说明:(1)定义数组后,数值数组中的全部元素都初始化为0,字符串数组中的全部元素都初始化为空字符串。(2)“数组名”的命名遵守标识符规则。(3)“下标”的一般形式为“[下界to]上界”。下标的上界、下界为整数,不得超过Long数据类型的范围,并且下界应该小于上界。如果不指定下界,下界默认为0。11.2VBA编程基础2、数组的使用数组声明后,数组中的每个元素都可以当作简单变量来使用。例如,S(2)是一个数组元素,其中的S称为数组名,2是下标。在使用数组元素时,必须把下标放在一对紧跟在数组名之后的括号中。S(2)是一个数组变量,而S2则是一个简单变量。11.3程序的流程控制11.3.1顺序结构简单程序可以只用顺序结构来编写,即程序从左至右、自顶向下执行语句。11.3程序的流程控制11.3.2分支结构在程序设计中经常遇到这类问题,它需要根据不同的情况采用不同的处理方法。例如,一元二次方程的求根问题,要根据判别式小于零或大于等于零的情况,采用不同的数学表达式进行计算。对于这类问题,如果用顺序结构编程,显然力不从心,必须借助选择结构。11.3程序的流程控制1.单行If语句格式:If条件表达式Then语句块EndIf11.3程序的流程控制语句说明:①条件表达式:一般为关系或逻辑表达式。表达式成立,结果为True,否则为False。②语句块:可以是一条或多条语句。③If…Then、EndIf是VBA的保留字。语句执行过程:当条件表达式的结果为真时,执行Then后面的语句块,否则执行EndIf后面的语句。11.3程序的流程控制2.多行If语句格式:If条件then语句块1[Else语句块2]EndIf11.3程序的流程控制功能:块If首先判断“条件”,其值为真时,执行语句块1;为假时执行语句块2。当缺省[Else…]中的内容时,该选择结构只对条件满足的情况进行处理。执行过程如图所示。3.If…Then…ElseIf语句格式:If条件1then语句块1ElseIf条件2then语句块2……[Else语句块n+1]EndIf11.3程序的流程控制11.3程序的流程控制功能:(1)依次判断条件,如果找到一个满足的条件,则执行其下面的语句块,然后跳过EndIf,执行后面的程序。(2)如果所列出的条件都不满足,则执行Else语句后面的语句块;如果所列出的条件都不满足,又没有Else子句,则直接跳过EndIf,不执行任何语句块。4.IIf函数IIf函数是If语句的一种特殊格式,它的使用语法如下:IIf(条件,表达式1,表达式2)作用是,先判断条件,如果条件为真,返回表达式l的值;否则返回表达式2的值。例如:c=IIf(ab,a,b)语句执行后,如果ab,则c的值为a,否则c的值为b。11.3程序的流程控制11.3程序的流程控制5.SelectCase语句当对一个表达式的不同取值情况作不同处理时,用ElseIf语句程序结构显得较为杂乱,而用SelectCase语句将使程序的结构更清晰,SelectCase语句又称为情况语句。11.3程序的流程控制格式:SelectCase测试表达式Case表达式列表1语句块1Case表达式列表2语句块2…Case表达式列表n语句块n[CaseElse语句块n+1]EndSelect功能:根据“测试表达式”的值,选择第一个符合条件的语句块执行。执行过程是:先求“测试表达式”的值,然后顺序测试该值符合哪一个Case子句中情况,如果找到了,则执行该Case子句下面的语句块,然后执行EndSelect下面的语句;如果没找到,则执行CaseElse下面的语句块,然后执行EndSelect下面的语句。11.3程序的流程控制11.3程序的流程控制说明:“测试表达式”可以是数值型或字符串型表达式;Case表达式可以有多种形式:1、单个值或一列值,相邻两个值之间用逗号隔开。2、用关键字To指定值的范围,其中第一个值不应大于第二个值,对字符串将比较它的第一个字符的ASCII码大小。11.3程序的流程控制3、使用关键字is指定条件。is后紧接关系操作符(如、、=、=、=和等)和一个变量或值。4、前面的三种条件形式混用,多个条件之间用逗号隔开。Case语句按先后顺序进行比较,执行与第一个case条件相匹配的代码。若不存在匹配的条件,则执行CaseElse语句。然后程序将从EndSelecct语句后的代码行继续执行。11.3.3循环结构循环结构非常适合于解决处理的过程相同、处理的数据相关,但处理的具体值不同的问题。我们把能够处理这类问题的语句称为循环语句。11.3程序的流程控制1.While循环对于只知道控制条件,但不能预先确
本文标题:AccessVBA编程
链接地址:https://www.777doc.com/doc-4572939 .html