《Access基础教程(第三版)》-于繁华-电子教案第10章 VBA应用实例

上传人:w****i 文档编号:94553966 上传时间:2019-08-08 格式:PPT 页数:30 大小:123.50KB
返回 下载 相关 举报
《Access基础教程(第三版)》-于繁华-电子教案第10章 VBA应用实例_第1页
第1页 / 共30页
《Access基础教程(第三版)》-于繁华-电子教案第10章 VBA应用实例_第2页
第2页 / 共30页
《Access基础教程(第三版)》-于繁华-电子教案第10章 VBA应用实例_第3页
第3页 / 共30页
《Access基础教程(第三版)》-于繁华-电子教案第10章 VBA应用实例_第4页
第4页 / 共30页
《Access基础教程(第三版)》-于繁华-电子教案第10章 VBA应用实例_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《《Access基础教程(第三版)》-于繁华-电子教案第10章 VBA应用实例》由会员分享,可在线阅读,更多相关《《Access基础教程(第三版)》-于繁华-电子教案第10章 VBA应用实例(30页珍藏版)》请在金锄头文库上搜索。

1、Access 基础教程(第三版),第10章 VBA应用实例,第10章 VBA应用实例,10.1 程序流程控制 10.2 文件 10.3 过程调用 10.4 计时器Timer 10.5 ADO数据库编程实例,10.1 程序流程控制,10.1.1 选择结构 例1:窗体中有一名为Command1的命令按钮,其单击事件过程如下所示,试分析单击该命令按钮后消息框中的显示内容。 实例:10_1 Private Sub Command1_Click() a=75 If a60 Then k=1 ElseIf a70 Then k=2 ElseIf a80 Then k=3 ElseIf a90 Then k

2、=4 End If MsgBox k End Sub,本例是块If语句的应用,执行的过程是:按条件出现的顺序依次判断每一个条件,发现第一个成立的条件后,则立即执行与该条件相对应的语句组,然后跳出该条件语句,去执行End If后的第一条语句。因为a=75,满足a60的条件,所以k=1,End If后的第一条语句为MsgBox k,所以消息框中显示的结果为1。,10.1 程序流程控制,例2:窗体中有一名为Command1的命令按钮,其单击事件过程如下所示,试分析单击该命令按钮后消息框中的显示内容。 实例:10_2 Private Sub Command1_Click() A=75 If A60 T

3、hen I=1 If A70 Then I=2 If A80 Then I=3 If A90 Then I=4 MsgBox I End Sub,本例是四个行If语句的顺序结构。与标准的IfThenEnd If结构相比较,缺少了End If,但这在VBA中是允许的,所以判断的过程也应该是顺序的,执行过程应该是A=75,A大于60所以I=1;A大于70所以I=2;A不大于80,所以I值不发生变化;A值不大于90,所以I值不发生变化;最终消息框中显示的结果应为I的最后值2。,10.1 程序流程控制,例3:分析如下窗体单击事件过程的显示结果。 实例:10_3 Private Sub Form_Cli

4、ck() a=1 For i=3 To 1 Step -1 Select Case i Case 1,3 a=a+1 Case 2,4 a=a+2 End Select Next i MsgBox a End Sub,本例是Select Case选择结构和For循环结构的应用集合,分析的重点在于Select Case的选择分支,分支一Case 1,3,也就是说当i值为1或3时执行的操作为a=a+1;分支二Case 2,4,也就是说当i值为2或4时执行的操作为a=a+2。a的初值为1,循环变量i的变化过程是由3到1,那么在整个循环过程中,要执行两次a=a+1的操作和一次a=a+2的操作,所以最终

5、消息框显示的结果为5。,10.1 程序流程控制,例4:试用IfThenEnd If选择结构实现三个数由大到小的顺序排列。要求在如图10.1所示的“排序”窗体中名为“text1”、“text2”和“text3”的三个文本框中输入三个数,单击“排序”(名为Command1)按钮后,三个数按由大到小的顺序排列;单击“重新输入”(Command2)按钮后,清空文本框,以便于重新输入。结果如图10.2所示。 图10.1-10.2 实例:10_4 解题思路:要想将三个数进行排序,首先要将这三个数中任意两个数进行比较,如果比较过程中较大数在较小数之前,则不需要改变它们的顺序,否则需要将两个数的位置进行交换。

