资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Edit Master title,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,第八章 模块,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,)错误处理,8.3.1,面向对象程序设计的基本概念,Access,内嵌的,VBA,,功能强大,采用目前主流的面向对象机制和可视化编程环境。,1,、集合和对象,2,、属性和方法,3,、事件和事件过程,8.3.1,面向对象程序设计的基本概念,集合和对象,VBA,中的应用程序是由许多对象组成的,如表、窗体、查询等。对象是帮助构造应用程序的元素,以特定的方式组织这些对象,就形成了应用程序。,数据库窗口把可供选择的对象排列在一起,形成不同的类。,8.3.1,面向对象程序设计的基本概念,属性和方法,属性,属性描述了对象的自身性质。其格式为:,对象名,.,属性,=,属性值,方法,方法是系统事先设计好的,可以完成一定操作的特殊过程,是附属于对象的行为和动作。在需要使用的时候可以直接调用。,其调用格式为:,对象名,.,方法名,Access,中除数据库的,7,个对象外,还提供一个重要的对象:,DoCmd,对象,除窗体、控件的,SetFocus,(,获得控制焦点,),方法外,用得最多得是,DoCmd,对象,的一些方法。使用这些方法,可以在,VBA,中运行,Access,的操作。,8.3.1,面向对象程序设计的基本概念,打开当前数据库中的,“,雇员,”,窗体,DoCmd.OpenForm,Employees,在数据库窗口中选择,“,雇员,”,窗体,DoCmd.SelectObject,acForm,Employees,True,在数据库窗口中关闭,“,雇员,”,窗体,DoCmd.Close,acForm,“,Employees,”,acSaveYes,删除数据库中的,“,雇员,”,表,DoCmd.DeleteObject,Employees,DoCmd,对象的常用方法(,P201,),8.3.1,面向对象程序设计的基本概念,8.3.1,面向对象程序设计的基本概念,事件和事件过程,事件,事件是指可以发生在一个对象上且能够被该对象所识别的动作。,如:单击某个命令按钮就产生该按钮的,“,单击,”,事件,事件过程,当某个对象发生某一事件后,就会驱动系统去执行预先编好的、与这一事件相对应的一段程序,事件过程。,8.3.2 VBA,编辑环境,一、进入,VBE,编程环境,类模块和标准模块进入的方式不同。,对于列模块方法(,1,)(,2,),对于标准模块方法(,1,)(,2,)(,3,),二、,VBE,窗体,标准工具栏、工程窗口、属性窗口和代码窗口,标准工具条,视图,Microsoft Access,按钮:切换,Access 2000,窗口,插入按钮:插入模块或过程,运行子过程,/,用户窗体按钮:运行模块中的程序,中断按钮:中断正在运行的程序,重新设置按钮:结束正在运行的程序,设置模式按钮:在设计模式和非设计模式之间切换,工程资源管理器按钮:用于打开工程资源管理器,属性窗口按钮:用于打开属性窗口,对象浏览器按钮:用于打开对象浏览器,Microsoft,Accsee,插入模块,运行子过程,/,用户窗体,设计模式,中断,重新设计,工程资源管理器,对象浏览器,属性窗口,工程窗口,选择对象,属性窗口,选择对象的属性,代码窗口,选择事件,VBE,编程环境,8.3.2 VBA,编辑环境,三、,VBE,环境中编写,VBA,代码,1,、对象浏览器,2,、快速访问子过程,3,、自动显示信息,4,、,F1,帮助信息,8.3.2 VBA,编辑环境,四、编码基础,1.VB,代码不区分字母的大小写,系统保留字自动转换每个单词的首字母大写,用户自定义行以第一次为准,2.,语句书写自由,一行可书写几句语句,之间用冒号分隔,;,一句语句可分若干行书写,用续行符连接,_,一行,“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,、,对象运算符,“,!”的引用示例,标 识 符,引 用,Forms!,教师名单,引用“教师名单”窗体,Report!,课程表,引用“课程表”报表,Forms!,学生,!,学生,ID,引用“学生”窗体上的“学生,ID”,控件的值,8.3.5 VBA,程序设计基础,运算符和表达式,表达式,1.,组成,变量、常量、函数、运算符和圆括号,2.,书写规则,(,1,)运算符不能相邻。例,a+-b,是错误的。,(,2,)乘号不能省略。例,x,乘以,y,应写成:,x*y,(,3,)括号必须成对出现,均使用圆括号。,(,4,)表达式从左到右在同一基准上书写,无高低、大小。,3.,不同数据类型的转换,运算结果的数据类型向精度高的数据类型靠,.,IntegerLongSingleDouble=,字符运算符,关系运算符,逻辑运算,例:用人单位招聘秘书:年龄小于,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,没有造成语法错而形成逻辑错,例数学表达式,3,x,10 VB,表达式为,3=x10,问题在于,VB,中的逻辑量与数值量可互转,2.,同时给多个变量赋值,在,VB,没有造成语法错而形成逻辑错,例,Dim,x%,y%,z,%,x=y=z=1,3.,标准函数名写错,4,变量名写错,检查方法:,在通用声明段加,Option Explicit,5,语句书写位置错,在通用声明段只能有,Dim,语句,不能有赋值等其它语句,
展开阅读全文