您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > Access基础教程-Access2010第八章
长春师范大学计算机科学与技术学院8.1模块8.2面向对象程序设计基础8.3VBA编程基础8.4VBA程序流程控制8.5子过程与函数过程8.6文件8.7API函数与ActiveX数据对象8.8常用操作方法通过Access自带的向导工具,能够创建表、窗体、报表和宏等基本组件。但是,由于创作过程完全依赖于Access内在的、固有的程序模块,这样虽然方便了用户的使用,但是同时也降低了所建系统的灵活性,对于数据库中一些复杂问题的处理则难以实现。因此,为了满足用户更加广泛的需求,Access为用户提供了它自带的编程语言VBA。VBA是VisualBasicforApplications的英文缩写,是用Basic语言来作为语法基础的可视化的高级语言。它使用了对象、属性、方法和事件等概念,使得初学者在编程的过程中感到十分容易,这也可以说是VBA的优点之一。一般Access程序设计在遇到以下情况时需要使用VBA代码:(1)创建用户自定义函数;(2)复杂的程序处理;(3)数据库的事务处理操作;(4)使用ActiveX控件和其他应用程序对象;(5)错误处理;模块是将VBA声明和过程作为一个单元进行保存的集合。模块有两种基本类型:类模块和标准模块。模块中的每一个过程都可以是一个Function函数过程或一个Sub子过程。8.1.1标准模块标准模块包含的是通用过程和常用过程,这些通用过程不与任何对象相关联,常用过程可以在数据库中的任何位置运行。标准模块的创建方法是:在功能“创建”选项卡下“宏与代码”组中的按钮即可。但是需要初学者注意的是:此时Sub或者Function前面的关键字一般不能用Private,而要用Public。这意味着在标准模块中定义的子程序或子函数在其他的窗体中都能调用。8.1.2类模块类模块是可以包含新对象定义的模块。新建一个类实例时,也就新建了一个对象。在Access中,类模块是可以单独存在的。实际上,窗体和报表模块都是类模块,而且它们各自与某一窗体或报表相关联。窗体和报表模块通常都含有事件过程,该过程用于响应窗体或报表中的事件。可以使用事件过程来控制窗体或报表的行为,以及它们对用户操作的响应,例如用鼠标单击某个命令按钮。为窗体或报表创建第一个事件过程时,MicrosoftAccess将自动创建与之关联的窗体或报表模块。如果要查看窗体或报表的模块,可以在其设计视图中单击功能区“窗体设计工具/设计”(或“报表设计工具”)选项卡下“工具”组中的“查看代码”按钮。在VBE的“工程”窗口下,鼠标右击需添加代码的窗体或报表,在弹出菜单中选择“插入”命令,然后在其子菜单中选择“类模块”,就建立了一个新的类模块,如图8.1所示。类模块中,为新建类添加属性需要用到Property过程,该过程有三种类型:get、let和set。get用来在读取属性时执行;let用来在写入属性时执行;set是let的一种特例,在该子程序中,被传递到子程序的值本身是一个对象。如果是为新建类添加方法,可以通过Function子函数来完成。8.1.3宏和模块MicrosoftAccess能够自动地将宏转换为VisualBasic程序中的事件过程或模块,这些事件过程或模块可以通过VisualBasic执行与宏相同的操作。首先,以窗体为例介绍如何将窗体中的宏转化成VisualBasic程序。(1)在窗体的设计视图中打开窗体。(2)在功能区“窗体设计工具/设计”选项卡下“工具”组中,单击“将窗体的宏转换为VisualBasic代码”按钮,打开如图8.2所示的“转换窗体宏”对话框。(3)确定复选框的选择,单击“转换”按钮完成转换过程。其次,介绍如何将独立宏转换成VisualBasic程序。(1)在“导航”窗格的“宏”对象列表下,单击选中需要转换的宏。(2)在功能区“文件”选项卡下,单击“对象另存为”命令,打开如图8.3所示的“另存为”对话框。(3)为另存为对象命名,同时将“保存类型”设置为“模块”,单击“确定”按钮,完成转换过程。MicrosoftAccess定义了一个特殊的对象DoCmd,使用它可以在VisualBasic程序中运行宏的操作。要运行操作,只需将DoCmd对象的方法放到过程中即可。大部分的操作都有相应的DoCmd方法。具体格式如下:DoCmd.method[arguments]method是方法的名称。当方法具有参数时,arguments代表方法参数。但是并不是所有的操作都有对应的DoCmd方法,这是初学者应该知道的。8.2.1面向对象程序设计的基本概念Access自带的编程语言VBA采用目前主流的面向对象机制和可视化编程环境,其中面向对象方法涵盖了对象及对象属性与方法、类、继承、多态性几个基本要素,这些概念是理解和使用面向对象方法的基础和关键。1.对象对象是面向对象方法中最基本的概念。对象可以用来表示客观世界中的任何实体,它既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西。例如:一个人、一本书、一台计算机等都是对象。VBA中可以使用这些对象以及范围更广泛的一些可编程对象,例如:窗体或报表中的控件。面向对象程序设计中的对象也可以包含其他对象,例如:窗体是一个对象,它又可以包含标签、文本框、命令按钮等对象。包含其他对象的对象称为容器对象。客观世界中的实体通常都既具有静态的属性,又具有动态的行为,因此,面向对象方法学中的对象是由描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统一体。对象可以做的操作表示它的动态行为,在面向对象程序设计中通常把对象的操作也称为方法或服务。2.属性和方法现实生活中的每个对象都有许多特性,每个特性都有一个具体的值。例如,某个人的姓名是张明,性别是男,身高是1.75m,体重是70kg,则姓名、性别、身高、体重等就是该对象的特性,张明、男、1.75m、70kg等则是描述该对象特性的具体数据。在面向对象程序设计中,对象的特性称为对象的属性,描述该对象特性的具体数据称为属性值。方法就是事件发生时对象执行的操作。方法与对象是紧密联系的。例如:单击命令按钮时显示消息框,则显示消息框就是命令按钮对象在识别到单击事件时的方法。属性和方法描述了对象的性质和行为。其引用方式为:对象.属性或对象.行为。Access中除数据库的7个对象外,还提供一个重要的对象:DoCmd对象。它的主要功能是通过调用包含在内部的方法来实现VBA编程中对Access的操作。例如:利用DoCmd对象的OpenForm方法打开“学生”窗体的语句格式为:DoCmd.OpenForm“学生”3.类和集合某一种类型的对象具有一些共同的属性,将这些共同属性抽象出来就组成一个类。例如:每名学生都有学号、姓名、性别、年龄、院系等属性,将所有学生具有的共同属性抽象出来就组成“学生”类,每个具体的学生都是“学生”类中的一个对象实例。集合由某类对象所包含的实例构成。例如:{(”0801”,”张明”,”男”,20,”计算机”),(”0802”,”赵倩”,”女”,19,”中文”),……}就是“学生”类的集合。4.事件和事件驱动事件就是对象可以识别和响应的操作。事件是预先定义的特定的操作。不同的对象能够识别不同的事件。例如:鼠标能识别单击、双击、右键单击等操作,而键盘则能识别键按下、键释放、击键等操作。事件驱动是面向对象编程和面向过程编程之间的一大区别,在视窗操作系统中,用户在操作系统下的各个动作都可以看成是激发了某个事件。比如单击了某个按钮,就相当于激发了该按钮的单击事件。在Access系统中,事件主要有:鼠标事件、键盘事件、窗口事件、对象事件和操作事件等。8.2.2VBA的开发环境VBEVBE是VBA程序的开发环境,在Access2010中进入到VBE环境下有几种方法。在窗体或者报表中,进入VBE环境有两种方法。(1)在设计视图中打开窗体或者报表,然后单击功能区“窗体设计工具/设计”选项卡下“工具”组中的“查看代码”按钮。(2)在设计视图中打开窗体或者报表,然后在某个控件上单击鼠标右键,系统将弹出“选择生成器”对话框,在该对话框中,选择其中的“代码生成器”项,然后单击“确定”按钮即可。在窗体或者报表之外,进入VBE环境也有方法是:单击功能区“创建”选项卡下“宏与代码”组中的“VisualBasic”(或“模块”、“类模块”)命令。8.2.3VBA程序的调试程序的调试是开发数据库系统中必不可缺少的环节,在完成系统程序开发后,需要对其进行调试,以便找到其中的错误。常用的调试手段有设置断点、单步跟踪和设置监视点。1.设置断点将插入点移动到要设置断点的位置,然后执行“调试”菜单下的“切换断点”命令。若要取消该断点,再次单击“切换断点”按钮即可,如图8.4所示。如果想彻底地了解程序的执行顺序,需要使用单步跟踪功能。执行“调试”菜单下的“逐语句”命令,使程序运行到下一行,这样逐步检查程序的运行情况。当不想跟踪一个程序时,可以再次执行“调试”菜单下的“逐语句”命令即可。2.设置监视点(1)选择“调试”菜单中的“添加监视”命令,弹出“添加监视”对话框,如图8.5所示。(2)在“表达式”框中输入表达式或者变量,在“上下文”框中分别选择相应的过程和模块。在“监视类型”中设定监视的方式。(3)单击“确定”按钮,弹出调试窗口,当程序运行到满足监视条件的位置时,就会暂停运行,并弹出监视窗口。8.2.4VBA程序运行错误处理VBA中提供OnErrorGoTo语句来控制当有错误发生时程序的处理。其语法结构有以下三种:OnErrorGoTo标号OnErrorResumeNextOnErrorGoTo0“OnErrorGoTo标号”语句在遇到错误发生时将转移到标号所指位置并执行其后的代码。“OnErrorRseumeNext”语句在遇到错误发生时不会考虑错误,并继续执行下一条语句。“OnErrorGoTo0”语句用于关闭错误处理。下例是使用控件向导添加的关闭窗体命令按钮的事件过程。PrivateSubCommand0_Click()OnErrorGoToErr_Command0_ClickDoCmd.CloseExit_Command0_Click:ExitSubErr_Command0_Click:Err_Command0_ClickMsgBoxErr.DescriptionResumeExit_Command0_ClickEndSub本节将对VBA中的常量、变量、标准函数及表达式、分支选择结构、循环结构、数组、子程序子函数和数组等内容加以介绍。在本节所引用的实例中,无法回避VBA的窗体环境,相关内容读者可以参阅第9章。由于本节的内容是VBA的编程基础,因此格外重要。可以说,没有Basic的语法规则,就没有VBA程序。8.3.1常量在程序运行过程中,其值不可以发生变化的量叫做常量。常量的作用在于以一些固定的、有意义的名字保存一些在程序中始终不会改变的值。1.常量的命名规则常量名必须以字母为首字符,从第二个字符开始可以是数字或字母以及下划线。但是要注意的是不能用VBA中的关键字作为常量名。如下面的命名就是错误的:4NAMERS.6Dif其中前两个错误很明显,第三个常量名if是关键字。同时,用户应当尽可能地使用有意义的单词或者拼音来对常量进行命名,尽管VBA中并未对此做出规定,但为了增强程序的可读性,这无疑是个好的习惯。通常很多人习惯用大写字母来命名常量。2.常量的类型VBA中常量的类型如表8.1所示。3.常量的声明和使用在初学VBA时,经常用到的常量一般都是符号常量。它的作用与变量有些类似,也是用于存放一些需要编程者自行设置的数据。符号常量的定义语句如下:Const符号常量名=常量值如:ConstA=56.5ConstB=90在此需要强调如下内容:在程序中符号常量不能进行二次赋值,这是它与变量不同的地方。如下面的程序是错误的。ConstA=56.5A=56.58.3.2变量在程序运行的过程中,其值可以发生变化的量叫做变量。变量用于暂时存储程序运行中所产生的一些中间值
本文标题:Access基础教程-Access2010第八章
链接地址:https://www.777doc.com/doc-3969712 .html