


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第九章程序设计根底教学目标:理解什么是程序掌握程序设计的根本方法编写并调试简单的VBA应用程序编写简单的事件驱动程序会在VBA应用程序中访问数据库教学过程:一、程序设计概述做一件事,计算机可以把它分解为一系列的根本操作步骤,通过程序设计语言的根本语句来完成,这就是程序。程序设计方法主要有两种:面向过程的结构化程序设计方法和面向对象的程序设计方法。前面所学的窗体对象设计就是一种面向对象的设计方法。VisualBasicforApplication,简单VBA。首先看在Access中编写程序使用的语言是下VBA编写的几个简单程序。例9-1在窗体上放置一个命令按钮和一个文本框,单击命令按钮后在文本框
2、中显示"VBA程序设计"步骤如下:1、打开数据库,切换到“窗体"对象下,双击“在设计视图中创建窗体",2、添加文本框,在对应的属性窗口“全部"选项卡的第一行设置名称为“文本1",添加命令按钮,名称为"命令0”3、打开“按钮单击此按钮,输入程序。的属性窗口,在“事件"选项卡下的“单击"栏选“事件过程",单击后面的按钮,进入编辑窗口:4、在编辑窗口中输入如下程序:其实窗口中已有,所以我们只要在中间添加一句PrivateSub命令0_Click()文本1.Value="VBA程序设计&quo
3、t;EndSub说明:1、程序的开头"PrivateSub"和完毕"EndSub"是一个固定搭配,表示这是一个过程,程序中的“命令0_Click()"表示这个程序在“命令0"按钮被单击时执行。2、在编辑窗口已有程序的开头和结尾,所以我们只要输入中间的一句:文本1.value=“VBA程序设计"3、注意程序中引用的“命令0",“文本1"一定要和窗体中的按钮、文本框名称一致。5、关闭程序编辑窗口,切换到窗体视图,如此单击命令按钮后,“VBA程序设计"即显示在文本框中。思考在上面的窗体中再添加一个按钮
4、,单击如此去除文本框中显示的文本,应该怎样操作?例9-2在窗体中有一个命令按钮和两个文本框,用户在第一个文本框中输入一个正整数,当单击该按钮时计算出这个正整数的阶乘,并在第二个文本框中显示计算结果。步骤:1、新建一个窗体,拖入两个文本框和一个命令按钮,名称为文本1、文本2、命令0这三个控件名称后面程序中要引用,所以一定要命名!1I111I2I1S1I11I131I1I1i,I1SI91I11(2、选中按钮,打开其属性窗口,在“事件"选项下的“单击"一栏,选"事件过程",单击后面的按钮,输入如下程序:PrivateSub0_dickC)Diiti色AsIn
5、teger,bMInteger,cRsInteger"定曳整咒:葵以c=1'用来满+苴结果,这赣设个初蚓11a=文本IWelg'用来接收勰盘输凡刘文本1中的教Forb=1ToaC=c*bK«xtb文本2.Value=c|EndSub说明:1、程序中变量在使用前要先定义,这里计算阶乘,用到的只能是整数,所以定义a、b、c为整型变量。见中间程序局部的第一句:DimaAsInteger2、单引号后面的是程序的注释语句,只起说明的作用,程序并不执行它。不输入这些语句,程序照样正常运行。见绿色局部3、输入程序时可以用小写字母输入单词,但每一个关键词的第一个字母计算机会
6、自动变成大写。见程序中蓝色局部4、程序一般一句一行,也可多个句子写在一行,中间用冒号隔开;如果一句太长,需要分成多行,可在上一行的最后加下划线"",系统就会把上下两行连在一起做为一个语句。3、关闭程序编辑窗口,切换到窗体视图,我们输入5,单击“计算"按钮,如此会显示120,实际上,5!=1X2X3X4X5,计算结果是120二、程序的输入输入出语句1InputBox函数格式:InputBox字符串1,字符串2,字符串3功能:显示一个输入对话框,等待用户输入信息或按下按钮。在按钮事件发生后返回键盘输入到文本框中的内容,返回值的类型为文本类型,说明:对话框中的提示信息是
7、字符串1,对话框的标题栏是字符串2,字符串3是输入对话框中的默认值。后两个字符串是可选项,可不选。例9-3在窗体的命令按钮中分别参加以下代码,单击按钮后即可看出输入对话框的不同。PrivateSubmand0_Click()InputBox”请输入学号",”学号输入框","2009"EndSub改成下面程序后的输入对话框:PrivateSubmand0_Click()InputBox"请输入学号","学号输入框"EndSub改成下面程序后的输入对话框:PrivateSubmand0_Click()InputBox&
8、quot;请输入学号"End2MsgBox函数格式:MsgBox字符串1,按钮参数,字符串2功能:出现一个消息框,字符串1为消息框中的提示信息,按钮参数如此决定了消息框中按钮的类型见下面按钮参数表,字符串2为消息框的标题栏上信息。按钮参数表:常数值按钮类型vbOKOnly0只显示OK按钮vbOKCancel1显示OK与Cancel按钮vbYesNoCancel3显示Yes、No、Cancel按钮vbQuestion32显示WarningQuery图标vbExclamation48显示WaringMessage图标vbInformation64显示InformationMessage图
9、标vbDefaultButton10第一个按钮是缺省值vbDefaultButton2256第二个按钮是缺省值vbDefaultButton3512第三个按钮是缺省值例9-4在窗体上添加一个命令按钮,当单击该按钮后,显示一个对话框:1提示消息为“您确定要退出吗?"。2包含“确定"和“取消"两个命令按钮以与一个询问图标,默认选择“确定"按钮,3对话框的标题栏为“确认退出"分析:生成对话框需要用MsgBox函数,包含“确定"和“取消"按钮,对应参数为1见上表;包含一个询问图标,对应参数为32;默认选择是“确定"按钮这里
10、的第一个就是“确定"按钮,对应参数是0,根据题目要求对应的语句应为:MsgBox"您确定要退出吗?",1+32+0,“确认退出"步骤:1、新建一个窗体,添加一个命令按钮,2、在命令按钮的属性窗口中切换到“事件"选项下,在“单击"一栏中选"事件过程",单击这一栏后面的按钮,出现VBA编程窗口,3、MsgBox"您确定要退出吗?",1+32+0,“确认退出占十占m下动放夜起熊的入出襟善I寄标标标按废谜退泰矣单刘蛹昆鼠谜理在程序开头和结尾之间添加一句:见如M教课书数据表-窗体3(代码)CoilJOFr
11、ivat,eSubC&mmnd£)_Click(?MwgEoH“你确定要退出吗?=1+32+n"琬认退出EndSuE4、切换到窗体视图,单击命令按钮,弹出一个消息框,如图E.x记录回I叵来共有记录数:.i说明:1、使用参数进展组合时不能互相矛盾,例如不能同时显示“确定“取消两个按钮和“是“、“否“、“取消“三个按钮。2、上面的组合参数可以求和后表示,也可用按钮参数表中对应的常数表示,下面几种形式均可:MsgBox"您确定要退出吗?",1+32+0,“确认退出"MsgBox"您确定要退出吗?",33,“确认退出&quo
12、t;MsgBox"您确定要退出吗?"vbOKCancel+vbQuestion+vbDefaultButtonl,"确认退出3、当用户点击了不同的按钮,我们可以根据按钮的返回值来判定用户选择了哪个按钮,按钮返回值如下表:MsgBox返回值常数值选择按钮vbOK1选择了OKvbCancel2选择了CancelvbYes6选择了YesvbNo7选择了NO例9-5在窗体上添加一个命令按钮,当单击该按钮后承受用户输入的三角形三边长,并求出周长后输出步骤:1、新建一个窗体,添加一个命令按钮mand02、在命令按钮的属性窗口中为其添加代码:如图如此弹出一个消息框,显示三边长的
13、结果:PrivateSubmand0_Click()'定义a,b,c,s为单精度变量,a,b,c为一边长,s为周长DimaAsSingle,bAsSingle,cAsSingle,sAsSingle'利用输入对话框承受键盘输入的值,并用Val()函数转把字符串转换成数值a-Val(InputBox("请输入三角形的第一个边长:")b-Val(InputBox("请输入三角形的第二个边长:")c-Val(InputBox("请输入三角形的第三个边长:")s-a+b+cMsgBox"三角形的周长是:"&
14、amp;sEndSub3、切换到窗体视图,单击命令按钮,在弹出的对话框中依次输入三个值,例如3、4、5三、赋值语句格式:变量名=表达式功能:把右边表达式的值给左边的变量。例如x=2+1,x=x+1说明:1、变量要先定义才能使用2、赋值号两边的数值必须兼容,即数据类型尽量一致。否如此容易出错例如:DimxasInteger,yasSingle,zasString'定义x为整数,y为单精度数,z为文本字符XY=4Z="ACCESS”第二句x定义为整数,却给了个小数3.5,此时x会取4,第三句y是单精度数,给了整数4,但系统可以转换成4.000再给变量y,所以是合法的。第四句z是字
15、符变量,所以等式右边只能赋值一个字符串。3、等号左边只能有一个变量,右边可以是含这个变量的表达式,例如x=x+1正确,但x+1=x就不正确了。4、赋值号右边的计算结果必须在左边变量的表示X围之内,否如此系统会提示出错,例如:DimxasInteger定义x为整型变量x=40000整型变量x最大只能取值32767,所以40000就超出了整型数据表示的最大值,程序运行到这一句时,系统会提示出错。5、变量被两次赋值,如此新值冲掉旧值,例如x=2x=3x=x+2x=?例9-6在窗体上添加一个命令按钮,当单击该按钮后承受用户输入的长方形的长和宽,计算其面积并输出计算结果。步骤:1、新建窗体,并在上面添加
16、一个命令按钮,按钮名称为“命令0",在按钮上添加代码如下:PrivateSub命令0_Click()'定义变量a,b,s为单精度变量,a,b表示长方形的长和宽,S表示面积DimaAsSingle,bAsSingle,sAsSingle'通过InputBox函数输入边长,同时将文本型数据转换成数值型a=Val(InputBox("请输入长方形的第一个边长:")b=Val(InputBox("请输入长方形的第二个边长:")s=a*bMsgBox"长方形面积为:"&sEndSub2、切换到窗体视图,单击命令
17、按钮,会出现一个输入框,要求你输入长方形的两个边长,输入边长后,单击“确定"按钮,即弹出一个消息框,显示长方形的面积。注意:输入程序代码时,要在英文半角下输入,各关键词之间要有空格“英文半角'输入状态下的空格!四、顺序结构在高级程序设计语言中,其语句执行都有一定的先后顺序,总体可以分为顺序结构语句按语句的先后顺序执行、条件分支语句根据条件的成立来确定执行哪一个分支、循环语句某个条件成立时反复执行某一段程序。顺序结构是最简单的一种结构,这种结构让语句按先后顺序执行,以完成简单的功能。A=2B=3T=A'把A的值放到T中,如此T=2A=B'把B的值放到A中,如此A
18、=3B=T'把T的值给B,如此B=2例9-7在窗体上放一个命令按钮和两个文本框,在两个文本框中分别输入两个不同的值,单击命令按钮后交换这两个文本框中的数据。分析:假设a=2,b=3,利用赋值语句总是把等号右边值给左边的特性,借助中间变量,可以让a,b的值互换。步骤:1、新建一个窗体,窗体中放两个文本框和一个命令按钮,名称分别是“文本1"、“文本2“命令0",在属性窗体设置这些控件的名称,在代码程序中引用2、选中命令按钮,在属性窗口中添加这个按钮的代码如下PrivateSub命令0_Click()DimaAsString,bAsString,tAsString'
19、;定义a,b,t为文本变量t=aa=bb=t文本I.Value=a文本2.Value=bEndSub3、切换到窗体视图,在文本框中输入两个值,例如2、3,单击命令按钮,可看到文本框中两个数实现了交换例9-8在窗体上放一个命令按钮和两个文本框,第一个文本框中输入用分钟表示的时间,单击命令按钮如此把这个时间转换成以小时和分钟表示的时间。步骤:1、新建一个窗体,放一个命令按钮和两个文本框,定义按钮和文本框的名称为命令0、文本1、文本22、选中命令按钮,在属性窗口中切换到“事件"选项下,在“单击"栏选“事件过程",单击这一栏后面的按钮,输入以下代码:PrivateSub命
20、令0_Click()3、切换到窗体视图下,输入一个分钟数例如:100,单击命令按钮就可转换成1小时40ConstaAsInteger=60'声明a为常量60DimxAsInteger,yAsInteger,zAsInteger'定义x,y,z为整型变量x=文本1.Value'输入的分钟数y=xa'xa表示"x整除a"的运算,和x/a不同。z=xModa'xmoda表示求"x除a的余数"/19文本2.Value=y&"小时"&z&"分钟”'注意等式右边用用
21、空格分开各个量。EndSub钟。说明:1、常量的声明:常量是一种特殊的量,它的值设置后就不能更改或赋于新值,可以在代码中的任何地方使用常量代替实际的值,对于程序中经常出现的常数值且难以记忆无明确意义的数值,使用常量声明可增加代码的可读性和可维护性。格式:Const常量名as类型名=表达式2、本程序中用到几种运算,常见的运算见下表:符号描述示例+加一减大乘4*3=12/除整除72=3(只取商的整数局部)Mod求余9Mod6=3A求藉10A3=1000五、分支结构分支结构语句有两种:if语句和SelectCase语句(1)if语句单分支:格式:if条件表达式then执行语句1Else执行语句2En
22、dif功能:条件表达式成立就执行语句1,不成立就执行语句2说明:条件语句以if开头,以Endif完毕,if和Endif要成对出现。例9-9在窗体上放一个命令按钮和3个文本框,在前两个文本框中输入两个整数,单击命令按钮比拟这两个文本框中输入的整数的大小,并将较大的数放到第三个文本框。分析:输入的两个数存放到x,y中,用z存放较大的数:如果x>y,如此z=x,否如此就让z=y步骤:1、新建窗体,放置三个文本框,与一个命令按钮,分别选中这些控件,在属性窗口中设置文本框与按钮名称为文本1、文本2、文本3、命令2、选中按钮,在其属性窗口的中切换到“事件"选项,再在“单击"一栏中
23、选"事件过程单击这一栏后面的按钮,输入以下代码:PrivateSub命令0_Click()DimxAsInteger,yAsInteger,zAsIntegerIfx>yThenz=xElse3、伽=到窗体视图,在文本框伐ndIf文本框文本3.Value=zEndSub1、2中输入两个数例如2,6中显示较,单击“确定大的如此在第三如果从有三种或三种以上的条件选择1种,如此要用下面的条件语句:格式:If条件表达式1then执行语句1Elseif条件表达式2then执行语句2Else执行语句nEndif注意书上错误,此处的Elseif没有空格在Else和if之间例9-10在窗体上放
24、一个命令按钮和两个文本框,单击命令按钮根据窗体中“成绩"文本框输入的成绩,判断成绩等级,并显示在窗体的“等级"文本框中。判定方法:85分以上优秀,75分至85分良好,60至75分与格,60分以下不与格。分析:由于一个成绩有四个等级选择,所以要用到多种条件选择语句步骤:1、新建一个窗体,放一个命令按钮与两个文本框,在相应的属性窗口设置它们的名称分别是“命令0"、“成绩"、"等级"2、在按钮0上添加程序代码如下:PrivateSub命_$_0_Click(3DimeKwInteger'整型变量与用来接收立本框中输入的成蜷Dimde
25、njiAsString,定义,买由1为手符变皇,甬莱存成成爸的等s二成畿VtlutIfS>=35Thenienji=席优秀抨Elself>=75Thendenji='良好'ELzIfs)=60Th皂ndenji=席及格”Elseienji二"不及格”EndIf等SS.Vallie-denjiEndSub3、关闭程序窗口,切换到窗体视图下,输入不同的分数,单击“确定"按钮后可显示不同多种条件选择语句除了用以上的语句格式外,还有一种更加简洁的分支语句结构SelectCase语句(2)SelectCase语句格式:SelectCase变量表达式Case
26、表达式列表1执行语句1Case表达式列表2执行语句2CaseElse执行语句nEndSelect功能:第一句中变量表达式中的值满足哪个表达式列表,就执行哪个语句。例9-11将例9-10中的if语句改成SelectCase表示。步骤:1、修改命令按钮上程序代码如下:PrivateSub命,令。DimzasI直槌g整型变量,用来接收文本框中输入的成氮HimdeijiAsString'定臬d函i为字将变皇用柔存敌成螭的等缀s二成绩.V心皿of5B8?CD#T帝U忻口良功>押TbTrrCiSElsed&iiji二村不及格*EndSalect等S?.ViLue-d«nji
27、EndEut四、关闭程序窗口,切换到窗体视图下输入不同的成绩值进展调试。六、循环结构如果在程序中需要重复执行某段代码,可用循环结构VBA中提供了三种循环结构(一)Do-Loop循环格式:DoWhile/Until条件表达式1.中间需要反复执行的语句.称为循环语句体Loop功能:根据DoWhile后面的条件表达式来重复执行循环语句体假设干次,直到表达式的值不再成立时,执行Loop后面的语句。例9-12在窗体上放一个命令按钮,当单击该按钮时,计算1+2+3+100的结果,并利用消息框显示出来步骤如下:1、新建一个窗体,添加一个按钮,在属性窗口中设置名称为“命令0"2、在按钮上添加代码如下
28、:PrivateSub命令0_Click()DimsAsInteger,xAsIntegers=0:x=1DoWhilex<=100s=s+xx=x+13、Loop闭程序编辑窗口,切换到窗体视图,单击命令按钮,如此弹出计算结果。MsgBox"1+2+.+100的值为:"&sEndSub14/19想一想:如果改成求1X2x3-X10的值,该怎样进展?如果改成在文本框中输入一个值x,求1+2+x的值,该怎样进展?例9-13在窗体上放一个命令按钮,当单击该命令按钮时,求满足不等式1+2+3+n<=100的最大整数n,并将所求的n输出在消息框中。(最终满足条件的
29、n为13)步骤:打开例9-12,修改程序如下:PrivateSub命令0_Click()DimsAsInteger,nAsIntegers=0:n=0DoWhiles<=100n=n+1s=s+nLoop'注意退出循环时n(比满足S<100的那个n)增加了1MsgBox”满足1+2+-+n<=100的最大整数n为"&n-1这一题我们也可以利用Do-LoopUntil,其功能是直到条件表达式成立退出例9-14,利用DoLoopUntil改写例9-13PrivateSub命令0_Click()DimsAsInteger,nAsIntegers=0:n=0
30、Don=n+1s=s+nLoopUntils>100'注意退出循环时n(比满足S<100的那个n)增加了1MsgBpoF满屈eXt2+环+n<=100的最大整数n为"&n-1路式:For循环变量=初值to终值step增量_T'1循环语句体Next循环变量功能:其执行过程分以下两步:1循环变量取初值后,执行循环体2到Next循环变量时,循环变量加上增量,看是否超过终值,如超过如此退出循环,否如此继续执行循环体。说明:step1可省略不写即循环变量增量为1时可省略step项不写例9-15编写一个过程,求0到100之间的所有奇数的和分析:过程就是在
31、程序中反复用到的一小段程序,定义成过程后,后面再用到这段程序只要输入过程名即可调用这段程序步骤:1、新建一个窗体,添加一个按钮,进入按钮的代码编辑窗口修改此处为过程名L152、在编辑窗口上修改并添加代码如下:见上图PrivateSubL15()'定义过程L15DimsAsInteger,iAsIntegers=0Fori=1To100Step2s=s+iNextiMsgBox"1+3+5+.+99="&sEndSub4、切换到窗体设计视图,选中按钮,在属性窗口中仍然选“事件"选项卡下的“单击事件栏中选“事件过程",在编辑窗口中添加程序如下:M教课书数据表-Ftb_窗体丁(代iPrivateSubLIS()limsAzIntegeriAsIntegerw二。:i=1Fori=1To10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 部编版小学语文三年级下册第八单元试卷1
- 2023-2024学年广东省清远市四校高二下学期期中联考语文试题(解析版)
- 探究春分的奥秘
- 塑造品格小战士
- 硕士研究生生存指南
- 梅里斯达斡尔族区2025届小升初数学检测卷含解析
- 山西省临晋中学2025届高三下学期大联考卷Ⅰ生物试题试卷含解析
- 泰山学院《可靠性技术》2023-2024学年第一学期期末试卷
- 内蒙古翁牛特旗2024-2025学年初三下学期第一次教学质量诊断性考试生物试题试卷含解析
- 山东省临沂市临沭县一中2025届高三一轮复习阶段性考试(历史试题理)试题含解析
- 2024年学校安全知识竞赛题库及答案
- JJF 2158-2024 热量表型式评价大纲
- 守护美好家园防灾减灾主题班会课件
- 小班健康教案及教学反思《叠衣服》
- 家装设计师个人简介范文
- DL∕T 5210.6-2019 电力建设施工质量验收规程 第6部分:调整试验
- 3.2.2新能源汽车电机控制器结构及工作原理课件讲解
- 我国水上运输行业政策
- 安全员安全生产管理人员考试培训题库
- 木工支模承包合同版
- 2023-2024学年语文六年级下册古诗词1《采薇(节选)》课件
评论
0/150
提交评论