6、对于三个数排序要进行(32)/(21)次比较。 本例中使用了去掉前导空格函数LTrim()、类型转换函数Val()和Str()及对象获得焦点的方法SetFocus;同时在做较大数和较小数的置换过程使用了中间变量t,这是本例中需要注意的。三个IfThenEnd If之间是顺序结构,实现了三次比较的过程。,10.1 程序流程控制,例5:试用Select Case选择结构实现一个收取货物运费的程序。要求:在固定两地之间,收取货物运费的原则是:10吨以内(不含10吨)的货物,每吨收取运费100元;10吨至50吨(不含50吨)的货物,每吨收取运费70元;50吨以上的货物,每吨收取运费50元。在如图10.

7、3所示的“计算运输费用”窗体中“Weight”文本框(关联标签为“货物重量”)内输入货物重量后,单击Command1(标题为“计算”)按钮,在“Cost”文本框(关联标签为“运输费用”)中显示出运输费用;单击Command2(标题为“清除”)按钮,清空两个文本框。结果如图10.4所示。 图10.3-10.4 实例:10_5 解题思路:这是一个最为简单的多路分支选择结构实例,只需要根据货物重量的不同,选择不同运费计算公式即可。 本例中使用了去掉前导空格函数LTrim()、类型转换函数Val()和Str()及对象获得焦点的方法SetFocus;同时在显示计算结果的过程中使用了连接运算符“+”(实现

8、字符串的连接),这是本例中需要注意的。Select Case选择结构的执行过程是在找到满足条件的第一分支并执行其后的语句组,然后End Select。,10.1 程序流程控制,10.1.2 循环结构 例6:窗体中有一名为Command1的命令按钮,其单击事件过程如下所示,试分析单击该命令按钮后sum的值。 实例:10_6 Private Sub Command1_Click() Dim sum As Double,j As Double sum=0 n=0 For i=1 To 5 j=n/i n=n+1 sum=sum+j Next i End Sub 为显示结果,实例中稍有变化。,本例是F

