版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章
模块
本章内容提要第1讲模块与VBA基础知识
1第2讲VBA程序设计2第3讲面向对象程序设计及VBA程序调试3第三讲面向对象程序设计及VBA程序调试本讲主要教学内容12面向对象编程基础
过程调用与参数传递小结3学习目标1
掌握VBA程序过程调用与参数传递的形式及概念。2
掌握VBA程序的面向对象程序设计的概念及相关应用基础知识。3
掌握VBA程序调试的基本使用方法和技巧。重点与难点
VBA程序过程调用、参数传递、面向对象编程常识是本讲的重点。参数传递、面向对象编程概念是本讲的难点。引言
VBA是一种面向对象的语言,因此进行VBA的开发,必须了解面向对象程序设计的一些基本知识。程序调试是查找和解决VBA程序代码错误的过程。
本讲将学习VBA程序过程调用与参数传递、面向对象编程基础及程序调试等内容。1、Sub子过程
在VBA中,的Sub子过程分为:事件过程和通用过程。事件过程绑定在事件上,在Access中,不同的对象可触发不同的事件。但总体来说,Access中的事件主要有键盘事件、鼠标事件、对象事件、窗口事件和操作事件等。(2)控件事件的语法
PrivateSub控件名_事件名(参数列表)<语句组>
EndSub(1)窗体事件的语法
PrivateSubForm_事件名(参数列表)<语句组>
EndSub
8.3VBA程序设计
8.3.2过程调用与参数传递[Public|Private][Static]Sub子过程名([形参表])<局部变量或常数定义>
<语句组>
[ExitSub]
<语句组>
EndSub
说明:
(1)子过程名:命名规则与变量名规则相同。子过程名不返回值,而是通过形参与实参的传递得到结果,调用时可返回多个值。(2)形式参数列表:形式参数通常简称“形参”,仅表示形参的类型、个数、位置,定义时是无值的,只有在过程被调用时,虚实参结合后才获得相应的值。
(3)通用过程子过程的定义形式如下:
8.3VBA程序设计
(3)过程可以无形式参数,但括号不能省。
(4)参数的定义形式:
[ByVal|ByRef]变量名[()][As类型][,…],
ByVal表示当该过程被调用时,参数是按值传递的;ByRef(缺省)表示当该过程被调用时,参数是按地址传递的。例如:一个交换两个整型变量值的子过程。
PrivateSubSwap(XAsInteger,YAsInteger)
DimtempAsInteger
Temp=X:X=Y:Y=TempEndSub
8.3VBA程序设计
2、Function过程[Public|Private][Static]Function函数名([<参数列表>])[As<类型>]<局部变量或常数定义><语句块>
函数体[函数名=返回值]
[ExitFunction]<语句块>[函数名=返回值]EndFunction注意:在函数体内,函数名可以当变量使用,函数的返回值就是通过对函数名的赋值语句来实现的,在函数过程中至少要对函数名赋值一次。
8.3VBA程序设计
3、过程的调用子过程的调用:
子过程名
[参数列表]
或:
Call子过程名(参数列表)函数过程的调用:
变量名
=函数过程名([参数列表])说明:
(1)参数列表称为实参或实元,它必须与形参保持个数相同,位置与类型一一对应。(2)调用时把实参值传递给对应的形参。其中值传递时实参的值不随形参的值变化而改变(形变实不变)。而地址传递时实参的值随形参值的改变而改变(形变实也变)。
8.3VBA程序设计
(3)当参数是数组时,形参与实参在参数声明时应省略其维数,但括号不能省。
(4)调用子过程的形式有两种,用Call关键字时,实参必须加圆括号括起,反之则实参之间用“,”分隔。例如:调用上面定义的Sawp子过程的形式:
Swapa,bCallSwap(a,b)注意:形式参数是指在定义通用过程时,出现在Sub或Function语句中的变量名后面园括号内的数,用来接收传送给子过程的数据,形参表中的各个变量之间用逗号分隔。
8.3VBA程序设计
PrivateSubCmdOK()……
CallSwap(a,b)……
Swapa,bEndSubPrivateSubSwap(x%,y%)
Dimtemp%Temp=XX=YY=TempEndSub
4、过程调用的执行过程:
8.3VBA程序设计
5、过程之间参数的传递⑴形式参数
是指在定义通用过程时,出现在Sub或Function语句中的变量名后面园括号内的数,是用来接收传送给子过程的数据,形参表中的各个变量之间用逗号分隔。
⑵实际参数实际参数是指在调用Sub或Function过程时,写入子过程名或函数名后括号内的参数,其作用是将它们的数据(数值或地址)传送给Sub或Function过程与其对应的形参变量。实参可由常量、表达式、有效的变量名、数组名(后加左、右括号,如A()组成,实参表中各参数用逗号分隔。
8.3VBA程序设计
⑶参数传递(虚实结合)
参数传递指主调过程的实参(调用时已有确定值和内存地址的参数)传递给被调过程的形参。参数的传递有两种方式:按值传递、按地址传递。形参前加“ByVal”关键字是按值传递,缺省或加“ByRef”关键字为按地址传递。⑷传址与传值
传址:形参得到的是实参的地址,当形参值的改变同时也改变实参的值。(形变实也变)。
传值:形参得到的是实参的值,形参值的改变不会影响实参的值。(形变实不变)
8.3VBA程序设计
SubSwap2(x%,y%)DimTemp%Temp=x:x=y:y=TempEndSubSubSwap1(ByValx%,ByValy%)DimTemp%Temp=x:x=y:y=TempEndSub
例如:实现参数过程调用及参数传递的应用实例。定义子过称swap1定义子过称swap2PrivateSubCmdOK_Click()a%=10:b%=20:Swap1a,b‘调用swap1传值
Print"A1=“&a&"B1=“&ba=10:b=20:Swap2a,b‘调用swap2传地址
Print"A2=“&a&"B2=“&bEndSub
8.3VBA程序设计
1、对象与类对象:对象是基本的运行时的实体,如窗体、报表、各种控件等,包括作用于对象的操作(方法)和对象的响应(事件)。将数据和处理这些数据的过程封装在一起。类与对象是面向对象程序设计语言的基础。类:一个抽象的整体概念,对象是类的实例化。
8.3VBA程序设计
8.3.3面向对象程序设计例如:“学生”→类,“张三”→对象2、属性(Property)
属性:所有对象都有自己的属性。用来描述和反映对象特征的参数。如:控件名称(Name)、标题(Caption)、颜色(Color)、字体(FontName)等属性决定了对象展现给用户的界面具有什么样的外观及功能。对象属性设置的方法:
在设计模式下,通过属性窗口直接设置对象的属性。
在程序的代码中通过赋值实现,其格式为:
对象名.属性名=属性值
例如:
Label10.Caption=“显示”
8.3VBA程序设计
在VBA中引用ACCESS对象:基本语法:
Forms(或Reports)!窗体(或报表)名称!控件名称[.属性名]注意要点:如果在通用模块或在一类模块中引用另一类模块的控件时,应该使用上述完整语法。如果在类模块中引用自己窗体上的控件,仅采用下面语法:
控件名称[.属性名]例如:在窗体Form1中引用Form2上的Label1控件:
Forms!Form2!Label1.Caption=“教师信息表”
在引用Form2上引用自己的Label1控件:
Label1.Caption=“教师信息表
8.3VBA程序设计
属性说明Name(名称)返回或设定对象的名字Caption(标题)返回或设定对象的标题文字Controlsource(数据源)指定控件显示的数据源Decimalplaces(格式)指定显示的小数位数Defaulvalue(默认值)设定控件的默认值Visible(可见性)控件或窗体、报表是否可见Scrollbars(滚动条)窗体或组合框上的滚动条Height、Width(高、宽)设定控件的大小Left、Top(左、上边距)设定控件在窗体或报表中的位置Backstyle(背景样式)指定控件是否透明:常规为1,透明为0Backcolor(背景颜色)指定控件或节的颜色fontName、FontSize(字体名称、字体大小)设定字体及字体大小Enabled(控件是否可用)控件是否接受焦点和响应用户操作Text设置或返回文本框、组合框中的文本
8.3VBA程序设计
3、事件(Event)及事件过程(EventProcedure)
事件:可被对象识别的动作。如:窗体打开OnOpen,按钮的单击OnClick,双击OnDbClick等。事件过程:是指附在该对象上的程序代码,是事件触发后处理的程序。事件过程的形式如下:
Sub对象名_事件过程名[(参数列表)]…..(事件过程代码)
EndSub例如:
SubcmdOk_Click()cmdOk.FontSize=20’设置命令按钮的字体大小为20EndSub
8.3VBA程序设计
4、方法(Method)
方法:在对象上可操作的过程,是VB系统提供的一种特殊的过程和函数方法是面向对象的,所以方法调用一般要指明对象。对象方法调用形式:[对象.]方法[参数列表]
例如:
Debug.print"欢迎您使用ACCESS"
‘在立即窗口中打印出文字
8.3VBA程序设计
程序调试是查找和解决VBA程序代码错误的过程。当程序代码执行时,会产生开发错误与运行时错误2种类型的错误。开发错误是语法错误和逻辑错误。语法错误可能由输入错误、标点丢失或是不适当地使用某些关键字等产生的。逻辑错误是指应用程序未按设计执行,或生成了无效的结果。
8.4VBA程序调试
8.4.1VBA编程规范为了避免不必要的错误,应该保持良好的编程风格。通常应遵循以下几条原则:模块化多注释变量显式声明良好的命名思路少用变体类型VBE提供了“调试”菜单和“调试”工具栏,工具栏如图所示。打开调试工具的方法是:单击“视图”→“工具栏”→“调试”命令,即可弹出“调试”工具栏。
8.4VBA程序调试
8.4.2VBA调试工具栏及功能
“调试”工具栏上各个按钮的功能说明见书上如表8-6所示。1.执行代码VBE提供了多种程序运行方式,通过不同的运行方式,可以对代码进行各种调试工作
:
8.4VBA程序调试
8.4.3程序调试方法及技巧逐语句执行代码
逐过程执行代码
跳出执行代码
运行到光标处
设置下一语句
2.暂停代码运行VBE提供的大部分调试工具,都要在程序处于挂起状态才能有效,这时需暂停VBA程序的运行。在这种情况下,程序仍处于执行状态,只是暂停的正在执行的语句之间,变量和对象的属性仍
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南京市浦口区2027届四年级数学第一学期期末综合测试模拟试题含解析
- 2026年株洲市石峰区街道办人员招聘笔试备考试题及答案详解
- 2026年安徽省亳州市中小学教师招聘考试模拟试题及答案详解
- 2026年浙江省丽水市街道办人员招聘考试参考题库及答案详解
- 2026年专用设备制造业专利布局分析
- 2026年泰州市高港区中小学教师招聘笔试备考试题及答案详解
- 2025年山东省临沂市街道办人员招聘考试试题及答案详解
- 2025年四川省成都市中小学教师招聘考试试题及答案详解
- 2026年焦作市中站区街道办人员招聘考试参考试题及答案详解
- 2025年湛江市坡头区中小学教师招聘考试试题及答案详解
- 2026苏教版四年级上册科学每课知识点梳理
- 广东省佛山市普通高中2025-2026学年高一下学期供题训练数学试卷(含解析)
- 2026年制冷与空调设备运行操作复审考试及考试题库及答案参考
- 2026年度新泰市市属国有企业公开招聘工作人员笔试备考试题及答案详解
- 2026年人教版初一数学下学期期末考试试卷及答案(共三套)
- 2026年即时零售行业月报-平台、商家、履约与利润
- 2025年检察院案件管理办公室工作人员招聘考试真题及答案
- 2026年驾考三力测试题及答案
- 2026无人驾驶观光车行业市场供需分析及投资评估规划分析研究报告
- 房间隔缺损封堵术护理要点
- SMT首件培训教学课件
评论
0/150
提交评论