access数据库8



《access数据库8》由会员分享,可在线阅读,更多相关《access数据库8(57页珍藏版)》请在装配图网上搜索。
1、,,单击此处编辑母版标题样式,,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,,,*,第8章模块对象和VBA编程,,讲授4学时 上机2学时,,1,总体要求:,,理解模块的概念和分类,,熟悉VBA编程的界面,,熟悉VBA的基本概念和基本语法,,掌握模块的创建方法和使用,,程序控制语句,,VBA程序调试方法,,编写事件驱动程序,2,,学习重难点:,,VBA功能和基础知识,,创建模块,,创建过程,,创建VBA程序,,运行VBA程序,3,,主要内容:,,认识模块对象,,,模块的创建,,,VBA编程基础,4,,8.1 认识模块对象,,定义:模块对象是Access数据库管理系统
2、中的一个独立单元,它实际上是一个由若干个VBA代码组成的过程。可以把模块理解为是装着VBA程序代码的容器。,5,,分类:,,1.类模块,,类模块是可以定义新对象的模块。新建一个类模块,也就是创建了一个新对象。模块中定义的过程将变成该对象的属性或方法。类模块可以独立存在,也可以与窗体或报表同时出现。,,窗体和报表模块都是类模块,它们各自与某个窗体或报表相关联。,,2.标准模块,,标准模块包括通用过程和常用过程,它们不与任何对象相关联,并且可以在数据库中的任何位置运行。,6,,8.2 模块的创建,,【例8-1】创建一个能在屏幕上显示“大家好,欢迎走进Access”的提示框的模块,模块名称为“示例
3、模块”。,8.2.1 创建模块与过程,1.模块的创建,7,,操作要点,,( 1)打开数据库。,,(2)选择数据库窗口中的“模块”对象。,,(3)选择菜单栏上的“工具”→“宏”→“Visual Basic编辑器”命令,打开Visual Basic编辑器窗口。,,(4)选择菜单栏上的“插入”,→,“模块”命令,Access打开新的模块定义窗口。,,(5)在新的模块定义窗口中输入代码,然后保存。,8,,Visual Basic编辑器窗口和示例模块运行结果,,9,,2.过程的创建,,定义:过程是包含VBA代码的基本单位,是一段相对独立的代码,完成一个特定任务。一个较大的任务通常由多个过程组成。其语法
4、结构如下:,,Sub,过程名[(形参列表)],,,[,语句块,],,EndSub,10,,【例8-2】新建模块,实现输入两个整数,并按从小到大排序输出。,,11,,操作要点:,,(1)打开数据库。,,(2)选择数据库窗口中的“模块”对象。,,(3)单击数据库窗口工具栏上的“新建”按钮,弹出Visual Basic编辑器窗口。,,(4)选择菜单栏上的“插入”,→,“过程”命令,打开 “添加过程”对话框,并按照对话框输入相应信息。,,(5)单击工具栏上的“保存”按钮,保存模块。,12,,8.2.2 编写事件过程,,,【例8-3】在“密码输入”窗体中添加一个命令按钮,并为该按钮编写事件过程,检测输
5、入的密码是否正确,如不正确弹出输入密码错误消息框。,13,,操作要点:,,,(1)建立窗体,并命名为“密码输入”,如下图所示。,14,,操作要点:,,(2)单击“密码检测”按钮控件,弹出一个模块的快捷菜单,如右图所示。在菜单中选择“事件生成器”命令。,15,,操作要点:,,,(3)在弹出的“选择生成器”对话框中,选择“代码生成器”选项,然后单击“确定”按钮,如下图所示。,16,,操作要点:,,(4)屏幕由Access窗口切换到Visual Basic代码窗口,输入代码。下图所示窗体为模块代码窗口,17,,8.2.3 过程的调用,,过程调用的语句结构如下:,,,格式,1,:,Call,子过程名
6、,[,(形参列表),],,,格式,2,:子过程名,[,(形参列表),],18,,8.3 VBA编程基础,,8.3.1 VBA程序设计的基本概念,,VBA程序设计是一种面向对象的程序设计。,,面向对象程序设计是一种系统化的程序设计方法,它基于面向对象模型,采用面向对象的程序设计语言编程实现。,19,,同其他任何面向对象的编程语言一样,VBA里也有对象、属性、方法和事件。,,所谓对象,就是代码和数据的组合,可将它看作单元。例如,表、窗体或文本框等都是对象。每个对象由类来定义。,,所谓属性,是指定义的对象特征,如大小、颜色、对象状态等。,,所谓方法,是指对象能执行的动作,如刷新。,,所谓事件,就
7、是一个对象可以辨认的动作。如单击鼠标或者按下某个按键,并且可以编写一些代码针对这个动作来做出响应。,20,,8.3.2 VBA的数据类型,,Byte 字节,,Integer 整型,,Boolean 是/否,,Long& 长整型,,Single 单精度,,Double 双精度,,Currency 货币,,String 文本或备注,,Date
8、 日期/时间,,Variant 任何,21,,8.3.3 VBA常量、变量和表达式,1.常量,,常量是固定不变的,也不能赋予新值。Access支持3种类型的常量:符号常量、系统定义常量和固有常量。,,22,,,(1)符号常量需要声明的常量都是符号常量。声明常量的关键字为Const,其语法格式是:,,[public/private]Const,常量名,[As,类型,]=,表达式,,【例8-4】声明一个在所有模块中使用的常量PI。,,其语句格式为:,,Public const PI As Double=3.1415926,23,,(,2)系统定义常量:系统定义常量有三个
9、值,它们是True、False和Null。,,(3)固有常量:是Access或引用对象库的一部分,由Access自动定义,并且由程序列与控件提供。用户若需要使用该常量,可以使用“对象浏览器”来查看所有对象库中的固有常量列表。,24,,2.变量,,定义:在程序中可改变的量。,,分类:内存变量,,字段变量,,命名:其名称均可用字母、汉字、数字和下划线组成。变量名的第一个字符必须是英文字母,长度不得超过255个字符,并且变量名不能与命令和函数名相同。,,变量声明:,,其语法格式为:,,,[Dim/public/private],变量名,As,数据类型,25,,【例8-5】声明一个名为string1的
10、本地变量,并给该变量赋值,其值为一个字符串“你好!”。,,其语句格式为:,,Dim string1 As string //,声明一个名为,string1,的变量,,string1=",你好!," //,给变量赋值,26,,3.表达式,,定义:表达式是对数据加工的具体实现,它是由常量、变量、函数和运算符组成的一个有意义的最基本的运算式子,对数据进行加工常常可以用一些简单的符号来描述,这些符号称为运算符。,27,,常用运算符:,,运,,算,运,,算,,符,表达式示例,算术运算,乘方(^)、乘(*)、除(/)、取余(Mod)、加(+)、减(-),2^3+5,关系运算,小于()、等于(=)
11、、小于等于(=)、不等于(),X12 345,逻辑运算,非(NOT)、与(AND)、或(OR),Y>=0 AND Y<=100,字符串运算,字符串连接符(+)、(&),"ab"+"cd"或者"ab"&"cd",对象运算,引用用户自定义的内容(!)、引用Access定义的内容:.,Reports![登录].Visible,28,,8.3.4 VBA程序结构,,在VBA程序设计中,程序的流程一般分为3种:,,1. 顺序结构,,2.分支结构,,3.循环结构。,29,,(1)简单选择语句,,最简单的选择语句格式如下:,,If,条件,Then,语句,1 [Else,语句,2],分支语句:,【例8-6
12、】编写程序,用立即窗口来输出结果。如果x大于或等于y,则打印“x>=y”,否则打印“x 13、=20,,If x>=60 Then,,Debug.Print ",合格,",,Else,,Debug.Print ",不合格,",,End if,,由于x=20,所以执行Else后的语句,结果为:不合格。,32,,【,例8-8,】若,x,表示学生成绩,编程为该成绩划分等级。,90,分以上为优秀,,80,分以上为良好,,70,分以上为中等,,60,分以上为及格,,60,分以下为不及格。,,Dim x As Integer,,x=95,,If x>=90 Then,,Debug.Print ",优秀,",,,Else If x>=80 Then,,Debug.Print ",良好,",,,Els 14、e If x>=70 Then,,Debug.Print ",中等,",,,Else If x>=60 Then,,Debug.Print ",合格,",,,Else,,Debug.Print ",不合格,",,,End if,,End if,,End if,,End if,,由于x=95,将在立即窗口显示结果:优秀。,选择语句的嵌套形式,,33,,(3)多分支选择语句,语句结构如下:,,Select Case,测试条件,,,Case,条件,1,,,语句,1,,,Case,条件,2,,,语句,2,,,…,,,Case,条件,n,,,语句,,n,,[Case Else,,,语句,n+1],,En 15、d Case,34,,【,Dim x As Integer,,x=95,,Select Case x,,Case 90 To 99,,MsgBox ",优秀,",,Case 80 To 89,,,MsgBox ",良好,",,Case 70 To 79,,MsgBox ",中等,",,Case 60 To 69,,MsgBox ",合格,",,Case Else,,MsgBox ",不合格,",,End Select,,例,8-9,】用,Select Case,语句编程,完成例,8-8,的要求。,35,,,Case,表达式可以有以下多种形式:,,l,,单个值或一列值,相邻两值之间用逗 16、号隔开;例如,Case 1,2,3。,,l,,用关键字To指定值的范围,其中第一个值不应大于第二个值,对字符串将比较它的第一个字符的ASCII码大小。,,l,,使用关键字Is指定条件。Is后紧接关系运算符(如、=、=和)和一个变量或值,例如,Case Is>=90。,说明:,,36,,举例:,,,Dim x As Integer,,x=95,,Select Case x,,Case Is>=90,,MsgBox ",优秀,",,Case Is>=80,,,MsgBox ",良好,",,Case Is>=70,,MsgBox ",中等,",,Case Is>=60,,MsgBox ",合 17、格,",,Case Else,,MsgBox ",不合格,",,End Select,,37,,循环结构,,(,1,),While…Wend,循环语句,,,While…Wend,循环语句是当条件成立时执行循环体称为当型循环,其语句结构如下:,,While,条件,,,循环体,,Wend,38,,Dim s As Integer, i As Integer,,s=0,,i=0,,While i<10,,i=i+1,,s=s+i,,Wend,,Debug.Print "1+2+3+,…,+10=";s,【,例,8-10,】编写程序,计算,1+2+3+,…,+10,的和。,39,,Do While… 18、Loop,循环与,While,循环都是当型循环,先判断条件,当条件成立时执行循环体。其语句结构如下:,,Do While,条件,,,循环体,,Loop,(,2,),Do While…Loop,语句,40,,Dim s As Integer, i As Integer,,s=0,,i=0,,Do While i<10,,i=i+1,,s=s+i,,Loop,,Debug.Print "1+2+3+…+10=";s,,【,例,8-11,】用,Do While…Loop,循环语句改写例,8-10,。,41,,For…Next,循环语句常用于循环次数已知的程序中。其语句结构如下:,,For,循环控制变 19、量,=,初值,To,终值,[Step,步长,],,,循环体,,Next,(,3,),For…Next,循环语句,42,,①,,将初值赋给循环控制变量。,,②,,判断循环控制变量是否在初值与终值之间。,,③,,如果循环控制变量超出范围,则跳出循环,否则继续执行循环体。,,④,,在执行完循环体后,将执行,Next,语句,该语句将循环控制变量加上步长后再赋给循环控制变量,其含义用语句表示:,,循环控制变量,=,循环控制变量,+,步长,,⑤,,在循环控制变量加上步长后再返回第,2,步继续执行。,,For,循环的循环次数可以使用如下公式计算:,,循环次数,=(,终值,-,初值,)/,步长,+1,For, 20、循环执行步骤如下:,43,,Dim s As Integer,i As Integer,,s=0,,For i=1 To 10,,s=s+i,,Next,,Debug.Print "1+2+3+,…,+10=";s,,注意,:,改变循环的条件已交给,Next,语句。,,【,例,8-12,】用,For…Next,循环语句改写例,8-10,。,44,,For Each…Next,语句用于对一个集合中的每个元素执行一次循环,直到集合中无更多元素时。其语句结构如下:,,For Each,集合中的元素,,in,集合,,,循环体,,Next,(,4,),For Each…Next,语句,45,,For E 21、ach b in a(),,If b Mod 2=0 Then,,Debug.Print b,,End If,,Next,,【,例,8-13,】编写程序,将数组,A,中的偶数元素输出。,46,,1,.进入程序编辑器,VBE,8.3.5 VBA,编程环境,,方法一:,,操作步骤如下:,,(,1,)打开“学籍管理”数据库。,,(,2,)在,Access,中,选择菜单栏上的“工具”,→,“宏”,→,“,Visual Basic,编辑器”命令。,,方法二:,,(,1,)打开“学籍管理”数据库。,,(,2,)在“学籍管理”数据库窗口中,选择“模块”为操作对象,单击工具栏的“新建”按钮。,,打开Visu 22、al Basic,编辑器,,并创建了一个空白模块。,,47,,VBA,操作界面,,菜单栏,标准工具栏,工程资源管理器窗口,模块代码窗口,模块属性窗口,立即窗口,本地窗口,监视窗口,标题栏,48,,8.3.6 VBA,程序的调试,在,VBA,环境中除了可以编写代码外,还可以对已编写的代码边运行边调试,以便及时发现错误和改正错误。调试程序的方法有逐句调试法,可以利用立即窗口逐句进行调试。,,49,,1,.,Debug.Print,语句,,语句格式:,,Debug.Print,变量,【,例,】,,Debug.Print x,,则在程序调试过程中,,x,的当前值就可以显示在立即窗口中。,,50,,2 23、,.设置断点,,,实现在程序中设置断点的操作步骤如下:,,(,1,)把光标定位在需要停止运行的程序行。,,(,2,)在某一代码行旁边单击,会出现一个圆点,表示该行设置为断点行,或选择菜单栏上的“调试”,→,“切换断点”命令,还可以按【,F9,】键设置断点。,,(,3,)当程序运行到断点时自动停下,在本地窗口中就会显示当前变量的值。,51,,VBA,调试,窗口,52,,3,.,VBA,帮助系统,,53,,本章小结,本章主要介绍了VBA编程的基础,包括一些语法知识和一些程序结构语句的使用,以及VBA的编程环境和一些程序调式工具,同时还介绍了模块的概念、定义、分类和创建。,54,,习题思考,,面向对象程序设计相对于面向过程程序设计有哪些特点?,,什么是变量作用域?什么是变量的生命周期?,,VBA,中有几种模块?,55,,实验12 VBA编程及创建模块,实验目的,,(1)掌握创建模块的过程。,,(2)熟悉在窗体上调用VBA代码的方法。,,(3)理解各种变量类型,掌握其变量定义方法。,,(4)初步具备调试程序的能力。,,实验内容,,设计一个窗体,用于录入学生的期末考试成绩,要求每输入一门成绩都要计算总分。,56,,谢谢!,57,,
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。