您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > 第8章 模块和VBA程序设计
1第8章模块和VBA程序设计本章主要内容●VBA程序设计基础●模块的概念●常用标准函数●VBA的程序结构●VBA程序运行错误处理●VBA的数据库编程●过程调用和参数传递●DOCMD对象及常用的操作方法2本章概述第8章模块和VBA程序设计在Access系统中,把宏、窗体和报表等对象结合起来,不用编写程序代码就可以建立功能较完善的数据库管理系统。但宏的功能是有局限性的,它只能处理一些简单的操作,如果要实现功能强大的数据管理,以及灵活的控制功能,宏对象就无能为力了。这时,就需要编写程序模块来实现上述的功能。本章介绍模块的概念和用来建立模块的VBA语言的基础知识。38.1模块的概念模块对象是Access系统中所包含的7种对象之一,模块和宏的使用有一些相似之处。宏是由系统自动生成的程序模块,而模块对象是用VBA(VisualBasicforApplication)语言编写的,VBA是Office软件中内置的编程语言,语法与VisualBasic兼容。1.模块的分类在Access中,模块分为类模块和标准模块两种类型。(1).类模块类模块包括窗体模块和报表模块,它们与各自的窗体或报表相关联。窗体模块中的事件过程的代码用于响应窗体或窗体上控件的触发事件。报表模块中的事件过程的代码用于响应报表或报表上控件的触发事件。第8章模块和VBA程序设计48.1模块的概念在窗体或报表的设计视图中,可以使用下面方法打开模块代码的编辑窗口:●单击工具栏上的“代码”按钮。●为窗体或报表创建事件过程时,系统会自动打开模块代码编辑窗口。窗体模块和报表模块的作用范围在其所属窗体或报表内部,并随着窗体或报表的打开而开始,随着窗体或报表的关闭而结束。类模块也可以不依赖窗体或报表而单独存在,并且这种类模块的类型将列在“数据库”窗口中,显示用于新建数据库对象和打开现有对象的快捷方式。类模块还可以为自定义对象创建定义。第8章模块和VBA程序设计58.1模块的概念(2).标准模块标准模块包含与任何其他对象都无关的常规过程,以及可以从数据库任何位置运行的经常使用的过程。标准模块的作用范围在整个应用程序里,生命周期伴随着应用程序的运行而开始、关闭而结束。标准模块显示在数据库窗口的“模块”对象中,窗体、报表和标准模块也都显示在“对象浏览器”对话框中。“对象浏览器”对话框用于显示与当前项目有关和引用对象库中对象、属性、方法和常数的信息。第8章模块和VBA程序设计68.1模块的概念2.模块的组成模块由声明区域和过程两部分组成,声明区域用来声明模块使用的变量,过程是模块的组成单元。过程分为两种类型:子过程(Sub)和函数过程(Function)。(1)子过程子过程又称为Sub过程,可以执行一系列操作,无返回值。定义格式如下:Sub过程名[程序代码]EndSub可以引用子过程的名称来调用该子过程,在过程名前加上关键字Call,可以显式调用一个子过程。第8章模块和VBA程序设计7例8-1:下面是一个简单的验证密码的Sub过程。SubCheckPwd()DimPwdAsStringPwd=InputBox(“请输入密码!”)IfPwd=”123456”ThenMsgBox”密码正确,欢迎进入系统!”ElseMsgBox”密码错误!”EndifEndSub88.1模块的概念(2)函数过程函数过程又称为Function过程,可以执行一系列操作,有返回值。定义格式如下:Function过程名[程序代码]EndFunction调用函数过程时,需要直接引用函数过程的名称,而不能使用Call来调用执行。第8章模块和VBA程序设计9例8-2:下面是编写求圆面积的函数过程。FunctionCircle1(rAsSingle)AsSingleDimCircle2AsSingler=InputBox(“请输入圆半径值!”)Ifr=0ThenMsgBox“圆半径必须是正数!”EndifCircle2=3.14159*r*rEndFunction108.1模块的概念3.将宏转换为模块在Access系统中,可以将创建好的宏转换为等价的VBA事件过程或模块的形式。根据要转换宏的类型不同,转换操作有两种情况,一种是转换窗体或报表中的宏,另一种是转换不属于任何窗体和报表的全局宏。(1)转换窗体或报表中的宏转换窗体或报表中的宏具体步骤说明如下:①在设计视图中打开窗体。②执行“工具”菜单中的“宏”级联菜单中的“将窗体的宏转换为VisualBasic代码”命令,屏幕显示“转换窗体宏”对话框。第8章模块和VBA程序设计118.1模块的概念③在对话框中,单击“转换”按钮,屏幕显示“转换完毕”对话框。④单击“确定”按钮完成转换。将全局宏转换为模块的具体步骤说明如下:①在数据库窗口中,单击“宏”对象,选择要转换的宏。②执行“文件”菜单中的“另存为”命令,打开“另存为”对话框,如图8.3所示。第8章模块和VBA程序设计(2)转换全局宏128.1模块的概念③在对话框的“保存类型”下拉列表框中,选择“模块”列表项,然后单击“确定”按钮,屏幕显示“转换宏”对话框。④在对话框中单击“转换”按钮,屏幕显示“转换完毕”对话框。⑤单击“确定”按钮完成转换。返回第8章模块和VBA程序设计138.2VBA程序设计基础第8章模块和VBA程序设计在VBA中,程序是由过程组成的,过程由根据VBA规则书写的指令组成。一个程序包括语句、变量、运算符、函数、数据库对象、事件等基本要素。一般Access程序设计在遇到下列情况时需要使用VBA代码:1.创建用户自定义函数。2.复杂程序处理。3.数据库的事务处理程序。4.使用ActiveX控件和其他应用程序对象。5.错误处理。148.2.1面向对象程序设计的基本概念Access内嵌的VBA编程语言,采用的是目前主流的面向对象编程机制和可视化编程环境,同时也提供了访问数据库和操作数据表中记录的基本方法。1.对象和类Access中的表、查询、窗体、报表、页、宏和模块等都是数据库的对象,而控件是窗体或报表中的对象。每个不同的对象都通过不同的属性相互区分。对象的属性按其类别会有所不同,而且同一对象的不同实例属性构成也可能有差异。8.2VBA程序设计基础第8章模块和VBA程序设计158.2VBA程序设计基础具有相同属性和方法的对象就组成了类,在窗体或报表设计视图窗口中,工具箱中的每个控件就是一个类,而在窗体或报表中创建的具体控件则是这个类的对象。而属于同一个类的两个对象是通过属性值来区分的。Access中的表、查询、窗体、报表、页、宏和模块对象也是类,称为对象类。Access数据库窗口左侧显示的就是数据库的对象类,单击某个对象类可以打开相应对象窗口。对象除了属性以外还有方法。对象的方法就是对象可以执行的行为。第8章模块和VBA程序设计168.2VBA程序设计基础2.属性、方法和事件属性、方法和事件构成了对象的基本要素。属性描述了对象的性质,例如,文本框控件对象中的名称、字体的相关属性等。对象属性的引用方式为:对象.属性方法描述了对象的行为,即在某个对象上执行的一个过程,例如打开和关闭报表对象。对象方法的引用方式为:对象.方法事件是由Access定义好的,可以被窗体、报表以及窗体或报表上的控件等对象所识别的动作。在Access数据库系统里,可以通过以下两种方式来处理窗体、报表或控件的事件响应。第8章模块和VBA程序设计178.2VBA程序设计基础●使用宏对象来设置事件属性。●为某个事件编写VBA代码过程,完成指定动作,这种代码过程称为事件过程或事件响应代码。Access中主要的对象事件,如下表所示对象名称事件动作动作说明窗体OnLoad窗体加载时发生事件OnUnLoad窗体卸载时发生事件OnOpen窗体打开时发生事件OnClose窗体关闭时发生事件OnClick窗体单击时发生事件OnDblClick窗体双击时发生事件OnMouseDown窗体鼠标按下时发生事件第8章模块和VBA程序设计188.2VBA程序设计基础OnKeyPress窗体上键盘按键时发生事件OnKeyDown窗体上键盘按下键时发生事件报表OnOpen报表打开时发生事件OnClose报表关闭时发生事件命令按钮控件OnClick按钮单击时发生事件OnDblClick按钮双击时发生事件OnEnter按钮获得输入焦点之前发生事件OnGetFoucs按钮获得输入焦点时发生事件OnMouseDown按钮上鼠标按下时发生事件OnKeyPress按钮上键盘按键时发生事件OnKeyDown按钮上键盘按下键时发生事件第8章模块和VBA程序设计198.2VBA程序设计基础标签控件OnClick标签单击时发生事件OnDblClick标签双击时发生事件OnMouseDown标签上鼠标按下时发生事件文本框控件BeforeUpdate文本框内容更新前发生事件AfterUpdate文本框内容更新后发生事件OnEnter文本框获得输入焦点之前发生事件OnGetFoucs文本框获得输入焦点时发生事件OnLostFoucs文本框失去输入焦点时发生事件OnChange文本框内容更新时发生事件OnKeyPress文本框内键盘按键时发生事件OnMouseDown文本框内鼠标按下键时发生事件第8章模块和VBA程序设计208.2VBA程序设计基础对象名称事件动作动作说明组合框控件BeforeUpdate组合框内容更新前发生事件AfterUpdate组合框内容更新后发生事件OnEnter组合框获得输入焦点之前发生事件OnGetFoucs组合框获得输入焦点时发生事件OnLostFoucs组合框失去输入焦点时发生事件OnClick合框单击时发生事件OnDblClick合框双击时发生事件OnKeyPress组合框内键盘按键时发生事件第8章模块和VBA程序设计218.2VBA程序设计基础选项组控件BeforeUpdate选项组内容更新前发生事件AfterUpdate选项组内容更新后发生事件OnEnter选项组获得输入焦点之前发生事件OnClick选项组单击时发生事件OnDblClick选项组双击时发生事件单选按钮控件OnKeyPress单选按钮内键盘按键时发生事件OnGetFoucs单选按钮获得输入焦点时发生事件OnLostFoucs单选按钮失去输入焦点时发生事件复选框控件BeforeUpdate复选框更新前发生事件第8章模块和VBA程序设计228.2VBA程序设计基础AfterUpdate复选框更新后发生事件OnEnter复选框获得输入焦点之前发生事件OnClick复选框单击时发生事件OnDblClick复选框双击时发生事件OnGetFoucs复选框获得输入焦点时发生事件第8章模块和VBA程序设计23事件分类键盘事件键按下OnKeyDown击键OnKeyPress鼠标事件单击OnClick双击OnDblClick鼠标按下OnMouseDown对象事件获得焦点OnGetFoucs失去焦点OnLostFoucs更新前BeforeUpdate更新后AfterUpdate更改OnChange窗口事件打开OnOpen关闭OnClose加载OnLoad248.2VBA程序设计基础8.2.2VBE编程环境VBE是VisualBasicEditor的缩写,是Access提供的一个编程环境。VBE窗口的组成:VBE窗口主要由标准工具栏、工程窗口、属性窗口和代码窗口4部分组成。(1)标准工具栏VBE窗口中的标准工具栏如图8.7所示。标准工具栏中常用按钮作用如表8.2所示。第8章模块和VBA程序设计258.2VBA程序设计基础按钮按钮名称作用Access视图切换Access数据库窗口插入模块用于插入新模块运行子过程/用户窗体运行模块程序中断运行中断正在运行的程序终止运行/重新设计结束正在运行的程序,重新进入模块设计状态设计模式设计模式和非设计模式切换工程项目管理器打开工程项目管理器窗口属性窗体打开属性窗体对象浏览器打开对象浏览器窗口第8章模块和VBA程序设计268.2VBA程序设计基础8.2.3VBA的基本数据类型1.数据类型VBA支
本文标题:第8章 模块和VBA程序设计
链接地址:https://www.777doc.com/doc-3195404 .html