第5章 模块对象和VBA程序设计.ppt_第1页
第5章 模块对象和VBA程序设计.ppt_第2页
第5章 模块对象和VBA程序设计.ppt_第3页
第5章 模块对象和VBA程序设计.ppt_第4页
第5章 模块对象和VBA程序设计.ppt_第5页
已阅读5页,还剩111页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,1,第5章模块对象和VBA程序设计,2,本章内容,5.1模块对象概述5.2 VBA程序基础5.3选择语句5.4循环语句5.5数组5.6过程,3,5.1模块对象概述,模块(标准模块)是Access数据库中七个对象之一,其实质是没有接口的VBA程序。该模块包含几个由VBA代码组成的程序。每个过程完成一个相对独立的操作,不涉及接口,是一个“纯”的程序段。该模块具有很强的通用性,窗体、报表等对象可以调用模块内部的过程。VBA是VB的一个子集。4,5.2 VBA计划基础,5.2.1模块和流程的创建,5.2.2数据类型、常数、变量和表达式,5 . 2 . 3 VBA的常见内部函数,5.2.4数据输入和

2、输出,5.5.2.1模块和流程的创建,1。新的模块由程序组成,这些程序是由编写程序的程序员形成的。示例5-1:创建一个名为“模块简介”的新模块,将其保存为“模块简介”,创建一个新模块,6.5.2.1创建一个模块和一个流程,2。该过程由VBA语句组成,这是一个相对独立的代码。进程是相互隔离的,系统不会自动从一个进程执行到另一个进程,但是一个进程可以通过调用来执行另一个进程。该过程不是Access的独立对象,因此不能单独保存,只能存在于模块中。过程以Sub()开始(调用过程时要接受的参数放在括号中),以End Sub结束。7.5.2.1创建一个模块和程序。3.创建一个新的过程示例5-2在模块入门中

3、创建一个Hello过程。用户输入,执行过程,双击,子你好(MsgBox)大家好!结束部分,8,5.2.1模块和流程的创建,4。模块的组成在一般声明部分定义的变量被称为模块级变量,它可以在这个模块的不同过程中使用。过程中定义的变量称为过程级变量,它们的使用范围仅限于这个过程。9,5.2.2数据类型、常数、变量和表达式,1。VBA数据类型,10,5.2.2数据类型,常量,变量和表达式,2 .标识符:程序中常量,变量,过程和其他对象的名称。VBA标识符规定第一个字符必须是不超过255个字符的字母,并且不能与VBA关键字、11、5.2.2数据类型、常量、变量和表达式、2具有相同的名称。标识符VBA标识

4、符规定不能使用下列字符:y。=;X Y End Sub,运行4次,设置随机数种子使生成的随机数尽可能不一致,输入输出36,5.2.4数据,输出1,3,5及其对应的例5-8中的平方根,保留3位小数。子Sqr _ Root()调试。打印标签(5);1 .选项卡(12);3 .选项卡(19);5调试。打印标签(5);圆形(Skr(1),3);选项卡(12);圆形(Skr(3),3);调试。打印标签(19);舍入(Skr(5),3)结束子,运行结果,制表符(n)功能:控制输出项的列位置,37,实验问题,整数-32,768到32,767长-2,147,483,648到2,147,483,647单个4字节

5、浮点数双8字节浮点数,子演示()I Dim As Integer I=inputBox(请分别输入:) MsgBox i结束子39,5.3选择语句,5.3.1 IfThen语句5.3.2 IfThenElse语句5.3.3块选择语句5.3.4与5.3.5 Select Case语句和40,5.3.1 IfThen语句嵌套的选择语句,格式:如果Then关系表达式或逻辑表达式成立,则将执行Then语句,否则将直接执行下一条If语句。 它可以是一个语句或几个用冒号“:”分隔的VBA语句组。,41,5.3.1如果该语句,示例5-9随机给出一个两位数的加法问题供学生回答,42,5.3.1如果该语句,示例

6、5-9随机给出一个两位数的加法问题供学生回答,子测试()a为整数,b为整数,和为整数随机定时器a=10 rnd * 893360 b=10 rnd * 89 sum=输入框(下一个调试)。打印换行调试。打印平均入学分数=;Sum/10 End Sub,示例5-14用随机数模拟10名研究生的入学分数,分数是300到399之间的整数。要求在即时窗口中输出他们的分数和平均分数。思考:你能把循环修改为:对于i=10比1的步骤1吗?69,69,5.4.1.下一个循环,示例5-15通过键盘输入一个自然数x,并判断它是否是一个质数:一个除了1,70,5.4.2以外只能被1整除的自然数.循环,边循环边做.循环

7、通常用于循环数未知的过程语法格式:do,而循环体循环体必须包含“破坏”循环条件的语句,以避免“无限循环”强制终止循环的语句为Exit Do,并在跳出循环后执行循环后的语句。71,执行流,条件表达式,循环体,循环体中应该有语句使条件表达式最终为假或通过Exit Do强制退出,循环后的语句,72,5 . 4 . 2 Do Wheel.循环循环,示例3360计算s=1 2 100包含2(dim)s,I为整数I=1 do,而I=100 s=s I=I 1循环调试。打印1100总和为s=s 1=2,i=i*4=4 i加步长,步长为2,i=4 2=620退出循环,此时i=26S=3,查看.下一个循环,78

