《Access14程序数组、分支、循环.ppt》由会员分享,可在线阅读,更多相关《Access14程序数组、分支、循环.ppt(13页珍藏版)》请在三一办公上搜索。
1、2009年,1,第14讲 Access数据库的模块设计,VBA编程环境(进入VBE、VBE界面)VBA程序流程控制(顺序控制、选择控制、循环控制)创建VBA模块(在模块中加入过程、在模块中执行宏),调用和参数传递VBA程序的调试:设置断点,单步跟踪,设置监视点,2009年,2,第14讲 Access数据库的模块设计,结构化程序设计:,变量定义语句:Dim AS,赋值语句:set=调试(立即窗口)输出语句:Debug.Print,2009年,3,第14讲 Access数据库的模块设计,编辑过程与运行调试,VBE的工程资源管理器,模块代码窗,调试工具栏与本地窗口,2009年,4,第14讲 Acce
2、ss数据库的模块设计,结构化程序设计:,数组定义:Dim(,)as,说明:数组必须先定义,后使用;使用格式为:(),,通常情况,一个数组的所有下标元素为同一数据类型,可将数组类型定义为Variant,则数组的各个下标变量可以存放不同的数据类型。,例:定义一个整型数组xyz(3,4),则该数组有20个独立的下标变量;,2009年,5,第14讲 Access数据库的模块设计,结构化程序设计:_分支,单向选择:,格式1:If Then,格式2:If Then End If,2009年,6,第14讲 Access数据库的模块设计,结构化程序设计:_分支,双向选择:,格式3:If Then Else E
3、nd If,注:可以是VB的关系表达式,逻辑表达式或逻辑常量,VB的编译系统根据的计算结果(True 或 False)确定下一条语句的去向。,2009年,7,第14讲 Access数据库的模块设计,结构化程序设计:_多路分支,格式3:Select Case Case Case Case Case ElseEnd Select,功能:由的值首先和的值进行比较,其结果为True则执行其下的,再执行End Case之后的语句;如比较结果为False,则和下一个值比较,;如和所有的表达式比较都为False,则执行Case Else后的语句序列,如无Case Else字句,则不执行任何语句序列,而执行E
4、nd Select之后的语句。,2009年,8,第14讲 Access数据库的模块设计,结构化程序设计:_多路分支,说明:和Case 后的有三种比较方 式:Case 后有1到多个,表达式间用逗号分隔 值和其中一个相等,其结果为TrueIs 与进行关系比较TO 测试条件的值在下限和上限内比较结果为 True。,例:P252,2009年,9,第14讲 Access数据库的模块设计,结构化程序设计:_条件循环,格式1:Do While Exit Do.Loop,然后再判断条件是否成立。若条件为真,则再次进入循环体内执行,若条件为假,则结束循环,转到Loop 后面的语句继续执行。如果在循环体内有Exi
5、t Do语句,则当执行到该语句时就跳出当前循环,执行Loop之后的语句。如省略 While 则表示条件表达式为逻辑常量True,这种情况下,循环体内一定要有Exit do语句,否则就是一个死循环。,说明:Do While 循环当条件为真时执行循环体内的,当执行到Loop时返回到Do While,,2009年,10,第14讲 Access数据库的模块设计,结构化程序设计:_计数循环,格式2:For=to step Exit For.Next,注:Crtl+Break中断(死循环)程序运行!,终值才可能执行循环体;当步长为正数时,初值不大于终值才可能执行循环体。For循环执行步骤如下:将初值赋给循
6、环变量。判断循环变量是否在初值与终值之间。如果循环变量超出范围,则跳出循环,否则继续执行循环体。在执行完循环体后,遇到Next 语句时,将当前循环变量的值加上步长后再赋给循环变量,然后返回第2步继续执行。,说明:其中,当为1时,“Step”可以省略。循环变量的初值和终值的设置受步长的约束。当步长为负数时初值不小于,2009年,11,第14讲 Access数据库的模块设计,例:1.在立即窗口显示1100内的质数:2.在立即窗口用“*”号显示三角形和菱形;,2009年,12,Sub 质数1to100()在立即窗口显示1 到 100之间的质数 Dim i As Integer,j As Intege
7、r,k As Integer k=1 For i=1 To 100 For j=2 To i-1 If(i/j)=(i j)Then Exit For Next j If j=i Then Debug.Print i,k=k+1 End If If k=7 Then 显示7个质数后就换行再显示 k=1 Debug.Print End If Next iEnd Sub,2009年,13,Sub 三角形()Dim i As Integer,j As Integer Debug.Print For i=1 To 9 Debug.Print Space(15-i);For j=1 To i*2-1 Debug.Print*;Next j Debug.Print Next iEnd Sub,