您好,欢迎访问三七文档
第九章程序设计基础教学目标:理解什么是程序掌握程序设计的基本方法编写并调试简单的VBA应用程序编写简单的事件驱动程序会在VBA应用程序中访问数据库教学过程:一、程序设计概述做一件事,计算机可以把它分解为一系列的基本操作步骤,通过程序设计语言的基本语句来完成,这就是程序。程序设计方法主要有两种:面向过程的结构化程序设计方法和面向对象的程序设计方法。前面所学的窗体对象设计就是一种面向对象的设计方法。在Access中编写程序使用的语言是VisualBasicforApplication,简单VBA。首先看一下VBA编写的几个简单程序。例9-1在窗体上放置一个命令按钮和一个文本框,单击命令按钮后在文本框中显示“VBA程序设计”步骤如下:1、打开数据库,切换到“窗体”对象下,双击“在设计视图中创建窗体”,2、添加文本框,在对应的属性窗口“全部”选项卡的第一行设置名称为“文本1”,添加命令按钮,名称为“命令0”3、打开“按钮”的属性窗口,在“事件”选项卡下的“单击”栏选“事件过程”,单击后面的按钮,进入编辑窗口:单击此按钮,输入程序。4、在编辑窗口中输入如下程序:(其实窗口中已有,所以我们只要在中间添加一句PrivateSub命令0_Click()文本1.Value=“VBA程序设计”EndSub5、关闭程序编辑窗口,切换到窗体视图,则单击命令按钮后,“VBA程序设计”即显示在文本框中。思考在上面的窗体中再添加一个按钮,单击则清除文本框中显示的文本,应该怎样操作?例9-2在窗体中有一个命令按钮和两个文本框,用户在第一个文本框中输入一个正整数,当单击该按钮时计算出这个正整数的阶乘,并在第二个文本框中显示计算结果。步骤:1、新建一个窗体,拖入两个文本框和一个命令按钮,名称为文本1、文本2、命令0(这三个控件名称后面程序中要引用,所以一定要命名!)2、选中按钮,打开其属性窗口,在“事件”选项下的“单击”一栏,选“事件过程”,单击后面的按钮,输入如下程序:说明:1、程序的开头“PrivateSub”和结束“EndSub”是一个固定搭配,表示这是一个过程,程序中的“命令0_Click()”表示这个程序在“命令0”按钮被单击时执行。2、在编辑窗口已有程序的开头和结尾,所以我们只要输入中间的一句:文本1.value=“VBA程序设计”3、注意程序中引用的“命令0”,“文本1”一定要和窗体中的按钮、文本框名称一致。3、关闭程序编辑窗口,切换到窗体视图,我们输入5,单击“计算”按钮,则会显示120,(实际上,5!=1×2×3×4×5,计算结果是120)说明:1、程序中变量在使用前要先定义,这里计算阶乘,用到的只能是整数,所以定义a、b、c为整型变量。(见中间程序部分的第一句:DimaAsInteger)2、单引号后面的是程序的注释语句,只起说明的作用,程序并不执行它。不输入这些语句,程序照样正常运行。(见绿色部分)3、输入程序时可以用小写字母输入单词,但每一个关键词的第一个字母计算机会自动变成大写。(见程序中蓝色部分)4、程序一般一句一行,也可多个句子写在一行,中间用冒号隔开;如果一句太长,需要分成多行,可在上一行的最后加下划线“_”,系统就会把上下两行连在一起做为一个语句。二、程序的输入输入出语句(1)InputBox函数格式:InputBox字符串1,[字符串2],[字符串3]功能:显示一个输入对话框,等待用户输入信息或按下按钮。在按钮事件发生后返回键盘输入到文本框中的内容,返回值的类型为文本类型,说明:对话框中的提示信息是字符串1,对话框的标题栏是字符串2,字符串3是输入对话框中的默认值。后两个字符串是可选项,可不选。例9-3在窗体的命令按钮中分别加入以下代码,单击按钮后即可看出输入对话框的不同。PrivateSubCommand0_Click()InputBox请输入学号,学号输入框,2009EndSub改成下面程序后的输入对话框:PrivateSubCommand0_Click()InputBox请输入学号,学号输入框EndSub改成下面程序后的输入对话框:PrivateSubCommand0_Click()InputBox请输入学号EndSub(2)MsgBox函数格式:MsgBox字符串1,[按钮参数],[字符串2]功能:出现一个消息框,字符串1为消息框中的提示信息,按钮参数则决定了消息框中按钮的类型(见下面按钮参数表),字符串2为消息框的标题栏上信息。按钮参数表:常数值按钮类型vbOKOnly0只显示OK按钮vbOKCancel1显示OK及Cancel按钮vbYesNoCancel3显示Yes、No、Cancel按钮vbQuestion32显示WarningQuery图标vbExclamation48显示WaringMessage图标vbInformation64显示InformationMessage图标vbDefaultButton10第一个按钮是缺省值vbDefaultButton2256第二个按钮是缺省值vbDefaultButton3512第三个按钮是缺省值例9-4在窗体上添加一个命令按钮,当单击该按钮后,显示一个对话框:(1)提示消息为“您确定要退出吗?”。(2)包含“确定”和“取消”两个命令按钮以及一个询问图标,默认选择“确定”按钮,(3)对话框的标题栏为“确认退出”分析:生成对话框需要用MsgBox函数,包含“确定”和“取消”按钮,对应参数为1(见上表);包含一个询问图标,对应参数为32;默认选择是“确定”按钮(这里的第一个就是“确定”按钮),对应参数是0,根据题目要求对应的语句应为:MsgBox“您确定要退出吗?”,1+32+0,“确认退出”步骤:1、新建一个窗体,添加一个命令按钮,2、在命令按钮的属性窗口中切换到“事件”选项下,在“单击”一栏中选“事件过程”,单击这一栏后面的按钮,出现VBA编程窗口,3、在程序开头和结尾之间添加一句:MsgBox“您确定要退出吗?”,1+32+0,“确认退出”,见下图:4、切换到窗体视图,单击命令按钮,弹出一个消息框,如图:说明:1、使用参数进行组合时不能互相矛盾,例如不能同时显示“确定”‘“取消”两个按钮和“是”、“否”、“取消”三个按钮。2、上面的组合参数可以求和后表示,也可用按钮参数表中对应的常数表示,下面几种形式均可:MsgBox“您确定要退出吗?”,1+32+0,“确认退出”MsgBox“您确定要退出吗?”,33,“确认退出”MsgBox“您确定要退出吗?”,vbOKCancel+vbQuestion+vbDefaultButton1,“确认退出”3、当用户点击了不同的按钮,我们可以根据按钮的返回值来判定用户选择了哪个按钮,按钮返回值如下表:MsgBox返回值常数值选择按钮vbOK1选择了OKvbCancel2选择了CancelvbYes6选择了YesvbNo7选择了NO例9-5在窗体上添加一个命令按钮,当单击该按钮后接受用户输入的三角形三边长,并求出周长后输出步骤:1、新建一个窗体,添加一个命令按钮command02、在命令按钮的属性窗口中为其添加代码:如图3、切换到窗体视图,单击命令按钮,在弹出的对话框中依次输入三个值,例如3、4、5则弹出一个消息框,显示三边长的结果:三、赋值语句格式:变量名=表达式功能:把右边表达式的值给左边的变量。例如x=2+1,x=x+1说明:1、变量要先定义才能使用2、赋值号两边的数值必须兼容,即数据类型尽量一致。否则容易出错例如:DimxasInteger,yasSingle,zasString‘定义x为整数,y为单精度数,z为文本字符X=3.5Y=4Z=”ACCESS”第二句x定义为整数,却给了个小数3.5,此时x会取4,第三句y是单精度数,给了整数4,但系统可以转换成4.000再给变量y,所以是合法的。第四句z是字符变量,所以等式右边只能赋值一个字符串。3、等号左边只能有一个变量,右边可以是含这个变量的表达式,例如x=x+1正确,但x+1=x就不正确了。4、赋值号右边的计算结果必须在左边变量的表示范围之内,否则系统会提示出错,PrivateSubCommand0_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三角形的周长是:&sEndSub例如:DimxasInteger‘定义x为整型变量x=40000整型变量x最大只能取值32767,所以40000就超出了整型数据表示的最大值,程序运行到这一句时,系统会提示出错。5、变量被两次赋值,则新值冲掉旧值,例如x=2x=3x=x+2x=?例9-6在窗体上添加一个命令按钮,当单击该按钮后接受用户输入的长方形的长和宽,计算其面积并输出计算结果。步骤:1、新建窗体,并在上面添加一个命令按钮,按钮名称为“命令0”,在按钮上添加代码如下:2、切换到窗体视图,单击命令按钮,会出现一个输入框,要求你输入长方形的两个边长,输入边长后,单击“确定”按钮,即弹出一个消息框,显示长方形的面积。注意:输入程序代码时,要在英文半角下输入,各关键词之间要有空格(“英文半角”输入状态下的空格!)四、顺序结构在高级程序设计语言中,其语句执行都有一定的先后顺序,总体可以分为顺序结构语句(按语句的先后顺序执行)、条件分支语句(根据条件的成立来确定执行哪一个分支)、循环语句(某个条件成立时反复执行某一段程序)。顺序结构是最简单的一种结构,这种结构让语句按先后顺序执行,以完成简单的功能。例9-7在窗体上放一个命令按钮和两个文本框,在两个文本框中分别输入两个不同的值,单击命令按钮后交换这两个文本框中的数据。分析:假如a=2,b=3,利用赋值语句总是把等号右边PrivateSub命令0_Click()'定义变量a,b,s为单精度变量,a,b表示长方形的长和宽,S表示面积DimaAsSingle,bAsSingle,sAsSingle'通过InputBox函数输入边长,同时将文本型数据转换成数值型a=Val(InputBox(请输入长方形的第一个边长:))b=Val(InputBox(请输入长方形的第二个边长:))s=a*bMsgBox长方形面积为:&sEndSubA=2B=3T=A’把A的值放到T中,则T=2A=B’把B的值放到A中,则A=3B=T’把T的值给B,则B=2值给左边的特性,借助中间变量,可以让a,b的值互换。步骤:1、新建一个窗体,窗体中放两个文本框和一个命令按钮,名称分别是“文本1”、“文本2”、“命令0”,(在属性窗体设置这些控件的名称,在代码程序中引用)2、选中命令按钮,在属性窗口中添加这个按钮的代码如下:3、切换到窗体视图,在文本框中输入两个值,例如2、3,单击命令按钮,可看到文本框中两个数实现了交换。例9-8在窗体上放一个命令按钮和两个文本框,第一个文本框中输入用分钟表示的时间,单击命令按钮则把这个时间转换成以小时和分钟表示的时间。步骤:1、新建一个窗体,放一个命令按钮和两个文本框,定义按钮和文本框的名称为命令0、文本1、文本22、选中命令按钮,在属性窗口中切换到“事件”选项下,在“单击”栏选“事件过程”,单击这一栏后面的按钮,输入以下代码:PrivateSub命令0_Click()DimaAsString,bAsString,tAsString'定义a,b,t为文本变量a=文本1.Valueb=文本2.Valuet=aa=bb=t文本1.Value=a文本2.Value=bEndSub3、切换到窗体视图下,输入一个分钟数例如:100,单击命令按钮就可转换成1小时40分钟。说明:1、常量的声明:常量是一种特
本文标题:VBA程序设计基础
链接地址:https://www.777doc.com/doc-1338702 .html