8、,78,2,程序的功能是计算100以内所有奇数的平方和,即填空完成程序。Subadd2 () I=1 s=0 do,而i100s=环路msgbox s end sub,s=s I2 I=I 2,查看do.环路环路,79,79,子带1(s)=1,I=1至100步1s=s * I下一个I msgbox()。循环时使用for和Do。sub add 2 () n=1 k=1 do,而n=100k=n * k n=n 1 loop msgbox(k)end sub,80,5.4.3双循环和多循环,双循环:循环语句的循环体包含另一个循环。多重循环指的是三重循环或嵌套在更多级别上的循环,其中m次为外部循环,

9、n次为内部循环,81次为循环的执行时间,子循环(dim)I为整数,j为整数,I=1至3为j=1至4调试。印刷品一;J Next j Next i End Sub,82,示例1,在直接窗口中输出下图所示的图形,子星()dim I为整数,j为整数,I=1到5,j=1到5调试。打印*;下一个jdebug。打印下一个I end sub,I=1,I=5,j=1,j=5,83,5.4.3双循环和多循环,示例2在即时窗口中打印出下图。子星()调光I为整数,j为整数i=1至5j=1至I调试。打印*;下一个j调试。打印下一个I结束sub,84,84,p=1表示j=1到I p=p * j下一个j,s=0表示I=1

10、到25 s=s I下一个I,计算累计和和阶乘,补充示例3程序计算s=1!2!3!25!85,85,补充示例3:编程计算s=1!2!3!25!Subadd3 () dim I为整数,j为整数,s为整数s=0 I=1到25 p=1j=1到I p=p * j下一个j s=s p下一个I msgbox (s)结束sub,思考问题:编程计算s=1!3!5!25!86,5.5数组,5.5.1数组概念5.5.2一维数组5.5.3二维数组,87,5.5.1数组概念,数组是一种数据存储结构,它使用一个标识符来存储多个数据,并用不同的下标来区分它们。Array(0)=17Array(1)=19,数组中的每个数据称

11、为一个元素。每个元素都有相同的类型,并占用相同的存储空间。数组中的每个元素都可以通过下标来访问。数组分为一维数组、二维数组、多维数组和88,5.5.2一维数组。一维数组中的元素排列成直线,每个下标对应一个元素。使用前必须定义数组。语法格式为:作为数据类型的尺寸(上限)。如果省略下标的下限,数组的最小下标为0。例如,Dim A(10) As Double A数组有11个元素(下标的起始和结束范围是010),89,5.5.2一维数组,表示定义数组时,下标的下限和上限必须是。引用数组元素时,下标不得超过定义的下限和上限,否则程序的执行将被中断,系统将报告错误。当使用数组时,数组下标的上下界可以通过使

12、用LBound()和UBound()函数获得。实验(5)使用随机函数生成20个两位数,并在即时窗口中输出,找出其中的最小数,并指出是哪个数。分析:1 .通过循环得到20个数字,并将它们放在一个数组中。2.定义一个变量M(或使用下标为0的数组的第一个元素)来存储最小数,并定义另一个变量来存储最小数的位置。k 3将第一个数字赋给最小值m,并保存第一个数字的位置,k=1 4。使用循环将第2到第20个数字依次与最小值进行比较。一旦某个数字小于M,将其分配给M,并记录其位置,n=5。循环结束后,获取最小值及其位置。91,92,5.5.3。二维数组中的数据以平面形状排列,可以存储二维表格的信息。通过使用行

13、下标和列下标来定位数组元素,并将格式定义为:Dim(到上限,到上限)作为数据类型。如果省略下标的下限值,则下限值默认为0。例如,由Dim A(3,4)声明为整数的数组有45=20个元素。93,双循环和多循环数组的定义,数组元素,数组下标一维数组和二维数组的使用(定义,元素个数),复习:94,5.6过程,5.6.1子过程,5.6.2函数过程,5.6.3过程调用中的参数传递方法,95,5.6.1子过程,VBA区别在于前者没有返回值而后者有。1.Sub(参数表)语句End Sub的语法格式,当被另一个进程调用时,参数表用于接受需要的数据;如果不能传递任何参数,则被调用的过程是无参数过程。96,5.6

14、.1子流程,2。进程的调用进程可以在执行时调用另一个进程,并将参数传递过去;调用后,返回此进程并继续执行。程序的调用方法:调用(参数表)或参数表,97,5.6.1子程序,例5-24用数据加程序将四个数据输入一个矩形,分别计算它们的水平和垂直和总和。要求:在输出结果中有3条由15“-”组成的水平线,这些线是由过程线1生成的。98,5.6.1子流程,子行1()绘制一条由15“-”组成的水平线,I=1到15的整数表示调试。打印-;接下来我调试。打印取消最后一个“;”动作结束子进程,99,5.6.1子进程,子数据加()作为整数的dim a,作为整数的dim b作为整数的dim c,作为整数的a=2: b=12: c=313360 d=19四个原始数据调用Line1调用进程绘制第一条水平线调试。打印一份;选项卡(6);b .选项卡(12);调试。打印C;选项卡(6);d .选项卡(12);C D调用线1调用进程绘制第二条水平线调试。打印一份简历;选项卡(6);乙丁;选项卡(12);呼叫线路1调用流程绘制第三条水平线结束子线,即10

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论