9、or循环语句的应用,循环变量i的取值为1到5。当i值为1时,x的值为0,n值1,sum值为0(注意赋值语句的顺序结构);当i值为2时,x值为1/2,n值为2,sum值为1/2;当i值为3时,x值为2/3,n值为3,sum值为1/2+2/3;以此类推,当循环结束之后sum的值为1/2+2/3+3/4+4/5。,10.1 程序流程控制,例7:窗体中有一名为Command1的命令按钮,其单击事件过程如下所示,试分析单击该命令按钮后消息框中的显示内容。 实例:10_7 Private Sub Command1_Cllick() Dim M(10) As Integer For k=1 to 10 M(

10、k)=12-k Next k x=6 MsgBox M(2+M(x) End Sub,本例是For循环语句和数组的集合应用,一维数组M的下限为0、上限为10,循环变量k的取值为1到10。For循环的作用在本例中是为数据M中的元素赋值,下标为k的元素其值为12-k,如:M(1)值为11,M(10)值为2。消息框中显示的消息为M(2+M(x),首先要计算出M(x)的值,x=6,所以M(x)=6;因此M(2+M(x)实际上是M(8),所以最终消息框的显示结果为4。,10.1 程序流程控制,例8:试分析如下程序运行结束之后变量J的值。 实例:10_8 Private Sub Fun() Dim J A

11、s Integer J=10 Do J=J+3 Loop While J19 End Sub 为显示结果,实例中稍有变化。,本例是DoLoop While循环结构的应用,分析的重点在于条件式J19和其位置。当J19时执行循环体中的语句;另外需要注意的是条件式在Loop后,循环体至少要执行一次,它决定了是否回到循环体起始处。循环体中的语句为J=J+3,也就是说每执行一次循环J的值要加3。当执行两次循环体操作后J=16,仍然满足J19的条件,所以还要执行第三次循环;而当第三次循环结束后J=19,已经不满足J19的条件,所以循环终止。最终J的值为19。,10.1 程序流程控制,例9:试分析内层n循环

12、的执行次数。 实例:10_9 For m=0 To 7 Step 3 For n=m-2 To m+2 Next n Next m 为显示结果,实例中稍有变化。,本例是For循环的嵌套,分析的重点在于内层循环变量n的初始值和终止值。无论m的值为多少,内层循环变量n的值都只有五个m-2、m-1、m、m+1和m+2,也就是说每执行一次m循环就要执行五次n循环。而m=0 To 7 Step 3,外层m循环要执行3次,所以内层n循环的次数为15。,10.1 程序流程控制,例10:试分析如下程序运行结束之后变量K的值。 实例:10_10 K=0 For I=1 To 3 For J=1 To I K=K

13、+J Next J Next I 为显示结果,实例中稍有变化。,本例是For循环的嵌套,分析的重点在于内层J循环的终止值为I,由于外层循环变量I值的变化,使得内层J循环的次数是不固定。当I=1时,J=1 To 1,K=K+1=1;当I=2时,J=1 To 2,K=K+1+2=4;当I=3时,J=1 To 3,K=K+1+2+3=10。所以当程序运行结束之后K的值为10。(注意K值的累加过程),10.1 程序流程控制,例11:试分析如下程序运行结束之后变量x的值。 实例:10_11 x=1 y=1 z=1 For j=1 To 3 If j=1 Then x=x+y+z Else If j=2

14、Then x=2*x+2*y+2*z Else x=3*x+3*y+3*z End If Next j 书稿有误,请参照更正。 为显示结果,实例中稍有变化。,本例是For循环结构和块If语句的应用集合,分析的重点在于块If的选择分支,分支一为当j=1时,x=x+y+z;分支二为当j=2时,x=2*x+2*y+2*z;分支三为当j=3时,x=3*x+3*y+3*z。与选择结构的例3相比较,本例中赋值语句右端的变化是在变量参与运算后才进行赋值的。 循环共执行3次,当j=1时,x=1+1+1=3;当j=2时,x=2*3+2*1+2*1=10;当j=3时,x=3*10+3*1+3*1=36。所以当程序

15、运行结束之后x的值为36。,10.1 程序流程控制,例12:窗体中有一名为Command1的命令按钮,其单击事件过程如下所示,试分析单击该命令按钮后消息框中的显示内容。 实例:10_12 Private sub Command1_Click() For i=1 To 4 x=3 For j=1 To 3 x=4 For k=1 To 2 x=x+5 Next k Next j Next i MsgBox x End Sub,本例是For循环的嵌套,分析的重点在于i循环中的赋值语句x=3和j循环中的赋值语句x=4。它们的位置决定了,只要进入i循环,那么x的值就为3;而进入j循环后,x又被重新赋值

16、为4。所以最终的结果由以下语句决定: x=4 For k=1 To 2 x=x+5 Next k 当程序运行结束之后,x的值为14。,10.1 程序流程控制,例13:试分析如下程序运行结束之后变量k的值。 实例:10_13 Dim i,j,k As Integer i=1 Do For j=1 To i Step 2 k=k+j Next j i=i+2 Loop Until i8 为显示结果,实例中稍有变化。,本例是DoLoop Until循环结构和For循环的嵌套,分析的重点在于变量i值的变化过程,它即是For循环的终止值,又控制了DoLoop Until循环的条件。i值的变化在DoLoop Until循环中由i=i+2赋值语句来进行,当i8时程序运行结束,所以i可能的值为1、3、5、7。For循环中步长为2,当i=1时,k=k+1=1;当i=3时,k=k+1+3=5;当i=5时,k=k+1+3+5=14;当i=7时,k=k+1+3+5+7=30。当循环结束之后k的值为30。,10.1 程序流程控制,例14:试分析如下程序运行结束之后消息框中显示的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号