模块(常量、变量表达式).ppt
第八章 模块,8.1模块的基本概念,模块分为类模块和标准模块1.类模块窗体模块和报表模块具有局部特性,其作用范围局限于所属窗体或报表内部,而生命周期则是伴随着窗体后报表的打开而开始、关闭而结束。2.标准模块标准模块中的公共变量和公共过程具有全局特性,其作用范围在整个应用程序里,生命周期是伴随着程序的运行而开始、关闭而结束。3.将宏转换为模块在Access系统中,可以根据需要,将宏转换为模块。,8.2 创建模块,过程是模块的单元组成,过程分为两种类型:SUB子过程和Function函数过程。1、在模块中加入过程2、在模块中执行宏,8.3 VBA程序设计基础,一般ACCESS程序设计在遇到下列情况时需要使用VBA代码:(1)使用UDF(User-Defined Function)(用户定义函数)(2)复杂的程序处理(3)数据库的事务处理操作(4)使用ActiveX控件和其他应用程序对象(5)错误处理,面向对象程序设计的基本概念,Access内嵌的VBA,功能强大,采用目前主流的面向对象机制和可视化编程环境。1、集合和对象2、属性和方法3、事件和事件过程,面向对象程序设计的基本概念,集合和对象VBA中的应用程序是由许多对象组成的,如表、窗体、查询等。对象是帮助构造应用程序的元素,以特定的方式组织这些对象,就形成了应用程序。数据库窗口把可供选择的对象排列在一起,形成不同的类。,面向对象程序设计的基本概念,属性和方法属性 属性描述了对象的自身性质。其格式为:对象名.属性=属性值方法 方法是系统事先设计好的,可以完成一定操作的特殊过程,是附属于对象的行为和动作。在需要使用的时候可以直接调用。其调用格式为:对象名.方法名,Access中除数据库的7个对象外,还提供一个重要的对象:DoCmd对象 除窗体、控件的SetFocus(获得控制焦点)方法外,用得最多得是 DoCmd对象 的一些方法。使用这些方法,可以在VBA中运行Access的操作。,面向对象程序设计的基本概念,打开当前数据库中的“雇员”窗体 DoCmd.OpenForm Employees 在数据库窗口中选择“雇员”窗体 DoCmd.SelectObject acForm,Employees,True在数据库窗口中关闭“雇员”窗体 DoCmd.Close acForm,“Employees”,acSaveYes删除数据库中的“雇员”表 DoCmd.DeleteObject Employees,DoCmd 对象的常用方法(P201),面向对象程序设计的基本概念,面向对象程序设计的基本概念,事件和事件过程事件 事件是指可以发生在一个对象上且能够被该对象所识别的动作。如:单击某个命令按钮就产生该按钮的“单击”事件事件过程 当某个对象发生某一事件后,就会驱动系统去执行预先编好的、与这一事件相对应的一段程序事件过程。,8.3.2 VBA编辑环境,一、进入VBE编程环境类模块和标准模块进入的方式不同。对于列模块方法(1)(2)对于标准模块方法(1)(2)(3)二、VBE窗体标准工具栏、工程窗口、属性窗口和代码窗口,标准工具条,视图Microsoft Access按钮:切换Access 2000窗口插入按钮:插入模块或过程运行子过程/用户窗体按钮:运行模块中的程序中断按钮:中断正在运行的程序重新设置按钮:结束正在运行的程序设置模式按钮:在设计模式和非设计模式之间切换工程资源管理器按钮:用于打开工程资源管理器属性窗口按钮:用于打开属性窗口对象浏览器按钮:用于打开对象浏览器,VBE编程环境,8.3.2 VBA编辑环境,三、VBE环境中编写VBA代码1、对象浏览器2、快速访问子过程3、自动显示信息4、F1帮助信息,8.3.2 VBA编辑环境,四、编码基础1.VB代码不区分字母的大小写 系统保留字自动转换每个单词的首字母大写 用户自定义行以第一次为准2.语句书写自由 一行可书写几句语句,之间用冒号分隔;一句语句可分若干行书写,用续行符连接 _ 一行=255个字符3.注释有利于程序的维护和调试 Rem开始 或 单撇 4.保留行号与标号.,在VBA中,数据类型用来决定变量可以保存何种数据。VBA支持多种数据类型,为用户编程提供了方便。,参照教材P207页表8-2 VBA的数据类型列表或下页数据库对象参照教材P208页表8-3,8.3.3 数据类型和数据库对象,8.3.3 数据类型和数据库对象,VBA的数据类型,一、常量、变量概述,常量:在程序运行中其存储的值不会改变。变量:在程序运行中其值可以改变。,VBA使用常量、变量来存储值。用来保存在程序运行期间数据。,8.3.4 VBA程序设计基础变量与常量,8.3.4 VBA程序设计基础变量与常量,二.变量和常量的命名规则1.以字母或汉字开头,后可跟汉字、字母、数字或下划线组成,长度小于等于255个字符;2.不要使用VB中的关键字;3.VB中不区分变量名的大小写.4.为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。,说明:常量名的命名规则与变量名的命名规则相同,变量对应内存中的临时存储单元,是存储单元的“名字”,存放在程序执行过程中产生的中间结果和最终的输出结果。在程序中使用变量,就要给变量定义名称及类型,即对变量进行声明。,三、变量,8.3.4 VBA程序设计基础变量与常量,四.变量声明 1.用Dim|Static语句显式声明变量 形式:Dim 变量名 AS 类型 Dim 变量名类型符例:Dim iCount As integer,sAllsum As single 等价于:Dim iCount%,sAllsum!,关键字Dim或Static的区别:Dim 声明:随过程的调用而分配存贮单元,每次调用都对变量初始化;过程体结束,变量的内容自动消失,存储单元释放。Static 声明:Static 声明的变量,也称为静态变量。静态变量在程序运行过程中一直保留其值,即每次调用过程,变量保持原来的值。,8.3.4 VBA程序设计基础变量与常量,2.隐式声明 语句中的“As 类型”子句是可选的。如果使用该子句,就可以定义变量的数据类型。未使用该子句,即未进行上述的声明而直接使用,其类型为 Variant 类型 建议初学者不使用!例:Dim i As integer,s 表示声明了一个名为i的整型变量和一个名为s的变体型变量。注意:VBA中允许不事先声明而直接使用变量,可以通过语句 Option Explicit,来要求所使用的变量必须事先声明,否则VBA会发出警告信息。,下面是一个简单的程序,其使用的变量a,b,Sum都没有事先定义。Private Sub Form_Click()Sum=0 a=10 b=20 Sum=a+b Print Sum=;SumEnd Sub,良好的编程习惯应该是“先声明变量,后使用变量”,这样做可以提高程序的效率,同时也使程序易于调试。VBA 中可以强制显式声明,可以在窗体模块、标准模块和类模块的通用声明段中加入语句:Option Explicit,8.3.4 VBA程序设计基础变量与常量,声明而未赋值的变量的值为:数值型变量初始化为0;字符型变量为零长度字符串;变体型变量初始化为 Empty。,变量的初始化,8.3.3 VBA程序设计基础变量与常量,五、常量 在程序运行过程中,其值不会被改变的量称为常量。在VBA中有三类常量:直接常量 如:10,20%,123.0,“AB”,“VBA程序设计”等 符号常量系统常量 指VBA系统预先定义好的,用户可以直接引用的量。如:acForm,acQuery,vbOk,vbRed,符号常量 在程序中,某个常量多次被使用,则可以使用一个符号来代替该常量,这样不仅在书写上方便,而且有效地改进了程序的可读性和可维护性。VBA中使用关键字Const 声明符号常量。其格式如下:Const 常量名 类型符号=常数表达式如:Const PI#=3.1415926,8.3.5 VBA程序设计基础运算符和表达式,一.运算符 1.算术运算符,例:5+10 mod 10 9/3+2 2 结果:10,8.3.5 VBA程序设计基础运算符和表达式,2、关系运算符 将两个操作数进行大小比较,结果为逻辑量。字符串比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止.。例:“ABCDE”“ABRA”结果为 False“男”女”?,8.3.5 VBA程序设计基础运算符和表达式,3、逻辑运算符 将操作数进行逻辑运算,结果是逻辑值 条件表达式1 And 条件表达式2 条件表达式均为T 结果为T 条件表达式1 Or 条件表达式2 条件表达式有一个T 结果为T,8.3.5 VBA程序设计基础运算符和表达式,4.字符串运算符字符串连接运算符、+123+456 结果 123456 123&456 结果 123456 区别:+两边必须是字符串,&不一定 例如:abcdef+12345 出错 abcdef&12345 结果为 abcdef12345 123+456 结果为 579 123&456 结果为 123456,8.3.5 VBA程序设计基础运算符和表达式,5、对象运算符“!”的引用示例,8.3.5 VBA程序设计基础运算符和表达式,表达式 1.组成 变量、常量、函数、运算符和圆括号 2.书写规则(1)运算符不能相邻。例a+-b是错误的。(2)乘号不能省略。例x 乘以y 应写成:x*y(3)括号必须成对出现,均使用圆括号。(4)表达式从左到右在同一基准上书写,无高低、大小。3.不同数据类型的转换 运算结果的数据类型向精度高的数据类型靠.Integer=字符运算符关系运算符逻辑运算,例:用人单位招聘秘书:年龄小于40岁,女性,学历专科或本科 年龄40 性别=“女”(学历=“专科”学历=“本科”)And And Or考虑:若分别写成:年龄40 And 性别=“女”And(学历=“专科”And 学历=“本科”)年龄40 Or 性别=“女”Or(学历=“专科”Or 学历=“本科”)例:表示算术表达式:正确的VB表达式:3=x And x=7 错误的VB表达式:3=x=7 或 3=x Or x=7,比a小,比b大 用 Or,a小数,b大数,a小数,b大数,比a大,比b小 用 And,8.3 VBA程序设计基础,常见错误1.逻辑表达式书写错,在VB没有造成语法错而形成逻辑错 例数学表达式 3x10 VB表达式为 3=x10 问题在于VB中的逻辑量与数值量可互转2.同时给多个变量赋值,在VB没有造成语法错而形成逻辑错 例 Dim x%,y%,z%x=y=z=13.标准函数名写错 4变量名写错 检查方法:在通用声明段加Option Explicit5语句书写位置错 在通用声明段只能有Dim语句,不能有赋值等其它语句,