全套课件·《Visual1

上传人:M****1 文档编号:568266583 上传时间:2024-07-23 格式:PPT 页数:379 大小:9.51MB
返回 下载 相关 举报
全套课件·《Visual1_第1页
第1页 / 共379页
全套课件·《Visual1_第2页
第2页 / 共379页
全套课件·《Visual1_第3页
第3页 / 共379页
全套课件·《Visual1_第4页
第4页 / 共379页
全套课件·《Visual1_第5页
第5页 / 共379页
点击查看更多>>
资源描述

《全套课件·《Visual1》由会员分享,可在线阅读,更多相关《全套课件·《Visual1(379页珍藏版)》请在金锄头文库上搜索。

1、1Visual Basic程序设计简明教程2第1章 概述本章内容: 程序设计语言 VB语言的特点 VB程序的开发环境 简单的VB程序介绍 Visual Basic程序设计简明教程31.1 程序设计语言关于程序:程序:是一组有序指令的集合,由某种程序设计语言编写而成。程序设计语言:是人与计算机之间进行交流的工具。Visual Basic程序设计简明教程41.1 程序设计语言 面向机器的程序设计语言机器语言是计算机能够直接执行的二进制指令代码,每条指令都用0和1组成的序列串表示,这些指令的集合就是指令系统。汇编语言主要由汇编指令构成,这些汇编指令与机器语言的二进制指令一一对应。机器机器语言和言和汇

2、编语言都是面向机器的程序言都是面向机器的程序设计语言,言,它它们与与计算机的硬件算机的硬件紧密相关。密相关。Visual Basic程序设计简明教程51.1 程序设计语言 面向过程的程序设计语言 FORTRAN语言和随后出现的BASIC语言、Pascal语言、COBOL语言以及C语言等等,都被称为高级语言。 程序员在使用高级语言编写程序时,不需要熟悉计算机的指令系统,可以将精力集中于解题思路和方法上。 计算机不能直接执行高级语言程序,必须先翻译成为机器语言程序之后才能执行。 Visual Basic程序设计简明教程61.1 程序设计语言 面向对象的程序设计语言 面向对象的程序设计方法力求符合人

3、们自然的思维习惯,运用类和对象的观点描述问题域,然后用程序设计语言对问题进行描述和实现。面向对象的程序设计语言大致可以分为两类,一类是纯面向对象语言,例如Eiffel语言和Java语言;另一类是混合型面向对象语言,它们往往是由面向过程的语言发展而来的,例如C+语言和Visual Basic语言。 返回返回返回返回Visual Basic程序设计简明教程71.2 VB语言的特点VB语言的发展概况:Visual Basic语言(简称VB)是微软公司推出的基于Windows环境的应用软件开发工具,其语法基础是Basic语言。微软公司于1991年推出VB 1.0版,历经数年的更新换代,1998年升级为

4、VB 6.0版,并有学习版、专业版和企业版等3种版本。Visual Basic程序设计简明教程8VB语言的特点 可视化的程序设计方法 结构化的程序设计语言 事件驱动的编程机制 数据库访问 良好的可扩充性 返回返回返回返回Visual Basic程序设计简明教程91.3 VB程序的开发环境VB6.0的启动:在“开始”菜单中的“程序”菜单项中,选择“Microsoft Visual Studio 6.0”级联菜单中的“Microsoft Visual Basic 6.0”命令,即可启动VB 6.0。首先弹出“新建工程”对话框,其中列出了VB 6.0能够创建的工程类型。系统默认的工程类型是“标准EX

5、E”。Visual Basic程序设计简明教程10 Visual Basic 6.0项目类型(1)标准EXE项目(2)ActiveX DLL项目 (3)ActiveX EXE项目 (4)ActiveX 控件项目 (5)ActiveX 文档项目 (6)DHTML 应用程序项目 (7)IIS 应用程序项目 Visual Basic程序设计简明教程11新建工程:新建工程:图1-1 “新建工程”对话框Visual Basic程序设计简明教程12Visual Basic 6.0 集成开发环境图图1-2 Visual Basic 6.01-2 Visual Basic 6.0集成开发环境集成开发环境 Vi

6、sual Basic程序设计简明教程13菜单组成:“文件”菜单“编辑”菜单“视图”菜单“工程”菜单“格式”菜单“调试”菜单“运行”菜单“工具”菜单“外接程序”菜单 “文件文件”菜菜单:(1 1)新建工程)新建工程 (2 2)打开工程)打开工程(3 3)添加工程)添加工程 (4 4)移除工程)移除工程(5 5)保存工程)保存工程(6 6)工程另存为)工程另存为(7 7)保存文件)保存文件(8 8)文件另存为)文件另存为(9 9)生成工程)生成工程 Visual Basic程序设计简明教程14图1-3 “文件”菜单 文件菜单“编辑”菜菜单:“编辑”菜菜单用于用于编辑操作,以方便操作,以方便对工程工

7、程进行修改。行修改。图1-4 “编辑”菜单Visual Basic程序设计简明教程15“视图”菜单l“视视图图”菜菜单单用用于于显显示示各各种种窗窗口口图1-5 视图菜单栏“工程工程”菜菜单“工工程程”菜菜单单用用于于为为当当前前工工程程创创建建模模块块、引引用用对对象象或或提提供供各各种种设设计计器器。图1-6 工程菜单栏Visual Basic程序设计简明教程16“格式”菜单 “格格式式”菜菜单单用用于于界界面面设设计计,可可以以使使得得界界面面中中的的控控件件按按照照一一定定的的规规则则有有序序排排列列。图图1-7 1-7 格式菜单栏格式菜单栏 “调试”菜菜单“调调试试”菜菜单单用用于于

8、调调试试、监监视视程程序序。图图1-8 1-8 调试菜单栏调试菜单栏Visual Basic程序设计简明教程17“运行”菜单“运行”菜单用于执行程序。图图1-9 1-9 运行菜单栏运行菜单栏“工具工具”菜菜单图图1-10 1-10 工具菜单栏工具菜单栏Visual Basic程序设计简明教程18“外接程序”菜单图图1-11 1-11 外接程序菜单栏外接程序菜单栏 工具工具栏:图图1-12 1-12 选取工具栏选取工具栏Visual Basic程序设计简明教程19表表1-1 标准工具准工具栏上的上的图标按按钮Visual Basic程序设计简明教程20续表表1-1 标准工具准工具栏上的上的图标按

9、按钮返回返回返回返回Visual Basic程序设计简明教程211.4 简单的VB程序介绍 建立VB应用程序的方法:创建一个工程为窗体添加对象设置对象属性编写代码 运行工程 调试工程 保存工程 Visual Basic程序设计简明教程22控件的画法: l l l l单单单单击击击击工工工工具具具具箱箱箱箱中中中中的的的的控控控控件件件件按按按按钮钮钮钮,在在在在窗窗窗窗体体体体编编编编辑辑辑辑区区区区拖拖拖拖动动动动鼠标画出对应的控件。鼠标画出对应的控件。鼠标画出对应的控件。鼠标画出对应的控件。l l l l双双双双击击击击工工工工具具具具箱箱箱箱中中中中的的的的控控控控件件件件按按按按钮钮钮

10、钮,即即即即可可可可自自自自动动动动在在在在窗窗窗窗体体体体中中中中央画出对应的控件,再拖动到适当位置。央画出对应的控件,再拖动到适当位置。央画出对应的控件,再拖动到适当位置。央画出对应的控件,再拖动到适当位置。l l l l按按按按住住住住CtrlCtrl键键键键,单单单单击击击击工工工工具具具具箱箱箱箱中中中中的的的的控控控控件件件件按按按按钮钮钮钮,松松松松开开开开CtrlCtrl键键键键,在在在在窗窗窗窗体体体体编编编编辑辑辑辑区区区区拖拖拖拖动动动动鼠鼠鼠鼠标标标标可可可可画画画画出出出出多多多多个个个个对对对对应应应应的控件。画完之后单击工具箱中的其他控件。的控件。画完之后单击工具

11、箱中的其他控件。的控件。画完之后单击工具箱中的其他控件。的控件。画完之后单击工具箱中的其他控件。 Visual Basic程序设计简明教程23程序的执行:编译运行解释运行VB的三种工作模式:设计、运行、和中断。生成可执行文件(EXE),可以在Windows环境下直接运行。Visual Basic程序设计简明教程24可视化程序设计的概念: 对象(象(Object) 对象的属性象的属性(Property)对象的方法(象的方法(Method) 对象事件(象事件(Event) 事件事件过程程 Visual Basic程序设计简明教程25对象:对象是实体或者事物的抽象表示。 对象由属性和方法组成,属性描

12、述对象的特征,方法是对象所能够执行的操作。 Visual Basic程序设计简明教程26事件:事件是由系统预先设置的,能够被对象识别和响应的动作。事件通常由用户触发,例如鼠标单击、键盘输入等等;有时也可以由系统触发,例如定时器产生定时信号。 不同类的对象能够识别的事件有所不同。 Visual Basic程序设计简明教程27事件过程:事件过程是一个相对独立的代码段,一旦触发某个事件并被对象识别之后,就会自动执行。 为了使程序中的某个对象在识别了一个特定事件之后,能够按照程序员的意图进行正确的响应,就必须针对这个特定事件,为该对象编写相应的事件过程。 返回返回返回返回28第2章VB语言基础本章内容

13、: 数据类型 常量与变量 运算符与表达式 语句 窗体2024/7/23Visual Basic程序设计简明教程292.1 数据类型l计算算机机中中的的数数据据是是现实世世界界中中信信息息的的具具体体表表现形形式式,它它有有一一定定的的数数据据类型型,数数据据类型型确定了数据的取确定了数据的取值范范围和能和能够进行的操作。行的操作。l在在计算算机机的的存存储器器中中,不不同同类型型的的数数据据所所占存占存储空空间的的长度也有所不同。度也有所不同。 2024/7/23Visual Basic程序设计简明教程30VB 语言的数据类型数据类型数据类型数据类型数据类型数值类型数值类型数值类型数值类型字节

14、型字节型字节型字节型双精度型双精度型双精度型双精度型整型整型整型整型单精度型单精度型单精度型单精度型长整型长整型长整型长整型货币型货币型货币型货币型字符型字符型字符型字符型逻辑型逻辑型逻辑型逻辑型日期型日期型日期型日期型对象型对象型对象型对象型变体型变体型变体型变体型2024/7/23Visual Basic程序设计简明教程31标识符 l(1)关)关键字字l关关键字字又又称称保保留留字字,是是VB语言言预先先规定定的的具具有固定含有固定含义的一些的一些单词。l(2)标识符符 l标识符符的的命命名名规则是是,以以字字母母开开始始,由由字字母母、下划下划线和数字和数字组成。成。 l标识符不能与关符

15、不能与关键字同名。字同名。l在在标识符中并不区分字母的大小写。符中并不区分字母的大小写。 返回返回返回返回2024/7/23Visual Basic程序设计简明教程322.2 常量与变量常量是指在程序执行期间其值不发生变化的量,变量的字面含义是指在程序执行期间其值可以变化的量,实际上对应了内存的一段存储空间。常量有不同的数据类型,它可以分为直接常量和符号常量。2024/7/23Visual Basic程序设计简明教程33 2.2.1 常量整型常量(1)十进制整数。 (2)八进制整数,以&或者&O作为前缀。 (3)十六进制整数,以&H作为前缀。 如果在一个整型数据的尾部附上&,则表示长整型常量。

16、 2024/7/23Visual Basic程序设计简明教程342.2.1 常量实型常量(1)定点形式,由数字和小数点组成。 (2)指数形式,由尾数、指数符号(E)和指数组成。尾数不能省略,指数是整数。 如果在一个实型数据的尾部附上#,或者用指数符号(D)代替指数符号(E),则表示双精度型常量。2024/7/23Visual Basic程序设计简明教程352.2.1 常量字符型常量字符型常量又称为字符串,是由一对双引号括起来的字符序列,例如“CHINA”、“Mp3”和“集结号”等等。字符串的长度是指字符串中字符的个数,“”是空串,表示不包含任何字符,长度为0。VB采用Unicode编码,用两个

17、字节表示一个字符,每一个字符对应一个Unicode码,汉字也有自己的Unicode码。 2024/7/23Visual Basic程序设计简明教程362.2.1 常量逻辑型常量逻辑型常量只有True和False两个值,分别表示“真”和“假”。2.2.1 常量常量日期型常量日期型常量l l日期型常量由一对日期型常量由一对“#”括起来,表示日期和时间。括起来,表示日期和时间。 l l标准格式:标准格式:#月月/日日/年年 时时/分分/秒秒 AM|PM# 2024/7/23Visual Basic程序设计简明教程372.2.1 常量符号常量定义符号常量的一般格式为: Const 符号常量As 类型=

18、表达式例如: Const PI As Single=3.14159 VB提供了很多符号常量,它们均以vb开头,程序员可以在程序中直接使用。 2024/7/23Visual Basic程序设计简明教程382.2.2 变量l变量代表了内存中某一段存量代表了内存中某一段存储空空间,其中可以存,其中可以存放数据即放数据即变量的量的值,存,存储空空间的大小的大小则由由变量的量的数据数据类型来决定。型来决定。l变量有名字,程序量有名字,程序员在程序中可以通在程序中可以通过变量名量名访问变量所量所对应的内存空的内存空间。l变量的取量的取值范范围是有限的,而且其所占内存的字是有限的,而且其所占内存的字节数越多

19、,相数越多,相应的取的取值范范围就越大。就越大。2024/7/23Visual Basic程序设计简明教程39VB基本类型的变量类型类型关键字关键字类型符类型符所占字节数所占字节数取值范围取值范围字字节型型Byte10255整型整型Integer%2-3276832767长整型整型Long&4-21474836482147483647单精度型精度型Single!4-3.410-38+3.41038双精度型双精度型Double#8-1.710-308 +1.710308货币型型Currency8-922337203685477.5808922337203685477.5807逻辑型型Boolea

20、n2True或者或者False字符型字符型String$字符串的字符串的长度度日期型日期型Date8100年年1月月1日日9999年年12月月31日日对象型象型Object4变体型体型Variant2024/7/23Visual Basic程序设计简明教程40变量定义语句 Dim 变量1 As 类型,变量2 As 类型,例如: Dim a As Integer, b As Single, c As String 如果定义变量时在其尾部附上类型符,则可以省略类型说明部分。 Dim a%, b!, c$ 2024/7/23Visual Basic程序设计简明教程41字符串变量 字符串变量一般能够存

21、放不固定长度的字符串,也可以在程序中定义定长的字符串变量。 例如:Dim s As String * 20 如果变量未经定义而直接使用,或者在定义时没有进行类型说明,则系统默认该变量为变体型(Variant)。 返回返回返回返回2024/7/23Visual Basic程序设计简明教程422.3 运算符与表达式运算符用于对数据进行运算,被运算的数据称为操作数。表达式描述对哪些数据以什么顺序施以什么样的操作,它由运算符和操作数组成。操作数既可以是常量,也可以是变量,还可以是函数调用。 2024/7/23Visual Basic程序设计简明教程432.3 运算符与表达式算术表达式运算符运算符优先级

22、优先级功能功能1指数(指数(幂运算)运算)-2取取负*3乘乘 /3除除 4整除整除Mod5取余取余+6加加-6减减2024/7/23Visual Basic程序设计简明教程44说明:整除()运算是取整数相除的商,取余(Mod)运算是取整数相除的余数 。除(/)与整除()不同,它是针对实数的除法运算。 指数()运算的幂次既可以是整数,也可以是实数。 2024/7/23Visual Basic程序设计简明教程45算术运算的数据类型如果参加算术运算的操作数具有不同的数据类型,为保证数据运算的精度,VB规定运算结果的数据类型以高类型为准。所谓高类型,是指其所占内存的字节数较多。例如Integer型数据

23、和Double型数据进行运算,则运算结果的数据类型为Double型。2024/7/23Visual Basic程序设计简明教程462.3 运算符与表达式字符串表达式连接运算符(&)用来连接两个字符串,它的优先级低于算术运算符。 加(+)也可以用来连接字符串,例如字符串表达式“Visual ”+“Basic”的值是“Visual Basic”。 2024/7/23Visual Basic程序设计简明教程47字符串连接运算符的比较 左操作左操作数数右操作数右操作数&+“123”“456”“123456”“123456”“123”456“123456”579123456“123456”579 123

24、“456abc”“123456abc”类型不匹配,出型不匹配,出错2024/7/23Visual Basic程序设计简明教程482.3 运算符与表达式日期表达式(1)两个日期型数据相减,结果是一个数值,表示两个日期之间相差的天数。 (2)一个日期型数据与一个数值相加或者相减,结果是一个日期型数据,表示向后或者向前推算日期。 例如#5/3/2008#-#4/29/2008#的值是4, #5/3/2008#+5的值是#5/8/2008# 。返回返回返回返回2024/7/23Visual Basic程序设计简明教程492.4 语句语句是构成VB程序的最小单位,程序中的语句经过编译之后,生成了若干条机

25、器指令。根据这些指令,计算机系统就能够完成运算操作,或者实现对操作流程的控制。 2024/7/23Visual Basic程序设计简明教程502.4 语句书写规则1注释(1)使用单引号()引导,一般出现在一条语句的后面。(2)使用Rem引导,必须单独一行。2续行续行符(_)的写法是空格紧跟下划线,它只能出现在一行的末尾。3语句分隔用冒号(:)把几条语句分隔,然后写在同一行。2024/7/23Visual Basic程序设计简明教程512.4 语句赋值语句变量|对象.属性=表达式(1)=是赋值运算符,它需要两个操作数,优先级最低。(2)赋值运算符的右操作数通常是算术表达式、字符串表达式和函数调用

26、表达式,左操作数是变量或者对象的属性。(3)执行赋值语句时,首先计算赋值运算符右边的表达式,然后把值赋给左边的变量或者对象的属性。2024/7/23Visual Basic程序设计简明教程52赋值语句的作用保存数据运算的结果。 v = 4 / 3 * 3.14 * r 3 计算球的体积在程序中修改对象的属性值。Text1.BackColor = vbRed 2024/7/23Visual Basic程序设计简明教程53函数调用表达式 一般形式为:函数名(参数列表) VB语言提供了大量的内部函数,它们能够完成一些预先设定好的功能,诸如计算数学函数值、字符串处理以及类型转换等等。例如: Dim a

27、 As Integer a = Val(123abc) 2024/7/23Visual Basic程序设计简明教程542.4 语句流程控制语句流程控制语句并不参与对数据的操作,而是控制程序执行的流程。它可以分为两类:一类是流程结构语句,另一类是流程转向语句。 End语句End语句的功能是立即结束程序的执行。返回返回返回返回2024/7/23Visual Basic程序设计简明教程552.5 窗体 窗体(Form)是VB程序的重要对象,也是所有控件的容器。程序的每一个窗体都是VB工程中的一个模块,并单独保存在一个窗体文件(.frm)中。在程序运行时,每一个窗体对应于一个具有Windows风格的窗

28、口。如右图所示:2024/7/23Visual Basic程序设计简明教程56 窗体的常用属性 属性属性作用作用Name设置窗体的置窗体的对象名象名Caption设置窗体的置窗体的标题AutoRedraw确定是否自确定是否自动重画被遮住的窗体内容重画被遮住的窗体内容 BorderStyle设置窗体置窗体边框的框的类型型BackColor设置窗体的背景置窗体的背景颜色色ForeColor设置窗体的前景置窗体的前景颜色色Font设置窗体中置窗体中显示的文字的字体示的文字的字体Height设置窗体的高度置窗体的高度Width设置窗体的置窗体的宽度度Top设置窗体距屏幕置窗体距屏幕顶端的距离端的距离L

29、eft设置窗体距屏幕左端的距离置窗体距屏幕左端的距离Moveable确定程序运行确定程序运行时窗体能否移窗体能否移动Visible确定程序运行确定程序运行时窗体是否可窗体是否可见WindowState设置窗体在启置窗体在启动时的状的状态2024/7/23Visual Basic程序设计简明教程57说明: Name是所有控件都具有的属性,其属性值就是控件对象在程序中的对象名。程序第一个窗体的默认对象名是Form1。窗体的高度、宽度以及距离等属性值的单位是Twip,1英寸=1440Twip。 2024/7/23Visual Basic程序设计简明教程58窗体的常用事件 事件事件来源来源Click鼠

30、鼠标单击窗体窗体DblClick鼠鼠标双双击窗体窗体Load窗体装入工作区窗体装入工作区 Unload卸卸载窗体窗体Activate窗体成窗体成为活活动状状态DeActivate窗体成窗体成为不活不活动状状态Resize调整窗体的尺寸整窗体的尺寸2024/7/23Visual Basic程序设计简明教程59说明: 装入窗体时会自动触发Load事件,因此可以在窗体的Load事件过程中对控件对象和变量进行初始化。 Activate 事件和DeActivate事件往往发生在拥有多个窗体的VB程序中。 2024/7/23Visual Basic程序设计简明教程60窗体的常用方法 方法方法功能功能Pri

31、nt在窗体中在窗体中输出文本出文本Cls清除窗体中清除窗体中显示的文本和示的文本和图形形Show显示窗体示窗体 Hide隐藏窗体藏窗体Move移移动窗体,并可以改窗体,并可以改变其尺寸其尺寸2024/7/23Visual Basic程序设计简明教程61说明:方法的调用形式:对象.方法 参数列表Print方法不仅用于窗体,而且也可以用于图片框和打印机等其它对象。 装入窗体并不表示一定会自动显示,需要调用Show方法显示窗体。 Move方法的调用形式: 对象.Move left,top,width,height 返回返回返回返回62第3章顺序结构本章内容: 数据输入 数据输出 标签 文本框 命令按

32、钮 程序举例2024/7/23Visual Basic程序设计简明教程633.1 数据输入lVB程程序序的的执行行则采采用用事事件件驱动机机制制,由由用用户或或者系者系统触触发某个事件去某个事件去执行相行相应的事件的事件过程。程。l尽尽管管事事件件处理理过程程之之间并并无无特特定定的的执行行顺序序,但但是是每每个个事事件件过程程的的内内部部却却依依然然包包含含着着顺序序、选择和循和循环三种基本控制三种基本控制结构。构。 l顺序序结构构是是结构构化化程程序序设计中中最最基基本本的的控控制制结构之一,其构之一,其语句按照句按照书写的写的顺序依次逐条序依次逐条执行。行。 2024/7/23Visua

33、l Basic程序设计简明教程643.1 数据输入InputBox函数l调用用InputBox函数函数时,系,系统将将弹出一个出一个输入入对话框。框。lInputBox函数的格式:函数的格式:InputBox(Prompt,Title,Default,) 说明:说明:l(1)InputBox函函数数返返回回一一个个字字符符串串,该字字符符串串就就是是用用户在在对话框框中中输入的数据。入的数据。l(2)参参数数Prompt是是必必选项,它它是是一一个个字字符符串串,用用于于提提示示用用户当当前前应输入哪些数据。入哪些数据。l(3)Title和和Default这两两个个参参数数均均为可可选项,前前

34、者者作作为对话框框的的标题,后者作后者作为对话框的默框的默认输入内容。入内容。l(4)如如果果位位于于参参数数列列表表中中间的的可可选项参参数数被被省省略略,则必必须用用逗逗号号标示示这些被省略的参数。些被省略的参数。2024/7/23Visual Basic程序设计简明教程65举例:Dim name As String, score As Integername = InputBox(“请输入学生的姓名”, “姓名输入”) 省略了默认值score = Val(InputBox(请输入学生的成绩, , 80) 省略了标题2024/7/23Visual Basic程序设计简明教程66 3.1 数

35、据输入文本框控件用户可以在文本框控件中输入数据,然后在程序中通过赋值语句把它赋给某个变量。一般形式: 变量=文本框对象.text举例:Dim name As String, score As Integer name = Text1.text 输入学生的姓名 score = Val(Text2.text) 输入学生的成绩返回返回返回返回2024/7/23Visual Basic程序设计简明教程673.2 数据输出标签控件一般形式:标签对象.caption=表达式 Label1.caption = name 输出学生的姓名Label2.caption = Str(score) 输出学生的成绩。

36、3.2 数据数据输出出文本框控件文本框控件l一般形式:文本框对象一般形式:文本框对象.text=.text=表达式表达式 Text1.text = name Text1.text = name 输出学生的姓名输出学生的姓名 Text2.text = Str(score) Text2.text = Str(score) 输出学生的成绩输出学生的成绩l文本框控件既可以用于输入数据,也可以用于输出数据,文本框控件既可以用于输入数据,也可以用于输出数据,这取决于控件对象是作为赋值运算符的左操作数还是右这取决于控件对象是作为赋值运算符的左操作数还是右操作数。操作数。2024/7/23Visual Bas

37、ic程序设计简明教程683.2 数据输出 MsgBox函数l l调调用用MsgBox函函数数时时,系系统统将将弹弹出出一一个个消消息息对对话话框框,该该对对话话框框能能够够显显示示一一些些提提示示性性的的信信息息,并并接接收收用用户户做出的选择。做出的选择。lMsgBox函数的格式:函数的格式: MsgBox(Prompt,Buttons,Title,) 2024/7/23Visual Basic程序设计简明教程69说明:(1)参数Prompt是必选项,它是一个字符串,可以作为输出的数据。 (2)参数Buttons和参数Title均为可选项,前者是一个整型表达式,确定了消息对话框的类型;后者作

38、为对话框的标题。Buttons的默认值是vbOKOnly,实际设置时可以由4个分组值相加而成。例如弹出一个采用应用模式的消息对话框,显示“终止”、“重试”和“忽略”按钮,图标为严重错误信息,默认是第一个按钮,Buttons的值可以写为2+16+0+0,也可以直接写为18。(3)MsgBox函数返回一个整数,该整数代表用户在对话框中选中的按钮。如果在函数调用时只给出第一个参数(Prompt)的值,就不必使用赋值语句;如果明确给出了其它参数的值,则必须用赋值语句把函数的返回值予以保存。 2024/7/23Visual Basic程序设计简明教程70举例:Dim name As String, sc

39、ore As Integername = 宋开莉score = 80MsgBox (学生姓名: & name & vbCr & 学生成绩: & score) 2024/7/23Visual Basic程序设计简明教程713.2 数据输出 Print方法Print的功能是在对象上输出信息,其中对象可以是窗体、图片框、立即窗口和打印机。Print方法的格式: 对象.Print 表达式列表;|,2024/7/23Visual Basic程序设计简明教程72说明:(1)调用Print方法时如果未给出对象名,则默认对象是窗体。 (2)表达式列表是可选项,如果省略则输出一个空行。Print输出信息之后通常

40、将会自动换行,如果语句末尾有分号(;)或者逗号(,),则表示不换行。(3)表达式列表中可以有多个表达式,表达式之间用空格、分号或者逗号分隔,其中空格和分号的效果相同。如果是数值表达式,就输出它的值;如果是字符串,则原样输出。(4)如果用分号(;)分隔表达式,按照紧凑格式输出数据;如果用逗号(,)分隔表达式,按照标准格式输出数据,此时当前数据项在下一个输出区中显示。 2024/7/23Visual Basic程序设计简明教程73举例: Dim name As String, score As Integer name = 宋开莉 score = 80 Print 学生姓名:; 不换行 Print

41、 name Print 学生成绩:; score 2024/7/23Visual Basic程序设计简明教程74相关函数: 1Spc函数 Spc函数的功能是在当前输出位置插入指定数量的空格, 其格式是:Spc(n)2Tab函数 Tab函数的功能是将当前输出位置定位至指定的地方, 其格式是:Tab(n) Dim name As String, score As Integer name = 宋开莉 score = 80 Print 学生姓名:; Print Spc(5); name Print 学生成绩:; Tab(15); score 2024/7/23Visual Basic程序设计简明教程

42、75相关函数:3.Format函数Format函数一般用于Print方法中,可以使得数值、字符串或者日期按指定的格式输出。Format函数的格式: Format(表达式,格式字符串)Print Format(3.14159, 00.000) 输出结果为03.142Print Format(3.14159, #.#E+#) 输出结果为31.416E-1返回返回返回返回2024/7/23Visual Basic程序设计简明教程763.3 标签 标签(Label)控件能)控件能够显示一些用示一些用户无法无法直接更改的文本信息,它通常作直接更改的文本信息,它通常作为一种一种辅助性助性的控件,用来的控件

43、,用来标注那些自身不具注那些自身不具备Caption属属性的控件。在工具箱中表示性的控件。在工具箱中表示为:标签标签的常用属性的常用属性的常用属性的常用属性 属性属性作用作用Name设置置标签的的对象名象名Caption设置置标签所所显示的文本信息示的文本信息Alignment设置置标签上文本的上文本的对齐方式方式 BackStyle确定确定标签的背景是否透明,默的背景是否透明,默认值是是1,表示不透明,表示不透明BorderStyle设置置标签的的边框框类型,默型,默认值是是0,表示无,表示无边框框AutoSize确定是否根据确定是否根据标签上文本的上文本的长度自度自动调整整标签自身的尺寸,

44、自身的尺寸,默默认值是是FalseWordWrap确定是否根据确定是否根据标签上文本的上文本的长度自度自动换行,默行,默认值是是False2024/7/23Visual Basic程序设计简明教程77说明: (1)程序第一个标签控件的默认对象名是Label1,依次类推。(2)Caption是标签控件最重要的属性之一,其属性值是一个字符串,即显示的文本,最多允许有1024个字符。 返回返回返回返回2024/7/23Visual Basic程序设计简明教程783.4 文本框文本框(文本框(TextBox)控件是一种常用的)控件是一种常用的标准控件,兼备数据输入和输出的功能,标准控件,兼备数据输入和

45、输出的功能,还提供了插入、选择以及复制等文本编辑还提供了插入、选择以及复制等文本编辑手段。手段。在工具箱中表示为:在工具箱中表示为:文本框的常用属性文本框的常用属性 属性属性作用作用Name设置文本框的置文本框的对象名象名Text设置文本框所置文本框所显示的文本信息示的文本信息MaxLength设置文本框所置文本框所显示的文本信息的最大示的文本信息的最大长度,默度,默认值是是0,表示,表示长度度不受限制不受限制MultiLine确定文本框能否确定文本框能否输入多行文本,默入多行文本,默认值是是False,表示只允,表示只允许输入入单行文本行文本ScrollBars确定文本框能否有确定文本框能否

46、有滚动条条PasswordChar设置密置密码符号,默符号,默认值是空串是空串SelText确定当前所确定当前所选的文本的文本SelStart确定所确定所选文本的开始位置,如果未文本的开始位置,如果未选中文本,中文本,则为插入点的位置插入点的位置SelLength确定所确定所选文本的文本的长度度2024/7/23Visual Basic程序设计简明教程79说明: (1)程序第一个文本框控件的默认对象名是Text1,依次类推。(2)Text是文本框控件最重要的属性之一,其属性值是一个字符串,即显示的文本。只允许输入单行文本时,最多可以有2048个字符;如果允许输入多行文本,则最多可以有32K个字

47、符。2024/7/23Visual Basic程序设计简明教程80文本框的常用事件 :事件事件来源来源Change文本框的文本框的Text属性属性值发生改生改变GotFocus文本框文本框获得焦点得焦点LostFocus文本框失去焦点文本框失去焦点KeyPress用用户按下并且按下并且释放放键盘上的一个上的一个键2024/7/23Visual Basic程序设计简明教程81说明: (1)当用户在文本框中输入新内容,或者程序运行时修改了Text属性值,都会自动触发Change事件。(2)只有对象的Enabled和Visible的属性值是True时,它才有获得焦点的能力。在程序运行时,用户可以通过

48、鼠标单击或者按Tab键切换,使某个控件获得焦点。(3)当用户按下并且释放键盘上的一个键,将会触发焦点所在控件的KeyPress事件。该事件返回所输入字符的Unicode码,在程序中加以判断,就会识别出用户刚才按下了哪个键。2024/7/23Visual Basic程序设计简明教程82例3.1:在文本框中输入密码,然后单击窗体,在标签中显示该密码。完成步骤:新建一个工程,在窗体上分别创建2个标签、1个文本框和1个命令按钮。在属性窗口中对窗体和控件的属性进行设置。文本框的PasswordChar属性值设置为“*”,表示输入的字符都显示为“*”;标签Label2的BorderStyle属性值设置为1

49、,表示该标签有边框。 2024/7/23Visual Basic程序设计简明教程83Private Sub Form_Click()Label2.Caption = 您输入的密码是: + Text1.TextEnd SubPrivate Sub Command1_Click()EndEnd Sub 代代码及及实现结果:果:返回返回返回返回2024/7/23Visual Basic程序设计简明教程843.5 命令按钮命令按钮(命令按钮(CommandButton)控件通常用)控件通常用来接受用户的操作命令,一般通过单击命令按来接受用户的操作命令,一般通过单击命令按钮来触发事件过程,执行指定的操作

50、,从而实钮来触发事件过程,执行指定的操作,从而实现特定的功能。在工具箱中表示为:现特定的功能。在工具箱中表示为:命令按命令按钮的常用属性的常用属性 属性属性作用作用Name设置命令按置命令按钮的的对象名象名Caption设置命令按置命令按钮的的标题Default确定命令按确定命令按钮是否是否为Enter键的默的默认按按钮Cancel确定命令按确定命令按钮是否是否为Esc键的默的默认按按钮Enabled确定命令按确定命令按钮是否有效,默是否有效,默认值是是True,表示有效,表示有效Visible确定命令按确定命令按钮是否可是否可见,默,默认值是是True,表示可,表示可见Style设置命令按置

51、命令按钮的外的外观,默,默认值是是0,表示只能,表示只能显示文字示文字Picture设置命令按置命令按钮上上显示的示的图片文件片文件2024/7/23Visual Basic程序设计简明教程85说明: (1)程序第一个命令按钮控件的默认对象名是Command1,依次类推。(2)设置Caption属性时,在标题的某个字母前插入一个连接符(&),即可为命令按钮设置快捷键。(3)当某个命令按钮的Default属性值为True时,按下Enter键就相当于用鼠标单击了该按钮;当某个命令按钮的Cancel属性值为True时,按下Esc键就相当于用鼠标单击了该按钮。(4)当某个命令按钮的Enabled属性值

52、是False时,它就会失效并呈灰色,此时既不能接受用户的操作命令,也不能响应事件。当某个命令按钮的Visible属性值是False时,它在程序运行时将不会显示在窗体中。(5)当Style属性值是1时,表示在命令按钮上可以显示图形。此时即可在Picture属性中选择图片文件,程序运行时该命令按钮就会成为图形按钮。返回返回返回返回2024/7/23Visual Basic程序设计简明教程863.6 程序举例例3.2:输入3位学生的成绩,求其平均值。新建一个工程,在窗体上分别创建1个标签、1个文本框和2个命令按钮,并设置属性值。代码:Private Sub Command1_Click()Dim n

53、um1 As Integer, num2 As Integer, num3 As Integer, aver As Singlenum1 = Val(InputBox(请输入第1位学生的成绩)num2 = Val(InputBox(请输入第2位学生的成绩)num3 = Val(InputBox(请输入第3位学生的成绩)aver = (num1 + num2 + num3) / 3Text1.Text = averEnd SubPrivate Sub Command2_Click()EndEnd Sub 2024/7/23Visual Basic程序设计简明教程87例3.4 :1、交换两个整型变

54、量的值。、交换两个整型变量的值。 2、在窗体上分别创建、在窗体上分别创建3个标签、个标签、2个文本框和个文本框和3个个命令按钮,并设置属性值。命令按钮,并设置属性值。 Private Sub Command1_Click()Dim a%, b%, t As Integera = Val(Text1.Text)b = Val(Text2.Text)t = aa = bb = tLabel3.Caption = 交换后Text1.Text = aText2.Text = bEnd SubPrivate Sub Command2_Click()Label3.Caption = 交换前Text1.Te

55、xt = Text2.Text = End SubPrivate Sub Command3_Click()EndEnd Sub返回返回返回返回2024/7/2388第4章选择结构本章内容: 关系表达式关系表达式 逻辑表达式逻辑表达式 IfIf语句语句 Select CaseSelect Case语句语句 框架框架 单选按钮单选按钮 复选框复选框2024/7/23Visual Basic程序设计简明教程894.1 关系表达式l在在程程序序中中经经常常需需要要描描述述数数据据之之间间的的关关系系并并进进行行判断,从而决定下一步应执行什么动作。判断,从而决定下一步应执行什么动作。 l关关系系运运算算

56、符符可可以以用用来来构构建建关关系系表表达达式式,以以描描述述和比较两个数据之间的大小关系。和比较两个数据之间的大小关系。 2024/7/23Visual Basic程序设计简明教程904.1.1 关系运算符lVB语言提供了语言提供了6个常用的关系运算符:个常用的关系运算符:、=、=、=和和(不等于),它们(不等于),它们都是双目运算符,优先级彼此相同。都是双目运算符,优先级彼此相同。l关系运算的结果显然是逻辑值,即关关系运算的结果显然是逻辑值,即关系成立为系成立为True,否则为,否则为False。 2024/7/23Visual Basic程序设计简明教程91说明 :(1)关系运算符的操作

57、数可以是数值、字符串或者日期型数据。一般要求两边的操作数类型一致。(2)两个字符串按词典序进行比较,即都从各自的第一个字符开始,相应位置的字符依次按Unicode码比较大小,直到出现不同的字符或者字符串结束为止。VB语言规定逻辑值转换为数值时,-1代表True,0代表False。2024/7/23Visual Basic程序设计简明教程92 4.1.2 关系表达式用关系运算符连接起来进行关系运算的式子,称为关系表达式。如: Dim a%, b%, c% a=7: b=6: c=5 a*2=b+c abc 2=2=22024/7/23Visual Basic程序设计简明教程934.2 逻辑表达式

58、关系表达式可以用来构造一些简单的条件,但是还不足以构造复杂的条件。这些条件是由一些子条件复合而成的,表达了一种逻辑关系,无法用关系表达式完成,需要用逻辑表达式构造。例如不仅任意两边之和大于第三边,而且其中的两边相等,才能构成等腰三角形。2024/7/23Visual Basic程序设计简明教程944.2.1 逻辑运算符VB语言提供了3个常用的逻辑运算符:Not、And和Or,分别表示逻辑非、逻辑与和逻辑或运算。逻辑运算的结果当然为逻辑值:True(真)或者False(假)。Not是单目运算符,其余两种是双目运算符。Not的优先级最高,其次是And,最低为Or。2024/7/23Visual B

59、asic程序设计简明教程95逻辑运算规则表: ABA And BA Or BNot ATrueTrueTrueTrueFalse TrueFalseFalseTrueFalseTrueFalseTrueTrue FalseFalseFalseFalse2024/7/23Visual Basic程序设计简明教程964.2.2 逻辑表达式l l用逻辑运算符将表达式连接起来的式子称为逻辑表达式。用逻辑运算符将表达式连接起来的式子称为逻辑表达式。l例如:例如: Dim a%, b%, c% a=7: b=6: c=5 a=b And b = = = NotAndOr=(赋值赋值)运算符:运算符:202

60、4/7/23Visual Basic程序设计简明教程98计算表达式的结果: 3 Mod 5=3 And 132 Or Not 21,值为,值为False。5)然后计算)然后计算True And False,值为,值为False。6)计算)计算221这种数学常识。 32 And 21 (2)描述字符串变量c的值是小写字母。 c=“a” And c= A And s= a And sb Thent=aa=bb=tEnd IfPrint a;bEnd Sub 2024/7/23Visual Basic程序设计简明教程1054.3 If语句ElseIf结构 If 表达式1 Then 语句块1 Else

61、If 表达式2 Then 语句块2 ElseIf 表达式n Then 语句块n Else 语句块n+1 End If 是是语句句块n+1是是否否表达式表达式1为真真语句句块1否否表达式表达式n为真真语句句块n是是否否表达式表达式2为真真语句句块22024/7/23Visual Basic程序设计简明教程106说明: 判断某个条件时存在一个前提,即前面的所有条件都不成立。尽管ElseIf结构有多个分支,但是仍然只有一个分支的语句块会被执行。这种结构特别适合处理有多个互相排斥的条件存在的情况,例如计算分段函数的值。2024/7/23Visual Basic程序设计简明教程107例4.3 计算分段函

62、数的值 Private Sub Command3_Click()Dim x As Single, y!x=Val(InputBox(请输入x的值)If x2 Then 判断x是否小于2 y=2*x+1ElseIf x8 Then 判断x是否在2和8之间 y=x-3Else 前面两个条件都不满足 y=3*x-1End IfPrint y=;yEnd Sub2024/7/23Visual Basic程序设计简明教程1084.3 If语句If语句的嵌套If 表达式1 Then If 表达式1_1 Then 语句块1_1 Else 语句块1_2 End IfElse If 表达式2_1 Then 语句

63、块2_1 Else 语句块2_2 End If End If是是否否是是否否是是表达式表达式1_1为真真语句句块1_1语句句块1_2语句句块2_1表达式表达式2_1为真真语句句块2_2否否表达式表达式1为真真2024/7/23Visual Basic程序设计简明教程109例4.4 用If语句的嵌套实现例4.3 。Private Sub Command4_Click()Dim x As Single, y!x=Val(InputBox(请输入x的值)If x8 Then 判断x是否小于8If xb,a,b) 2024/7/23Visual Basic程序设计简明教程1114.4 Select C

64、ase语句 Select Case 表达式 Case 表达式列表1 语句块1 Case 表达式列表2 语句块2 Case 表达式列表n 语句块n Case Else 语句块n+1 End Select 先先计算表达式的算表达式的值,然后与然后与n个个Case右右边的的表达式列表逐一比表达式列表逐一比较。如果和其中某个表达式如果和其中某个表达式列表的列表的值相等或者匹配,相等或者匹配,则执行行该Case后面的后面的语句句块;如果与所有的;如果与所有的Case表达式列表均不匹表达式列表均不匹配,配,则执行行Case Else后面的后面的语句句块。执行流程行流程2024/7/23Visual Bas

65、ic程序设计简明教程112作息时间表的实现 Select Case t t为输入的查询时间 Case 7,14 MsgBox (起床) Case 7.5 To 8,12 To 12.5,17.5 To 18 MsgBox (用餐) Case 8.5 To 11.5,14.5 To 17 MsgBox (上课) Case 19 To 21 MsgBox (自习) Case 0 To 7,13 To 14,Is =22 MsgBox (睡觉) Case Else MsgBox (自由活动) End Select Private Sub Command5_Click() Dim x As Singl

66、e, y! x = Val(InputBox(请输入请输入x的值的值) Select Case x Case Is 2 x小于小于2 y = 2 * x + 1 Case Is 8 x在在2和和8之间之间 y = x - 3 Case Else x8 y = 3 * x - 1 End Select Print y=; y End Sub例例4.5 用用Select Case语句句实现例例4.32024/7/23Visual Basic程序设计简明教程1134.5 框架框架(框架(Frame)控件是一种容器型控件,)控件是一种容器型控件,用于将窗体中的控件分用于将窗体中的控件分组。在工具箱中表

67、示在工具箱中表示为:为:框架的常用属性框架的常用属性 属性属性作用作用Name设置框架的置框架的对象名象名Caption设置框架所置框架所显示的文本信息示的文本信息Enabled确定框架是否有效确定框架是否有效Visible确定框架是否可确定框架是否可见2024/7/23Visual Basic程序设计简明教程114说明: 程序第一个框架控件的默认对象名是Frame1,依次类推。Caption属性设定了框架的标题,如果属性值为空串,则框架控件在外观上与一个封闭的矩形框类似。当Enabled的属性值是False时,不仅框架失效,而且框架内的所有控件也都会失效。当Visible的属性值是False

68、时,则框架连同其中的所有控件都将被隐藏。2024/7/23Visual Basic程序设计简明教程1154.6 单选按钮单选按按钮(OptionButton)控件具有)控件具有选择功能,在程序界面中必功能,在程序界面中必须成成组出出现。在工具箱中表示。在工具箱中表示为:属性属性作用作用Name设置置单选按按钮的的对象名象名Caption设置置单选按按钮的的标题Alignment设置置单选按按钮标题的位置,默的位置,默认值是是0,表示,表示单选按按钮在左在左边,标题在右在右边Value设置置单选按按钮的状的状态,默,默认值是是FalseStyle设置置单选按按钮的外的外观,默,默认值是是0,表示

69、,表示标准方式准方式Picture设置在置在单选按按钮上上显示的示的图片文件片文件单选按钮的常用属性单选按钮的常用属性单选按钮的常用属性单选按钮的常用属性 2024/7/23Visual Basic程序设计简明教程116说明: 程序第一个单选按钮控件的默认对象名是Option1,依次类推。Value是单选按钮控件最重要的属性,其属性值有2个,True和False。True表示单选按钮被选中,而False表示未被选中。如果某一个单选按钮的Value属性值是True,必然意味着同组中其它单选按钮的Value属性值是False。Style的属性值有2个,0和1。1表示图形方式,此时单选按钮的外观类似

70、于命令按钮。如果单选按钮未被选中,就会显示由Picture属性指定的图片文件;如果单选按钮被选中,则会显示由DownPicture属性指定的图片文件。2024/7/23Visual Basic程序设计简明教程1174.7 复选框复选框(复选框(CheckBox)控件也具有选择)控件也具有选择功能,一般在程序界面中成组出现,功能,一般在程序界面中成组出现,用户在一组复选框中一次可以选择多用户在一组复选框中一次可以选择多个。在工具箱中表示为:个。在工具箱中表示为:复选框的常用属性复选框的常用属性 属性属性作用作用Name设置复置复选框的框的对象名象名Caption设置复置复选框的框的标题Align

71、ment设置复置复选框框标题的位置,默的位置,默认值是是0,表示复,表示复选框在左框在左边,标题在右在右边Value设置复置复选框的状框的状态,默,默认值是是0Style设置复置复选框的外框的外观,默,默认值是是0,表示,表示标准方式准方式Picture设置在复置在复选框上框上显示的示的图片文件片文件2024/7/23Visual Basic程序设计简明教程118说明: 程序第一个复选框控件的默认对象名是Check1,依次类推。Value是复选框控件最重要的属性,其属性值有3个。常量常量值值含义含义Unchecked0未被未被选中中Checked1被被选中中Grayed2复复选框框变成灰色,禁

72、止用成灰色,禁止用户选择2024/7/23119第5章循环结构本章内容: WhileWhile语句语句 Do-LoopDo-Loop语句语句 For-NextFor-Next语句语句 流程转向语句流程转向语句 循环嵌套循环嵌套 循环算法循环算法 图片框图片框 图像框图像框 计时器计时器 2024/7/23Visual Basic程序设计简明教程1205.1 While语句 While 表达式表达式 循环体循环体 Wend 否否是是表达式为真表达式为真循环体循环体语句语句2024/7/23Visual Basic程序设计简明教程121说明: (1)循环语句的表达式一般是关系或者逻辑表达式,以构成

73、循环条件。如果是算术表达式,则按照“非0为真”的原则,把算术表达式的值转换为逻辑值。(2)应该把需要重复执行的语句组成循环体。(3)如果在循环之前需要先判断条件,则采用while语句较为合适。 2024/7/23Visual Basic程序设计简明教程122例5.1 1+2+3+4+5+100=? Private Sub Command1_Click( ) Dim i As Integer, sum As Integer i = 1 循环初值 sum = 0 While i = 100 循环条件 sum = sum + i 循环体 i = i + 1 Wend Print sum=; sum

74、End Sub返回返回返回返回2024/7/23Visual Basic程序设计简明教程1235.2 Do-Loop语句(1)Do While-Loop Do While 表达式 循环体 Loop(2)Do-Loop While Do 循环体循环体 Loop While 表达式表达式 2024/7/23Visual Basic程序设计简明教程124Do-Loop While Do-Loop While的循环条件位于循环语句的后面,属于“直到型”循环,不断地执行循环体,直到循环条件不成立为止。 否否是是循环体循环体表达式为真表达式为真语句语句2024/7/23Visual Basic程序设计简明

75、教程125说明: (1 1)注意)注意Do-Loop WhileDo-Loop While与与Do While-LoopDo While-Loop的区的区别。由于别。由于Do-Loop WhileDo-Loop While是先执行循环体后判断循环是先执行循环体后判断循环条件,所以它的循环体至少执行一次,而条件,所以它的循环体至少执行一次,而Do While-Do While-LoopLoop语句的循环体有可能一次也不执行。语句的循环体有可能一次也不执行。(2 2)如果需要先执行再判断循环条件,则采用)如果需要先执行再判断循环条件,则采用Do-Loop WhileDo-Loop While较为合

76、适。较为合适。 2024/7/23Visual Basic程序设计简明教程126例5.2 1+2+3+4+5+100=? Private Sub Command2_Click()Dim i As Integer, sum As Integeri = 1 循环初值循环初值sum = 0Do sum = sum + i 循环体循环体 i = i + 1Loop While i 4000 Then Exit Do End If sum = sum + i i = i + 1 Loop While i 4000 Then Exit For End If sum = sum + i Next i 5.4

77、 流程转向语句Exit For返回返回返回返回2024/7/23Visual Basic程序设计简明教程1345.5 循环嵌套循环嵌套又称为多重循环,是指在一个循环结构的循环体中又包含另一个完整的循环结构。通常把嵌套在循环体内的循环结构称为内循环,把外层的循环结构称为外循环。在程序中一般把最内层循环的总循环次数作为多重循环的循环次数。 2024/7/23Visual Basic程序设计简明教程135例5.5 打印九九乘法口诀表 Private Sub Command1_Click() Dim i As Integer, j As Integer, s As String For i = 1 T

78、o 9 控制输出行 For j = 1 To i 输出该行的内容 s = j & & i & = & i * j Print Tab(j * 10); s; Next j Print 每一行结束后换行 Next i End Sub返回返回返回返回2024/7/23Visual Basic程序设计简明教程1365.6 循环算法 算法是对某个问题求解过程的描述。算法是对某个问题求解过程的描述。 循环算法主要有穷举法和迭代法,编循环算法主要有穷举法和迭代法,编写循环程序时还经常会用到标志法和计写循环程序时还经常会用到标志法和计数器等技巧。数器等技巧。5.6 循循环算法算法穷举法穷举法穷举法就是穷尽所

79、有的可能,一一列举并进行测试,从中筛选出满足条件的数据。 穷举显然需要使用循环结构,测试则需要使用选择结构。在采用穷举法编写程序时,往往还辅以标志法和计数器等技巧。 2024/7/23Visual Basic程序设计简明教程137例5.6 百马百担问题 Private Sub Command1_Click() Dim x%, y%, z% Print Tab(10); 大马; Tab(15); 中马; Tab(20); 小马 For x = 0 To 33 For y = 0 To 50 z = 100 - x - y If x * 3 + y * 2 + z / 2 = 100 Then P

80、rint Tab(10); x; Tab(15); y; Tab(20); z End If Next y Next x End Sub2024/7/23Visual Basic程序设计简明教程138例5.7 判断自然数x是否为素数 Private Sub Command1_Click() Dim i As Integer, x As Integer, flag As Boolean x = Val(Text1.Text) flag = True For i = 2 To Sqr(x) 穷举 If x Mod i = 0 Then x能被i整除,则肯定不是素数 flag = False 修改标

81、志 Exit For 跳出循环,没有必要再比较 End If Next i If flag = True Then flag为True则表示x为素数 Text2.Text = x & 是素数 Else Text2.Text = x & 不是素数 End If End Sub2024/7/23Visual Basic程序设计简明教程1395.6 循环算法迭代法迭代法的基本思想是,不断地从旧值出发推导出新值,或者说新值是由上一次的旧值迭代而来。迭代法由迭代初值、迭代公式和迭代次数等要素构成。迭代公式是实现迭代算法的难点,关键是要找出当前一项与上一项之间的迭代关系。 2024/7/23Visual

82、Basic程序设计简明教程140例5.8 计算1!+2!+10!=? Private Sub Command1_Click() Dim i As Integer, sum As Long, p As Long sum = 0 p = 1 For i = 1 To 10 p = p * i 计算i! sum = sum + p 计算累加和 Next i Print sum=; sum End Sub 2024/7/23Visual Basic程序设计简明教程141例5.9 求Fibonacci数列的前20项 Private Sub Command1_Click() Dim i%, j%, f1

83、As Long, f2 As Long, t& f1 = 1 f2 = 1 j = 3 Print Tab(8); f1; Tab(16); f2; 先输出数列最前面的两项 For i = 3 To 20 因为前面已经求出两项,在这里只需要循环18次 t = f1 + f2 求出当前的项,f1是前一项,f2是前二项 Print Tab(j * 8); t; j = j + 1 If i Mod 5 = 0 Then Print j = 1 End If f2 = f1 前一项是下次的前二项 f1 = t 当前项是下次的前一项 Next i End Sub返回返回返回返回2024/7/23Vis

84、ual Basic程序设计简明教程1425.7 图片框 图片框(图片框(PictureBox)控件是一种可以容纳其)控件是一种可以容纳其他控件的容器型控件,它的基本功能是显示图片。他控件的容器型控件,它的基本功能是显示图片。 图片框还可以作为绘制图形的绘图板,甚至能图片框还可以作为绘制图形的绘图板,甚至能够输出文本信息。够输出文本信息。在工具箱中表示为:在工具箱中表示为: 图片框的常用属性图片框的常用属性 属性属性作用作用Name设置置图片框的片框的对象名象名Align确定确定图片框在窗体中的片框在窗体中的显示位置示位置AutoSize确定确定图片框是否能自片框是否能自动调整尺寸以整尺寸以显示

85、全部内容,默示全部内容,默认值是是FalsePicture设置在置在图片框中片框中显示的示的图片文件片文件2024/7/23Visual Basic程序设计简明教程143说明: 程序第一个图片框控件的默认对象名是Picture1,依次类推。 Picture属性值由被显示图片的文件名和路径名组成。在程序运行过程中动态载入图片的方法是: 对象.Picture=LoadPicture(“图片文件路径”)返回返回返回返回2024/7/23Visual Basic程序设计简明教程1445.8 图像框图像框(图像框(Image)控件专门用来显示图片,与)控件专门用来显示图片,与图片框相比,显示图片时所需资

86、源较少,显示速图片框相比,显示图片时所需资源较少,显示速度也更快。度也更快。如果只是在界面中显示图片,则应该优先考虑如果只是在界面中显示图片,则应该优先考虑使用图像框控件。使用图像框控件。在工具箱中表示为:在工具箱中表示为:图像框的常用属性图像框的常用属性 属性属性作用作用Name设置置图像框的像框的对象名象名Picture设置在置在图像框中像框中显示的示的图片文件片文件Stretch确定确定图片是否能自片是否能自动调整尺寸以适整尺寸以适应图像框,默像框,默认值是是False2024/7/23Visual Basic程序设计简明教程145说明:程序第一个图像框控件的默认对象名是Image1,依

87、次类推。当Stretch属性值是False时,图像框可以根据显示的图片自动调整尺寸;当Stretch属性值是True时,图片可以根据图像框自动调整尺寸,但是这有可能导致图片显示时出现变形。 返回返回返回返回2024/7/23Visual Basic程序设计简明教程1465.9 计时器 计时器(计时器(Timer)控件能够有规律地以一)控件能够有规律地以一定的时间间隔来触发定的时间间隔来触发Timer事件过程,执行事件过程,执行指定的操作,从而实现特定的功能。指定的操作,从而实现特定的功能。 计时器属于后台控件,程序运行时看不到。计时器属于后台控件,程序运行时看不到。在工具箱中表示为:在工具箱中

88、表示为:计时器的常用属性计时器的常用属性属性属性作用作用Name设置置计时器的器的对象名象名Enabled确定确定计时器是否有效,默器是否有效,默认值是是True,表示有效,表示有效Interval设置置计时器引器引发Timer事件的事件的时间间隔,默隔,默认值是是02024/7/23Visual Basic程序设计简明教程147说明:程序第一个计时器控件的默认对象名是Time1,依次类推。当某个计时器的Enabled属性值是True时,计时器开始工作,并每隔一个固定的时间周期就引发Timer事件。Interval是计时器最重要的属性,其属性值是一个整数,即设置的时间间隔,单位是毫秒。 返回返

89、回返回返回2024/7/23148第6章数组本章内容: 一维数组一维数组 二维数组二维数组 动态数组动态数组 控件数组控件数组 自定义类型自定义类型 字符串的处理字符串的处理 列表框列表框 组合框组合框 2024/7/23Visual Basic程序设计简明教程1496.1 一维数组l一维数组的定义方式:一维数组的定义方式: Dim Dim 数组名数组名(下界下界 ToTo上界上界) As ) As 类型类型l例如:例如: Dim a(1 To 5) As IntegerDim a(1 To 5) As Integerl 数组的元素在内存中按顺序存放,数组所数组的元素在内存中按顺序存放,数组所

90、占据的字节数是各元素所占字节数之和。占据的字节数是各元素所占字节数之和。 2024/7/23Visual Basic程序设计简明教程150说明: (1)数组名应该是一个合法的标识符,数组中所有元素的数据类型都相同。(2)下界和上界均为整型常量表达式,它们规定了元素下标的取值范围。下界最小可以是-32768,上界最大可以是32767。应该满足下界上界,一维数组的长度即元素的个数为上界-下界+1。(3)对于没有赋初值的数组元素,如果是数值型,系统都自动赋以0;如果是字符型,系统都自动赋以空串;如果是逻辑型,系统都自动赋以False。(4)如果定义数组时省略了下界,则下界默认是0。2024/7/23

91、Visual Basic程序设计简明教程151数组元素的引用 元素引用的形式是: 数组名(下标)例如: a(4)=a(1)*a(3)+a(2)在引用数组的元素时,应注意下标值不要超过数组的范围。2024/7/23Visual Basic程序设计简明教程152例6.1 计算全班学生的VB平均成绩 Const N As Integer = 30 Private Sub Command1_Click() Dim a(1 To N) As Integer, i As Integer, sum As Integer, aver! For i = 1 To N 输入学生成绩 a(i) = Val(Inpu

92、tBox(请输入第 & i & 位学生的成绩) Next i sum = 0 For i = 1 To N 累加学生成绩 sum = sum + a(i) Next i aver = sum / N 计算平均成绩 Picture1.Print 平均成绩是; aver End Sub2024/7/23Visual Basic程序设计简明教程153 Const N As Integer = 30 Private Sub Command2_Click() Dim a(1 To N) As String, i%, j%, flag As Boolean, name$ For i = 1 To N 输入

93、学生姓名 a(i) = InputBox(请输入第 & i & 位学生的姓名) Next i Do name = InputBox(请输入要查询的学生姓名) flag = False For i = 1 To N If a(i) = name Then flag = True 找到,改变标志 Exit For End If Next i If flag = True Then Picture1.Print 找到姓名为; name; 的学生 Else Picture1.Print 没有找到姓名为; name; 的学生 End If j = MsgBox(还要继续查询吗?, vbYesNo + v

94、bquestin) Loop While j = 6 如果按下“是”按钮,则继续循环 End Sub 例例6.2 查询学学生生2024/7/23Visual Basic程序设计简明教程154Const N As Integer = 30Private Sub Command3_Click()Dim a(1 To N) As Integer, i As Integer, max As Integer, min As IntegerFor i = 1 To N 输入学生成绩输入学生成绩 a(i) = Val(InputBox(请输入第请输入第 & i & 位学生的成绩位学生的成绩)Next ima

95、x = a(1) 假定第一位学生的成绩是最高分假定第一位学生的成绩是最高分min = a(1) 假定第一位学生的成绩是最低分假定第一位学生的成绩是最低分For i = 2 To N If max a(i) Then min = a(i) 确保确保min是当前最低分是当前最低分 End IfNext iPicture1.Print 最高分是最高分是; maxPicture1.Print 最低分是最低分是; minEnd Sub 例例6.3 统计全班全班最高分和最低分最高分和最低分返回返回2024/7/23Visual Basic程序设计简明教程1556.2 二维数组l二维数组的定义方式:二维数组

96、的定义方式:Dim 数组名数组名(下界下界 To上界上界,下界下界 To上界上界) As 类型类型l例如:例如:Dim a(1 To 2,1 To 2) As Integera(1,1)a(1,2)a(2,1)a(2,2)2024/7/23Visual Basic程序设计简明教程156说明: (1)通常把二维数组的第一个下标形象地称为行下标,第二个下标称为列下标。(2)二维数组的元素个数为行的长度列的长度,行或者列的长度为各自的上界-下界+1。(3)类似地还可以定义多维数组。例如: Dim a(1 To 2,1 To 2,1 To 2) As Integer 共有8个元素的三维数组2024/7

97、/23Visual Basic程序设计简明教程157例6.4 求两个33矩阵的和。 Private Sub Command1_Click() Const N As Integer = 3 Dim a(1 To N, 1 To N) As Integer, b(1 To N, 1 To N) As Integer Dim c(1 To N, 1 To N) As Integer, i As Integer, j As Integer For i = 1 To N For j = 1 To N a(i, j) = Val(InputBox(输入a( & i & , & j & ) 输入数据存入数组

98、a Next j Next i MsgBox (矩阵A的数据输入完毕!) For i = 1 To N For j = 1 To N b(i, j) = Val(InputBox(输入b( & i & , & j & ) 输入数据存入数组b Next j Next i MsgBox (矩阵B的数据输入完毕!)2024/7/23Visual Basic程序设计简明教程158 Picture1.Print 开始输出矩阵C的数据 For i = 1 To N For j = 1 To N c(i, j) = a(i, j) + b(i, j) 矩阵求和 Next j Next i For i = 1

99、 To N For j = 1 To N Picture1.Print Tab(j * 4); c(i, j); 输出数组c Next j Picture1.Print 输出一行数据,另换一行 Next i End Sub2024/7/23Visual Basic程序设计简明教程159输入输入输出输出返回返回2024/7/23Visual Basic程序设计简明教程1606.3 动态数组动态数组在程序运行过程中才被分配存储空间,它的定义方式是: Dim 数组名() As 类型例如: Dim a() As Integer 2024/7/23Visual Basic程序设计简明教程161数组名赋值

100、 Dim a(1 To 3) As Integer, b() As Integer, i% For i = 1 To 3 对静态数组a的所有元素赋值 a(i) = i Next i b = a 数组名赋值 For Each x In b 输出动态数组b中所有元素的值 Print x Next x2024/7/23Visual Basic程序设计简明教程162两个函数的格式是: LBound(a,n) UBound(a,n)说明:(1)参数a是数组名。参数n表示数组a的第n维,如果省略,则默认是1。(2)LBound函数返回数组a第n维的下界,UBound函数返回数组a第n维的上界。LBound

101、和UBound函数2024/7/23Visual Basic程序设计简明教程163Array函数 Dim b(), i% b = Array(1, 2, 3) For i = 0 To 2 Print b(i) Next i 2024/7/23Visual Basic程序设计简明教程164ReDim语句使用ReDim语句,确定动态数组的维数以及元素下标的下界和上界。其一般形式为: ReDim Preserve数组名(下界 To上界,下界 To 上界,) As 类型2024/7/23Visual Basic程序设计简明教程165说明:(1)可以多次使用ReDim语句对某个动态数组进行设置。(2)

102、数组的维数以及元素下标的下界和上界都能够改变,甚至下界和上界可以是有了确定值的变量,但是数组的类型不能改变。(3)每次执行ReDim语句之后,数组中所有元素的值将会丢失。如果想保留数组元素的值,则可以使用关键字Preserve。 2024/7/23Visual Basic程序设计简明教程166例6.6 计算Fibonacci数列的前n项 Private Sub Command1_Click() Dim a() As Long, n As Integer, i As Integer, j% n = Val(Text1.Text) ReDim a(1 To n) 设置动态数组的长度 For i =

103、 1 To n If i = 1 Or i = 2 Then a(i) = 1 第一项和第二项都是1 Else a(i) = a(i - 1) + a(i - 2) 每一项是前两项之和 End If Next i j = 0 For i = 1 To n Picture1.Print Tab(j * 7); a(i); j = j + 1 If i Mod 5 = 0 Then Picture1.Print j = 0 End If Next i End Sub返回返回2024/7/23Visual Basic程序设计简明教程1676.4 控件数组控件数组的创建方法:(1)复制现有的控件,然后

104、粘贴在窗体中。(2)为现有的同类控件取同一个对象名,一般是与第一个控件的名字一致。这时系统会提示是否创建控件数组,选择“是”即可。 2024/7/23Visual Basic程序设计简明教程168例6.7 用控件数组改写例4.6 Private Sub Command1_Click() Dim s As String, i As Integer Dim t1(3) As String, t2(4) As String t1(0) = 计算机: t1(1) = 汽车 t1(2) = 机械: t1(3) = 管理 t2(0) = 足球 : t2(1) = 围棋 t2(2) = 游泳 : t2(3)

105、 = 文学 t2(4) = 上网 s = s + 姓名: + Text1.Text + vbCr s = s + 年龄: + Text2.Text + vbCr For i = 0 To 3 If Option1(i).Value = True Then s = s + t1(i) + 系 + vbCr Exit For End If Next I s = s + 爱好: For i = 0 To 4 If Check1(i).Value = 1 Then s = s + t2(i) End If Next i MsgBox (s) End Sub 返回返回2024/7/23Visual Ba

106、sic程序设计简明教程1696.5 自定义类型自定义的类型又称为记录类型,它由一些基本类型的成员所组成。定义记录类型的关键字是Type,其一般形式为: Type 记录类型名 成员表列 End Type 2024/7/23Visual Basic程序设计简明教程170说明: (1)对成员表列中的所有成员都应进行类型声明。成员声明的形式为: 成员名 As 类型(2)记录类型只是刻画了一个数据结构的模型,并没有定义实例,也不要求分配实际的内存空间。在程序中使用记录类型时,必须定义记录变量。 2024/7/23Visual Basic程序设计简明教程171Student类型 Type Student

107、sno As Long 学号 name As String 姓名 sex As String 性别 score As Integer 成绩 End Type lDim s1 As Student,s2 As Studentl引用记录变量成员的形式为:引用记录变量成员的形式为: 记录变量名记录变量名.成员名成员名l例如:例如: s1.sno=2051226记录变量记录变量2024/7/23Visual Basic程序设计简明教程172记录数组 Dim s(1 To 10) As Student访问记录数组元素的成员: 记录数组名(下标).成员名例如: s(2).sno=2051227 Text1

108、.Text= s(6).name 返回返回2024/7/23Visual Basic程序设计简明教程1736.6 字符串的处理格式转换 Val函数 Str函数 Asc函数 Chr函数 UCase函数 LCase函数2024/7/23Visual Basic程序设计简明教程1746.6 字符串的处理统计长度函数Len用于统计字符串的长度即所包含字符的个数,其格式是: Len(s)例如Len(VB6.0环境)得到的值是7。2024/7/23Visual Basic程序设计简明教程1756.6 字符串的处理删除多余的空格LTrim(s)RTrim(s)Trim(s) 函数LTrim删除字符串中前面的

109、空格,函数RTrim删除字符串中后面的空格,函数Trim则删除字符串中前后两边的空格。 2024/7/23Visual Basic程序设计简明教程1766.6 字符串的处理生成字符串 String函数 String(m,s|n) Space函数 Space(n) (1)InStr函数函数 InStr(n,s1,s2) (2)Replace函数函数 Replace(s1,s2,s3,m,n,) 6.6 字符串的处理查找和替换查找和替换2024/7/23Visual Basic程序设计简明教程1776.6 字符串的处理截取子串 Left函数 Left(s,n) Right函数 Right(s,n)

110、 Mid函数 Mid(s,m,n) Split函数 Split(s,d,n,) 2024/7/23Visual Basic程序设计简明教程178 Private Sub Command1_Click() Dim a() As String, i%, j%, flag As Boolean, name$ a = Split(Text1.Text) 输入学生姓名 Do name = InputBox(请输入要查询的学生姓名) flag = False For i = LBound(a) To UBound(a) If a(i) = name Then flag = True 找到,改变标志 Exi

111、t For End If Next i If fl ag = True Then Picture1.Print 找到姓名为; name; 的学生 Else Picture1.Print 没有找到姓名为; name; 的学生 End If j = MsgBox(还要继续查询吗?, vbYesNo + vbquestin) Loop While j = 6 End Sub例6.9 改写例6.2 2024/7/23Visual Basic程序设计简明教程179返回返回2024/7/23Visual Basic程序设计简明教程1806.7 列表框列表框(ListBox)控件能够显示一个项目列表,用户可

112、以从中选择一个或者多个项目。如果项目列表中的项目过多而无法一次全部显示,则列表框将自动出现滚动条。在工具箱中图示为: 2024/7/23Visual Basic程序设计简明教程181列表框的常用属性 属性属性作用作用Name设置列表框的置列表框的对象名象名Text确定用确定用户当前所当前所选的的项目,目,该属性不能在属性窗口中属性不能在属性窗口中设置,只能置,只能在程序中在程序中设置或引用置或引用List设置列表框所置列表框所显示的示的项目列表目列表ListCount确定列表框中确定列表框中项目的目的总数,数,该属性只能在程序中属性只能在程序中设置或引用置或引用ListIndex确定当前确定当

113、前选中的中的项目在目在项目列表中的索引目列表中的索引值,该属性只能在程序属性只能在程序中中设置或引用置或引用Selected确定确定项目列表中某个目列表中某个项目是否被目是否被选中,中,该属性只能在程序中属性只能在程序中设置置或引用或引用MultiSelect确定列表框是否允确定列表框是否允许多多选Style设置列表框的外置列表框的外观,默,默认值是是0,表示,表示标准方式;如果是准方式;如果是1,则项目的左目的左边有复有复选框框2024/7/23Visual Basic程序设计简明教程182说明:(1)程序第一个列表框控件的默认对象名是List1,依次类推。(2)List是列表框控件最重要的

114、属性之一,其属性值是一个 字符串数组,每一个元素存放项目列表其中的一个项目。(3)在程序中ListIndex和ListCount往往与List属性配合使用。如果用户未选择任何项目, ListIndex的值是-1;如果用户选中项目列表中的第一项,ListIndex的值是0;如果用户选中项目列表中的最后一项,则ListIndex的值是ListCount-1。(4)Selected的属性值是一个逻辑型数组,其每一个元素与项目列表中的每一个项目一一对应。如果某个项目被用户选中,Selected数组相应元素的值是True;如果未被选中,则相应元素的值是False。 2024/7/23Visual Bas

115、ic程序设计简明教程183列表框的常用方法 方法方法功能功能AddItem向列表框中添加一个向列表框中添加一个项目目RemoveItem从列表框中从列表框中删除一个除一个项目目Clear清除列表框中所有清除列表框中所有项目目 2024/7/23Visual Basic程序设计简明教程184说明: (1)AddItem方法的调用形式为: 对象.AddItem Item,Index (2)RemoveItem方法的调用形式为: 对象. RemoveItem Index 例如删除列表框List1中的第一个项 目,可以写为:List1.RemoveItem 0返回返回2024/7/23Visual B

116、asic程序设计简明教程1856.8 组合框组合框(ComboBox)控件组合了文本框和列表框的特性,用户既可以在它的文本框部分输入文本以选择项目,也可以在它的列表框部分选择项目。当用户在列表框部分选定某个项目之后,该项目会自动出现在文本框部分。在工具箱中表示为: 2024/7/23Visual Basic程序设计简明教程186 组合框的常用属性 属性属性作用作用Name设置置组合框的合框的对象名象名Text确定用确定用户当前当前选择的的项目或者在文本框部分目或者在文本框部分输入的入的项目目List设置置组合框所合框所显示的示的项目列表目列表ListCount确定确定组合框中合框中项目的目的总

117、数数ListIndex确定当前确定当前选中的中的项目在目在项目列表中的索引目列表中的索引值Selected确定确定项目列表中某个目列表中某个项目是否被目是否被选中中Style设置置组合框的合框的类型型2024/7/23Visual Basic程序设计简明教程187说明:(1)程序第一个组合框控件的默认对象名是Combo1,依次类推。(2)Style的属性值有3个,默认值是0。 常量常量值值含义含义Dropdown Combo0下拉式下拉式组合框合框Simple Combo1简单组合框合框Dropdown List2下拉式列表框下拉式列表框2024/7/23Visual Basic程序设计简明教

118、程188简单组合简单组合框框下拉式下拉式组合框组合框下拉式列表框下拉式列表框返回返回2024/7/23189第7章过程本章内容: 概述概述 子过程子过程 函数过程函数过程 事件过程事件过程 参数传递的方式参数传递的方式 嵌套调用与递归调用嵌套调用与递归调用 作用域与生存期作用域与生存期 滚动条滚动条 直线和形状直线和形状 2024/7/23Visual Basic程序设计简明教程1907.1 概述lVB的应用程序是由过程(的应用程序是由过程(Procedure)组成的,)组成的,代码设计阶段的主要工作就是编写过程。代码设计阶段的主要工作就是编写过程。lVB通过事件驱动方式执行程序,调用事件过程

119、通过事件驱动方式执行程序,调用事件过程完成对事件的响应。完成对事件的响应。l事件过程(事件过程(Event Procedure)虽然是)虽然是VB程序程序的主体,但是有时也需要在程序中编写通用过程,的主体,但是有时也需要在程序中编写通用过程,供事件过程或者其他通用过程调用。供事件过程或者其他通用过程调用。l如果过程如果过程A调用了过程调用了过程B,则约定把,则约定把A称为主调称为主调过程,过程,B称为被调过程。称为被调过程。 2024/7/23Visual Basic程序设计简明教程191说明: 根据通用过程是否有返回值,可以分为Sub过程和Function过程。Sub过程又称为子过程,它往往

120、用于完成一些操作,而这些操作不需要有返回值。Function过程又称为函数过程,或者简称为函数。函数过程一般应有一个返回值。 返回返回返回返回2024/7/23Visual Basic程序设计简明教程1927.2 子过程子过程的定义 Public|Private Sub 过程名(形参列表) 变量定义语句 执行语句 Exit Sub End Sub2024/7/23Visual Basic程序设计简明教程193说明:关键字Sub指明了过程的性质,关键字Public和Private则指明了过程的作用域。括号内为形参列表,用于从主调过程接收数据。如果过程不需要参数,则可以省略形参列表。形参由传递方式

121、、形参名和类型组成,形参之间用逗号分开。形参定义的格式是: ByVal 形参名 As 数据类型 ByVal是对形参进行传递方式声明,表示所声明的形参是传值参数。如果ByVal被省略,则默认该形参是引用参数(ByRef)。过程头部和End Sub之间的部分称为过程体,可以在过程体中定义变量,过程完成的工作主要是在过程体中进行的。如果在运行子过程时需要提前退出,则可以使用Exit Sub语句。2024/7/23Visual Basic程序设计简明教程194创建子过程 第一种方法是在代码窗口中直接定义,输第一种方法是在代码窗口中直接定义,输入过程头部之后按下回车键,此时会自动出现入过程头部之后按下回

122、车键,此时会自动出现End Sub,从而生成过程的框架。,从而生成过程的框架。第二种方法是使用第二种方法是使用“添加过程添加过程”对话框,对话框,在在“工具工具”菜单中选择菜单中选择“添加过程添加过程”命令,打命令,打开开“添加过程添加过程”对话框。对话框。2024/7/23Visual Basic程序设计简明教程1957.2 子过程子过程的调用l通用过程不属于任何一个对象,它不由事件驱通用过程不属于任何一个对象,它不由事件驱动,必须由其他过程调用才会被执行。动,必须由其他过程调用才会被执行。l子过程调用语句有两种形式:子过程调用语句有两种形式: Call 过程名过程名(实参列表实参列表) 过

123、程名过程名 实参列表实参列表2024/7/23Visual Basic程序设计简明教程196说明:(1)第一种调用形式使用了关键字)第一种调用形式使用了关键字Call,而第二种调用形,而第二种调用形式不仅没有式不仅没有Call,并且也没有括号。,并且也没有括号。(2)实参即实际参数,表示传递给被调过程的一些必要)实参即实际参数,表示传递给被调过程的一些必要数据,实参之间用逗号隔开。如果调用时没有实参,则可数据,实参之间用逗号隔开。如果调用时没有实参,则可以省略实参列表和括号。以省略实参列表和括号。(3)主调过程调用被调过程时,经常需要向被调过程传)主调过程调用被调过程时,经常需要向被调过程传递

124、一些数据,这主要是通过实参与形参的结合来完成的。递一些数据,这主要是通过实参与形参的结合来完成的。形参是变量,过程调用时才被分配内存空间,过程调用语形参是变量,过程调用时才被分配内存空间,过程调用语句中的实参会把数据传递给相应的形参。句中的实参会把数据传递给相应的形参。(4) VB语言要求实参与形参个数相等,类型尽量保持一语言要求实参与形参个数相等,类型尽量保持一致。实参向形参传递数据时,遵循从左向右,一一对应的致。实参向形参传递数据时,遵循从左向右,一一对应的规则。规则。 2024/7/23Visual Basic程序设计简明教程197例7.1 计算n! Private Sub Comman

125、d1_Click() Dim n As Integer n = Val(Text1.Text) Call fac(n) 调用子过程 End Sub2024/7/23Visual Basic程序设计简明教程198 Private Sub fac(ByVal n As Integer) Dim s As Long, i As Integer s = 1 For i = 1 To n s = s * i Next i Text2.Text = Str(s) 输出n的阶乘 End Sub返回返回返回返回2024/7/23Visual Basic程序设计简明教程1997.3 函数过程函数过程的定义 Pu

126、blic|Private Function 过程名(形参列表) As 类型 变量定义语句 执行语句 Exit Function End Function2024/7/23Visual Basic程序设计简明教程200说明: (1)函数过程的语法与子过程非常相似,其定义的关键字是Function。(2)过程头部右端的As 类型是指函数过程的类型,即返回值的类型。(3)函数过程的返回值通过对函数名赋值来指定,如下所示:函数名=表达式 这样的赋值语句在函数过程的过程体中一般至少应出现一次,作用是确定函数过程的返回值。一旦调用结束,系统就会把返回值带回到主调过程的调用处。(4)如果在运行函数过程时需要

127、提前退出,则可以使用Exit Function语句。2024/7/23Visual Basic程序设计简明教程201变量=函数过程名(实参列表)函数调用作为表达式,出现在赋值语句的右侧。调用时应给出相应的实参列表,使得实参与形参相结合。执行这条赋值语句时,先对函数过程进行调用,然后把过程的返回值带回来并赋给某个变量,从而使主调过程获得这个返回值。 7.3 函数过程函数过程的调用2024/7/23Visual Basic程序设计简明教程202例7.3 计算n! Private Sub Command1_Click() Dim s As Long, n As Integer n = Val(Tex

128、t1.Text) s = fac(n) 调用函数过程,得到返回值 Text2.Text = Str(s) End Sub Private Function fac(ByVal n As Integer) As Long 定义函数过程 Dim s As Long, i As Integer s = 1 For i = 1 To n s = s * i Next i fac = s 确定函数过程的返回值 End Function返回返回返回返回2024/7/23Visual Basic程序设计简明教程2037.4 事件过程 Private Sub 对象名_事件名(形参列表) 变量定义语句 执行语句

129、 End Sub2024/7/23Visual Basic程序设计简明教程204说明:(1)事件过程的名字是由对象名、下划线(_)和事件名组成,对象可以是窗体或者控件。(2)单击和双击等事件的事件过程是没有参数的,而有些事件过程则需要参数,以接收必要的数据。 2024/7/23Visual Basic程序设计简明教程205例7.5 设计一个简易的计算器 在框架Frame1中创建一个命令按钮控件数组Command1,它有4个元素,分别对应“+”、“-”、“”和“”等4个命令按钮。创建一个文本框控件数组Text1,它有3个元素,第一个元素对应的文本框负责输入左操作数,第二个元素对应的文本框负责输入

130、右操作数,第三个元素对应的文本框则负责输出运算的结果。 2024/7/23Visual Basic程序设计简明教程206 Private Sub Command1_Click(Index As Integer) Label2.Caption = Command1(Index).Caption 显示运算符 Select Case Index Case 0 加 Text1(2).Text = Val(Text1(0).Text) + Val(Text1(1).Text) Case 1 减 Text1(2).Text = Val(Text1(0).Text) - Val(Text1(1).Text)

131、 Case 2 乘 Text1(2).Text = Val(Text1(0).Text) * Val(Text1(1).Text) Case 3 除 If Val(Text1(1).Text) 0 Then 除数不能为0 Text1(2).Text = Val(Text1(0).Text) / Val(Text1(1).Text) Else MsgBox (除数不能为0!) Text1(1).Text = Text1(1).SetFocus End If End Select End Sub Private Sub Command2_Click() Dim i As Integer For i

132、 = 0 To 2 Text1(i).Text = 清除操作数和运算结清除操作数和运算结果果 Next i Label2.Caption = 清除运算符清除运算符 End Sub 简易计算器简易计算器简易计算器简易计算器的代码实现的代码实现的代码实现的代码实现2024/7/23Visual Basic程序设计简明教程207 Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer) If KeyAscii = 13 Then 按下回车键 If IsNumeric(Text1(Index).Text) = False The

133、n MsgBox (必须输入数字!) Text1(Index).Text = Text1(Index).SetFocus End If End If End Sub简易计算器简易计算器简易计算器简易计算器的代码实现的代码实现的代码实现的代码实现返回返回返回返回2024/7/23Visual Basic程序设计简明教程2087.5 参数传递的方式传值调用时把实参的值从左至右,一一传递给各个形参。这种传递是单向的,形参的值发生变化,对实参毫无影响。 实参实参1形参形参1实参实参2形参形参22024/7/23Visual Basic程序设计简明教程209例7.6 交换两个整型变量的值 Sub swa

134、p(ByVal a As Integer, ByVal b As Integer) 传值方式 Dim t As Integer t = a a = b b = t End Sub 2024/7/23Visual Basic程序设计简明教程2107.5 参数传递的方式传引用如果用ByRef对形参进行声明,则表示该参数在调用时采用传引用方式。传引用调用时形参的值发生变化,会使实参的值也同步发生变化。 2024/7/23Visual Basic程序设计简明教程211例7.7 传值与传引用 Private Sub Command1_Click() Dim x As Integer, y As Inte

135、ger x = 1 y = 2 Print 过程调用之前: Print x=; x; y=; y Call fun(x, y) 调用子过程 Print 过程调用之后: Print x=; x; y=; y End Sub Sub fun(ByVal x As Integer, ByRef y As Integer) x = x + 1 y = y + 1 修改了实参y的值 Print 过程调用中: Print x=; x; y=; y End Sub 2024/7/23Visual Basic程序设计简明教程2127.5 参数传递的方式传数组可以采用传数组的方式传递成批的数据,具体实现的方法是

136、:1.过程的形参为动态数组,形参数组的类型必须与实参数组的类型一致。2.过程调用时,数组名作为过程的实参。2024/7/23Visual Basic程序设计简明教程213例7.9 求某班VB考试的平均成绩 Const N As Integer = 30 Private Sub Command1_Click() Dim a(1 To N) As Integer, i As Integer, aver As Single For i = 1 To N 输入学生成绩 a(i) = Val(InputBox(请输入第 & i & 位学生的成绩) Next i aver = average(a) 调用函

137、数过程 Picture1.Print 平均成绩是; aver End Sub Function average(b() As Integer) As Single 定义函数过程 Dim i As Integer, sum As Integer sum = 0 For i = LBound(b) To UBound(b) 累加学生成绩 sum = sum + b(i) Next i average = sum / N 确定平均成绩是函数返回值 End Function返回返回返回返回2024/7/23Visual Basic程序设计简明教程2147.6 嵌套调用与递归调用VB语言规定,过程的定义

138、不能嵌套,过程的调用可以嵌套。递归调用是一种既有趣又实用的过程调用形式,它是嵌套调用的特例。 2024/7/23Visual Basic程序设计简明教程2157.6 嵌套调用与递归调用嵌套调用过程A在执行时调用了过程B,过程B在执行时又调用了过程C,这种现象称为嵌套调用。嵌套调用的执行特点可以总结为一句话:层层调用,逐级返回。 Call B()Call C()过程过程A过程过程B过程过程C2024/7/23Visual Basic程序设计简明教程2167.6 嵌套调用与递归调用递归调用在过程的过程体内出现直接或间接调用自身的语句,即过程在执行期间又调用自己的现象,称为递归调用。 2024/7/

139、23Visual Basic程序设计简明教程217例7.11 递归调用求n! Private Sub Command1_Click() Dim s As Long, n As Integer n = Val(Text1.Text) s = fac(n) 调用函数过程 Text2.Text = Str(s) End Sub Private Function fac(ByVal n As Integer) As Long 定义函数过程 Dim s As Long, i As Integer If n = 1 Then s = 1 Else s = n * fac(n - 1) 递归调用 End I

140、f fac = s 确定函数过程的返回值 End Function2024/7/23Visual Basic程序设计简明教程218计算4!的递归过程: s=4*fac(3 )fac(4)fac(3)fac(2)fac(1)s=3*fac(2 )s=2*fac(1 )s=12024/7/23Visual Basic程序设计简明教程219递归要素: 递归公式。使得递归调用不断进行下去的因素,在本例中,递归公式是n!=n(n-1)!。递归终止条件。使得递归调用最终结束的条件,如果没有这个条件,将出现无限递归的情况,最后使程序非正常终止。在本例中,递归终止条件是1!=1。 返回返回返回返回2024/7

141、/23Visual Basic程序设计简明教程2207.7 作用域与生存期作用域作用域是指变量和对象等实体在程序中的有效范围。只有位于实体的作用域中,才能允许访问该实体。VB各种实体的作用域由小到大,主要可以划分为3个层次,它们分别是局部作用域、模块作用域和全局作用域。 2024/7/23Visual Basic程序设计简明教程221局部作用域 在过程内部定义的变量称为局部变量,又称为过程变量。局部变量的作用域是定义它的过程,既可以是事件过程,也可以是通用过程。只有在本过程的内部才能使用局部变量,在此过程之外是不能使用这些变量的。 2024/7/23Visual Basic程序设计简明教程22

142、2举例: Private Sub Command1_Click() 事件过程Command1_Click Dim a As Integer 局部变量a End Sub Private Sub Sub1() 子过程Sub1 Dim a As Integer 局部变量a End Sub2024/7/23Visual Basic程序设计简明教程223说明: (1)在不同的过程中可以定义相同名字的变量。正所谓井水不犯河水,它们分别代表不同的局部变量,在内存中占据不同的空间,互不干扰。(2)过程的形参也是局部变量,其他过程无法使用。 2024/7/23Visual Basic程序设计简明教程224模块作

143、用域 在模块的所有过程之外即通用段,用Dim或者Private定义的变量称为模块变量。在窗体模块中定义的模块变量,又称为窗体变量。模块变量的作用域是定义它的模块,可以被本模块的所有过程共同使用。 2024/7/23Visual Basic程序设计简明教程225举例: Dim a As Integer 模块变量a Private Sub Command1_Click() 事件过程Command1_Click Print a 访问模块变量a End Sub Private Sub Sub1() 子过程Sub1 Dim b As Integer 局部变量b a = a + 1 访问模块变量a End

144、 Sub 2024/7/23Visual Basic程序设计简明教程226模块过程 如果在模块中定义过程时,用Private加以声明,则称为模块过程。在窗体模块中定义的模块过程,又称为窗体过程。模块过程的作用域是定义它的模块,只能被本模块的所有过程所调用,其它模块的过程则无法调用。 2024/7/23Visual Basic程序设计简明教程227全局作用域 在标准模块或者窗体模块的所有过程之外即通用段,用Public定义的变量称为全局变量。全局变量的作用域是定义它的程序,可以被整个工程的所有模块共同使用。 2024/7/23Visual Basic程序设计简明教程2282024/7/23Vis

145、ual Basic程序设计简明教程229说明:(1)在标准模块中定义的全局变量,可以在程序的所有模块中直接使用。如果在不同的标准模块中定义了相同名字的全局变量,则使用时必须指出所在的标准模块名。例如在标准模块Module1和Module2中都定义了全局变量a,则使用时应写为Module1.a和Module2.a。(2)在窗体模块中定义的全局变量,在程序的模块中使用时,必须指出所在的窗体名。例如在窗体模块Form1中定义了全局变量a,则使用时应写为Form1.a。2024/7/23Visual Basic程序设计简明教程230全局过程 如果在模块中定义过程时,用Public加以声明,则称为全局过

146、程。全局过程的作用域是定义它的程序,可以被本程序所有模块中的过程所调用。2024/7/23Visual Basic程序设计简明教程231变量屏蔽 如果具有较大作用域的变量与具有较小作用域的变量同名,当在较小作用域内访问该同名变量时,访问的是具有较小作用域的变量,这种现象称为变量屏蔽。 2024/7/23Visual Basic程序设计简明教程232举例: Dim a As Integer 定义模块变量a Private Sub Command1_Click() Dim a As Integer 定义局部变量a a = 2 访问局部变量a End Sub返回返回返回返回2024/7/23Visu

147、al Basic程序设计简明教程2337.7 作用域与生存期生存期生存期是指实体在程序运行过程中的生命周期。如果实体的生命周期结束,则该实体将会消亡,并由系统自动回收其所占据的内存等资源。2024/7/23Visual Basic程序设计简明教程234动态变量 动态变量是指在程序执行的某一时期,被动态变量是指在程序执行的某一时期,被动态地创建而又动态地撤消的一种变量。动态地创建而又动态地撤消的一种变量。动态变量往往存在于一个程序的局部,创动态变量往往存在于一个程序的局部,创建和撤消都是由系统在程序执行期间自动完成建和撤消都是由系统在程序执行期间自动完成的。的。 Private Sub Comm

148、and1_Click()Dim i As Integer 定义局部变量iFor i = 1 To 3Call Sub1(i)Next iEnd SubPrivate Sub Sub1(m As Integer) 子过程定义Print m=; mEnd Sub 动态变动态变量量量量举举例例例例2024/7/23Visual Basic程序设计简明教程235静态变量 静态变量一般具有全局性质,存储空间在程序的整个运行期间是固定的。静态变量在程序编译时就为其分配存储空间,即程序开始执行时它已经存在,程序执行结束时才撤消其所占内存空间。静态变量语法形式: static 变量名 As 类型2024/7/

149、23Visual Basic程序设计简明教程236静态变量举例 Private Sub Command1_Click() Dim a As Integer, i As Integer 定义局部变量 For i = 1 To 3 a = fun1(i) 函数调用 Print a=; a Next i End Sub Private Function fun1(m As Integer) 函数定义 Static b As Integer 定义静态局部变量 b = b + m fun1 = b 确定函数的返回值 End Function 2024/7/23Visual Basic程序设计简明教程23

150、7静态过程 如果在定义过程时,用static关键字加以声明,则称为静态过程。语法形式: static Sub|Function 过程名(形参列表) 过程体 End Sub|Function返回返回返回返回2024/7/23Visual Basic程序设计简明教程2387.8 滚动条滚动条(ScrollBar)控件通常用来直观地确定数据的位置,也可以作为模糊数据输入的工具。滚动条有水平滚动条(HScrollBar)和垂直滚动条(VScrollBar)两种形式,除了方向之外,这两种滚动条的结构和操作是完全相同的。在工具箱中表示为:2024/7/23Visual Basic程序设计简明教程239滚动

151、条的常用属性 属性属性作用作用Name设置置滚动条的条的对象名象名Max设置置滚动条所能表示的最大条所能表示的最大值Min设置置滚动条所能表示的最小条所能表示的最小值LargeChange单击滚动条的空白条的空白处时,滑,滑块移移动的增量的增量值SmallChage单击滚动条两端的箭条两端的箭头时,滑,滑块移移动的增量的增量值Value滑滑块在在滚动条所条所处位置表示的位置表示的值2024/7/23Visual Basic程序设计简明教程240说明:(1)程序第一个水平滚动条控件的默认对象名是HScroll1,依次类推。如果是垂直滚动条,则其第一个控件的默认对象名是VScroll1。(2)Ma

152、x和Min属性值的取值范围是-3276832767。如果滑块位于水平滚动条的最左端,或者位于垂直滚动条的最上端,Value的属性值就为最小值(Min);如果滑块位于水平滚动条的最右端,或者位于垂直滚动条的最下端,Value的属性值就为最大值(Max)。(3)Value的属性值显然应该在Max和Min的属性值之间。如果在程序中设置Value的属性值,则表示把滑块移动到滚动条的相应位置。2024/7/23Visual Basic程序设计简明教程241滚动条的常用事件 事件事件来源来源Change滚动条的条的Value属性属性值发生改生改变Scroll拖拖动滚动条的滑条的滑块2024/7/23Vis

153、ual Basic程序设计简明教程242说明(1)当用户改动了滑块在滚动条中的位置,就会自动触发Change事件。可以通过Change事件,得知滑块在滚动条中的当前位置。(2)单击滚动条两端的箭头或者空白处时,并不会触发Scroll事件。可以通过Scroll事件,跟踪滑块在滚动条中的动态变化。2024/7/23Visual Basic程序设计简明教程243例7.17 用滚动条设计调色板 在窗体中创建3个水平滚动条,分别用于调整红色、绿色和蓝色3个颜色分量。创建6个标签控件,前3个标签作为滚动条的标题,后3个标签分别用于显示3个颜色分量的当前值。创建一个文本框控件,用于展示调整颜色之后的实际效果

154、。 2024/7/23Visual Basic程序设计简明教程244 Private Sub HScroll1_Change() Text1.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value) Label4.Caption = HScroll1.Value End Sub Private Sub HScroll2_Change() Text1.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value) Label5.Caption = HScroll2

155、.Value End Sub Private Sub HScroll3_Change() Text1.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value) Label6.Caption = HScroll3.Value End Sub 返回返回返回返回2024/7/23Visual Basic程序设计简明教程2457.9 直线和形状直线(Line)控件用于在窗体上绘制直线。形状(Shape)控件用于在窗体上绘制简单的几何图形,它的初始状态是一个矩形。在工具箱中表示为:2024/7/23Visual Basic程序设计简明

156、教程246直线的常用属性 属性属性作用作用Name设置直置直线的的对象名象名BorderColor设置直置直线的的颜色色BorderStyle设置直置直线的的类型型BorderWidth设置直置直线的的宽度,默度,默认值是是1X1设置直置直线起点的横坐起点的横坐标X2设置直置直线终点的横坐点的横坐标Y1设置直置直线起点的起点的纵坐坐标Y2设置直置直线终点的点的纵坐坐标2024/7/23Visual Basic程序设计简明教程247说明:(1)程序第一个直线控件的默认对象名是Line1,第二个直线控件的默认对象名是Line2,依次类推。 (2)BorderStyle的属性值有7个,默认值是1。(

157、3)用直线控件绘制出的图形实际上是一条线段,其起点的坐标是(X1,Y1),终点的坐标是(X2,Y2)。2024/7/23Visual Basic程序设计简明教程248常量常量值值含义含义Transparent0透明透明Solid1实线Dash2虚虚线Dot 3点点线Dash-Dot4点划点划线Dash-Dot-Dot5双点划双点划线Inside Solid6内内实线2024/7/23Visual Basic程序设计简明教程249形状的常用属性 属性属性作用作用Name设置形状的置形状的对象名象名BackColor设置形状的背景色置形状的背景色BackStyle确定形状的背景是否透明,默确定形状

158、的背景是否透明,默认值是是0,表示透明,表示透明BorderColor设置形状置形状边框的框的颜色色BorderStyle设置形状置形状边框的框的类型,默型,默认值是是1,表示,表示实线BorderWidth设置形状置形状边框的框的宽度,默度,默认值是是1FillColor设置形状的填充置形状的填充颜色色FillStyle设置形状的填充置形状的填充样式式Shape设置形状的置形状的类型型2024/7/23Visual Basic程序设计简明教程250说明:(1)程序第一个形状控件的默认对象名是Shape1,依次类推。(2)Shape是形状控件最重要的属性之一,用来确定具体的图形。Shape的属

159、性值有6个,默认值是0。 2024/7/23Visual Basic程序设计简明教程251Shape属性值 常量常量值值含义含义Rectangle0矩形矩形Square1正方形正方形Oval2椭圆形形Circle 3圆形形Rounded Rectangle4圆角矩形角矩形Rounded Square5圆角正方形角正方形2024/7/23Visual Basic程序设计简明教程252例7.18 设计一个能够定时变换颜色和形状的图形 Dim k As Integer 定义模块变量 Private Sub Command1_Click() Timer1.Enabled = True k = 0 En

160、d Sub Private Sub Command2_Click() Timer1.Enabled = False End Sub 2024/7/23Visual Basic程序设计简明教程253 Private Sub Timer1_Timer() If k = 0 Then Shape1.BackColor = vbRed 设置图形的背景色 ElseIf k = 1 Then Shape1.BackColor = vbGreen Else Shape1.BackColor = vbYellow End If Shape1.Shape = k + 1 设置图形的形状 k = (k + 1)

161、Mod 3 End Sub返回返回返回返回2024/7/23254第8章界面设计本章内容: 对话框 菜单 多重窗体 ActiveX控件2024/7/23Visual Basic程序设计简明教程2558.1 对话框l对话框是实现对话框是实现WindowsWindows应用程序和用户应用程序和用户之间进行交互的常用工具,它既可以向之间进行交互的常用工具,它既可以向用户显示信息,也可以供用户输入应用用户显示信息,也可以供用户输入应用程序所需要的数据。程序所需要的数据。lVBVB提供了通用对话框,帮助用户完成一提供了通用对话框,帮助用户完成一些常见操作。除此之外,用户也可以根些常见操作。除此之外,用户

162、也可以根据需要自定义对话框。据需要自定义对话框。 2024/7/23Visual Basic程序设计简明教程2568.1 对话框通用对话框通用对话框(CommonDialog)控件提供了一组标准的系统对话框,便于用户完成打开文件、选择颜色、选择字体以及打印等操作。CommonDialog控件并不是VB的标准控件,而是ActiveX控件,使用时需要添加到工具箱中。在“工程”菜单中选择“部件”命令,然后在“部件”对话框的“控件”选项卡中,选择“Microsoft Common Dialog Control 6.0”,即可添加通用对话框控件。 2024/7/23Visual Basic程序设计简明教

163、程257对CommonDialog控件的属性设置既可以在属性窗口中进行,也可以借助于“属性页”对话框。用鼠标右键单击在窗体上的CommonDialog控件,然后在弹出的菜单中选择“属性”命令,即可打开“属性页”对话框。 2024/7/23Visual Basic程序设计简明教程258通用对话框的常用属性 属性属性作用作用Name设置通用置通用对话框的框的对象名象名DialogTitle设置通用置通用对话框的框的标题Action设置置显示哪一种示哪一种类型的通用型的通用对话框框FileName设置打开或者保存的文件名置打开或者保存的文件名Filter设置在置在“打开打开”对话框或者框或者“另存另

164、存为”对话框中框中显示的文件的示的文件的类型型Color设置置选定的定的颜色色Flags设置通用置通用对话框的默框的默认操作操作2024/7/23Visual Basic程序设计简明教程259说明:(1)程序第一个通用对话框控件的默认对象名是CommonDialog1,依次类推。(2)Action是通用对话框控件最重要的属性之一,其属性值有6个。 2024/7/23Visual Basic程序设计简明教程260Action属性值 值值含义含义1显示示“打开打开”对话框框2显示示“另存另存为”对话框框3显示示“颜色色”对话框框4显示示“字体字体”对话框框5显示示“打印打印”对话框框6显示示“帮助

165、帮助”对话框框2024/7/23Visual Basic程序设计简明教程261l例如使例如使CommonDialog1对象象显示示“颜色色”对话框,可以框,可以写写为:CommonDialog1.Action=3l在在“打开打开”对话框或者框或者“另存另存为”对话框中,通框中,通过FileName属性可以得到用属性可以得到用户所所选择的文件名。的文件名。lFilter属性也称属性也称为过滤器,它使得在通用器,它使得在通用对话框中只框中只显示指示指定定类型的文件,其属性型的文件,其属性值的格式的格式为:文件描述文件描述|文件文件类型型 l例如在例如在CommonDialog1对象象显示的通用示的

166、通用对话框中,框中,显示示文本文件、文本文件、Word文件或者所有文件,可以写文件或者所有文件,可以写为:CommonDialog1.Filter = Text|*.text|Word|*.Doc|所有文件所有文件|*.*l在在“颜色色”对话框中,通框中,通过Color属性可以得到用属性可以得到用户所所选择的的颜色。色。l在在显示示“字体字体”对话框之前,需要先框之前,需要先设置置Flags属性属性值,以,以确定确定对话框框显示的字体示的字体类型。型。2024/7/23Visual Basic程序设计简明教程2622024/7/23Visual Basic程序设计简明教程263显示通用对话框的

167、方法 方法方法功能功能ShowOpen显示示“打开打开”对话框框ShowSave显示示“另存另存为”对话框框ShowColor显示示“颜色色”对话框框ShowFont显示示“字体字体”对话框框ShowPrinter显示示“打印打印”对话框框ShowHelp显示示“帮助帮助”对话框框2024/7/23Visual Basic程序设计简明教程2648.1 对话框自定义对话框对话框具有窗体的大部分特性和功能,它实际上是窗体的一种特殊状态。对话框与普通的窗体相比,通常没有控制菜单按钮、最大化按钮和最小化按钮,也不能改变其尺寸。用户可以通过对窗体进行改造,定制符合自身需要的对话框。 2024/7/23V

168、isual Basic程序设计简明教程265对话框窗体属性设置 属性属性值值含义含义BorderStyle3固定固定边框,尺寸不能改框,尺寸不能改变ControlBoxFalse取消控制菜取消控制菜单按按钮MaxButtonFalse取消最大化按取消最大化按钮MinButtonFalse取消最小化按取消最小化按钮返回返回返回返回2024/7/23Visual Basic程序设计简明教程266菜单在Windows应用程序中经常出现,是用户界面中一个重要的元素。使用菜单可以对程序的功能进行分类,并形成一些命令组,供用户直观、方便地访问。应用程序的菜单一般分为两种类型,一种是下拉式菜单,另一种是弹出

169、式菜单。8.2 菜单2024/7/23Visual Basic程序设计简明教程2678.2 菜单下拉式菜单下拉式菜单一般位于窗体的顶部,平时只显示菜单栏中的菜单标题。当用户选中菜单标题之后,才会以下拉列表的形式显示其包含的菜单项。菜单项是菜单的主体,选中其中一个菜单项,就会执行一个命令,完成相应的功能。菜单项也可以成为子菜单,即自身又包含了一组菜单项。2024/7/23Visual Basic程序设计简明教程268菜单编辑器 选择“工具”菜单的“菜单编辑器”菜单项,或者在窗体窗口中按下组合键Ctrl+E,都可以打开菜单编辑器。 2024/7/23Visual Basic程序设计简明教程269说

170、明:菜单编辑器的上部用来设置菜单项的标题、名称等属性,选定菜单项的快捷键,以及安排协调位置等等。菜单编辑器的中部有7个命令按钮,其中“”和“”按钮用来调整当前菜单项在菜单中的位置,“”和“”按钮则用来调整当前菜单项在菜单中的层次。如果单击“”按钮,就会使当前菜单项向右缩进4格,表示其为子菜单的菜单项。“下一个”按钮用于移到下一个菜单项,“插入”按钮用于在当前菜单项之前插入一个菜单项,“删除”按钮用于删除当前菜单项。菜单编辑器的下部是一个列表框,用来显示当前窗体的所有菜单和菜单项。 2024/7/23Visual Basic程序设计简明教程270菜单项的常用属性 属性属性作用作用Name设置菜置

171、菜单项的的对象名象名Caption设置菜置菜单项的的标题Enabled确定菜确定菜单项是否有效,默是否有效,默认值是是True,表示有效,表示有效Visible确定菜确定菜单项是否可是否可见,默,默认值是是True,表示可,表示可见Checked确定菜确定菜单项是否有复是否有复选标记“”,默,默认值是是False,表示没有复,表示没有复选标记Index设置菜置菜单项在控件数在控件数组中的下中的下标2024/7/23Visual Basic程序设计简明教程271说明:(1)系统并没有给出菜单项控件的默认对象名,习惯上用前缀mnu来命名。(2)设置Caption属性时,如果标题为“-”,就会在菜单

172、中建立一条分隔线。在标题的某个字母前插入一个连接符(&),即可为菜单项设置访问键。打开下拉式菜单之后,当用户按下访问键时,便可执行该菜单项的功能。(3)菜单标题又称为顶级菜单,当其Enabled或者Visible的属性值是False时,不仅菜单标题将会失效或者不可见,而且它所包含的所有菜单项也都将会失效或者不可见。 2024/7/23Visual Basic程序设计简明教程272创建一个菜单的步骤 :(1)打开菜单编辑器,先创建菜单标题。在标题栏和名称栏分别输入标题信息和对象名,并做其它必要的属性设置。(2)单击“下一个”按钮,建立菜单项。设置菜单项的属性之后,单击“”按钮,使它成为菜单标题的

173、菜单项,以后创建的菜单项将自动成为该菜单标题所包含的菜单项。(3)不断地单击“下一个”按钮,为该菜单标题创建全部的菜单项。如果在创建某个菜单项时再次单击“”按钮,将会使上一个菜单项成为子菜单,而当前菜单项则成为子菜单的菜单项。重复上述步骤,并适当调整菜单项在菜单中的层次和位置,就可以创建窗体中所有的菜单。 2024/7/23Visual Basic程序设计简明教程273例8.1 设计一个菜单一个菜单的菜单标题是“文件”,其中有“打开”和“另存为”两个菜单项;另一个菜单的菜单标题是“系统”,其中有“颜色”和“退出”两个菜单项。 2024/7/23Visual Basic程序设计简明教程274说明

174、: Private Sub mnuOpen_Click() CommonDialog1.Action = 1 显示“打开”对话框 MsgBox (您打开了 & CommonDialog1.FileName & 文件!) End Sub Private Sub mnuSave_Click() CommonDialog1.ShowSave 显示“另存为”对话框 MsgBox (您保存了 & CommonDialog1.FileName & 文件!) End Sub Private Sub mnuColor_Click() CommonDialog1.Action = 3 显示“颜色”对话框 For

175、m1.BackColor = CommonDialog1.Color End Sub Private Sub mnuExit_Click() Call Command1_Click End Sub Private Sub Command1_Click() End End Sub 2024/7/23Visual Basic程序设计简明教程2758.2 菜单弹出式菜单弹出式菜单是独立于菜单栏而显示在窗体上的浮动菜单,又称为快捷菜单。在程序中至少含有一个菜单项的菜单都可以作为弹出式菜单,其在窗体上显示的位置可以变化,具有较大的灵活性。设计时应把菜单的Visible属性值设置为False,而菜单项的V

176、isible属性值仍然设置为True。程序运行时并不会自动显示弹出式菜单,而是需要调用PopupMenu方法,其格式是: 对象.PopupMenu 菜单名,flags,x,y,2024/7/23Visual Basic程序设计简明教程276举例: Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu mnuSystem End If End Sub 返回返回返回返回2024/7/23Visual Basic程序设

177、计简明教程2778.3 多重窗体窗体添加和启动选择“工程”菜单的“添加窗体”菜单项,打开“添加窗体”对话框。在“添加窗体”对话框的“新建”选项卡中选择窗体类型,即可创建一个新窗体。如果在“现存”选项卡中进行选择,将会添加一个已存在的窗体,与其他的程序共享。2024/7/23Visual Basic程序设计简明教程278启动窗体 多窗体程序运行时,首先被执行的窗体称为启动窗体。系统默认第一个建立的窗体(Form1)是启动窗体,也可以根据需要设置启动窗体或者启动过程。选择“工程”菜单的“工程属性”菜单项,打开“工程属性”对话框。在“工程属性”对话框的“通用”选项卡中,打开“启动对象”下拉列表框,选

178、择一个窗体名或者“Sub Main”,即可设置启动对象。如果选择了“Sub Main”,就表示设置子过程Main为启动过程。程序运行时将首先执行Main过程,然后在该过程中根据情况加载某些窗体。2024/7/23Visual Basic程序设计简明教程279是这是这是这是这样启样启样启样启动窗动窗动窗动窗体哦!体哦!体哦!体哦!2024/7/23Visual Basic程序设计简明教程2808.3 多重窗体窗体操作使用Load语句进行加载,其格式是: Load 窗体名使用Unload语句卸载一个窗体,其格式是: Unload 窗体名多窗体程序在运行时,某时刻只有一个窗体处于活动状态,因此经常需

179、要从某个窗体切换到另一个窗体。例如从Form1切换到Form2,可以在窗体Form1的程序代码中添加以下语句: Unload Form1 Form2.Show2024/7/23Visual Basic程序设计简明教程281窗体之间共享数据 访问的一般形式是: 窗体名.控件名.属性 例如把窗体Form2中文本框Text1的文本,显示在窗体Form1的标签Label1中,可以在窗体Form1的程序代码中添加一条语句: Label1.Caption=Form2.Text1.Text2024/7/23Visual Basic程序设计简明教程282例8.2 设计简单的多窗体程序 除了窗体Form1之外,

180、再添加两个窗体Form2和Form3。在窗体Form1上创建“时钟”、“诗词”和“退出”三个命令按钮。在窗体Form2上创建一个计时器、一个标签和一个“返回”命令按钮,其中计时器的Interval属性值设置为1000。在窗体Form3上创建一个标签和一个“返回”命令按钮。 2024/7/23Visual Basic程序设计简明教程283窗体Form1: Private Sub Command1_Click() Form1.Hide 隐藏窗体Form1 Form2.Show 显示窗体Form2 End Sub Private Sub Command2_Click() Form1.Hide 隐藏窗

181、体Form1 Form3.Show 显示窗体Form3 End Sub Private Sub Command3_Click() End End Sub Private Sub Timer1_Timer() Label1.FontSize = 24 Label1.Caption = Time 显示当前时显示当前时间间 End Sub Private Sub Command1_Click() Me.Hide 隐藏窗体隐藏窗体Form2 Form1.Show 显示窗体显示窗体Form1 End Sub 窗体窗体Form2: 2024/7/23Visual Basic程序设计简明教程284窗体For

182、m3 Private Sub Form_Click() Dim s As String s = 登鹳雀楼 & vbCr s = s & 白日依山尽 & vbCr s = s & 黄河入海流 & vbCr s = s & 欲穷千里目 & vbCr s = s & 更上一层楼 Label1.FontSize = 24 Label1.Caption = s End Sub Private Sub Command1_Click() Me.Hide 隐藏窗体Form3 Form1.Show 显示窗体Form1 Label1.Caption = 请单击窗体 End Sub返回返回返回返回2024/7/23

183、Visual Basic程序设计简明教程2858.4 ActiveX控件ActiveX控件是一段可以重复使用的程序代码和数据,其中封装了很多常用的功能,例如通用对话框、进度条和选项卡等等。在“工程”菜单中选择“部件”命令,打开“部件”对话框。然后在该对话框的“控件”选项卡中,选择要添加的控件所在的部件,单击“确定”按钮,即可在工具箱中添加相应的ActiveX控件。 2024/7/23Visual Basic程序设计简明教程2868.4 ActiveX控件进度条进度条(ProgressBar)控件位于Microsoft Windows Common Controls 6.0部件中。进度条控件常用

184、于观察一个耗时较长的操作所完成的进度,通过从左至右地用一些矩形块填充进度条的形式,直观地描述当前操作完成的程度。如果进度条被填满了矩形块,就表示操作已经完成。在工具箱中表示为: 2024/7/23Visual Basic程序设计简明教程287进度条控件的属性页 2024/7/23Visual Basic程序设计简明教程288进度条的常用属性 属性属性作用作用Name设置置进度条的度条的对象名,程序第一个象名,程序第一个进度条控件的默度条控件的默认对象名是象名是ProgressBar1Max设置置进度条的上界度条的上界Min设置置进度条的下界度条的下界Value设置置进度条的当前度条的当前值20

185、24/7/23Visual Basic程序设计简明教程2898.4 ActiveX控件选项卡选项卡(SSTab)控件位于Microsoft Tabbed Dialog Control 6.0部件中。SSTab控件拥有多个选项卡,每一个选项卡都可以象框架一样,作为其他控件的容器。某时刻只有一个选项卡处于活动状态并显示,其余的选项卡则被隐藏。在工具箱中表示为:2024/7/23Visual Basic程序设计简明教程290选项卡控件的属性页 2024/7/23Visual Basic程序设计简明教程291选项卡的常用属性 属性属性作用作用Name 设置置选项卡的卡的对象名,程序第一个象名,程序第一

186、个选项卡控件卡控件的默的默认对象名是象名是SSTab1Caption设置置选项卡的卡的标题Tab设置当前活置当前活动的的选项卡卡Tabs设置置选项卡的卡的总数数TabsPerRow设置每一行置每一行选项卡的数目卡的数目Rows确定确定选项卡的卡的总行数行数2024/7/23Visual Basic程序设计简明教程2928.4 ActiveX控件列表视图列表视图(ListView)控件位于Microsoft Windows Common Controls 6.0部件中。列表视图能够以列表的形式,直观地显示一组项目。与列表框控件相比,列表视图控件所显示的项目不仅可以有多列,而且每一列都能够拥有自己

187、的列标题。在工具箱中表示为:2024/7/23Visual Basic程序设计简明教程293列表视图控件的属性页 2024/7/23Visual Basic程序设计简明教程294列表视图的常用属性 属性属性作用作用Name 设置列表置列表视图的的对象名,程序第一个列表象名,程序第一个列表视图控件控件的默的默认对象名是象名是ListView1Sorted确定确定项目是否自目是否自动排序排序SortKey确定确定项目依据哪一列目依据哪一列进行排序行排序SortOrder 确定确定项目是以升序目是以升序还是降序是降序进行排序,默行排序,默认值是是lvwAscending,表示升序,表示升序View设

188、置列表置列表视图的的类型型ColumnHeaders获得列表得列表视图中的列中的列标题对象象ListItems获得列表得列表视图中的中的项目目对象象2024/7/23Visual Basic程序设计简明教程295说明:(1)View属性值确定了列表视图中项目的外观,有标准图标(lvwIcon)、小图标(lvwSmallIcon)、列表(lvwList)和报表(lvwReport)等4种类型。(2)ColumnHeaders本身是一个对象,用于管理列表视图的所有列标题。其Count属性则确定了列表视图中列标题的个数,即项目的列数。(3)列表视图的操作主要是针对其ListItems属性,即项目对象

189、。ListItems本身也是一个对象,用于管理视图列表的所有项目。其Count属性确定了列表视图中项目的行数,即项目的个数。Item是ListItems的重要属性,其属性值是一个数组,每一个元素存放视图列表的一个项目。Item数组的元素又是一个对象,其SubItems属性值则是一个字符串数组,每一个元素依次存放相应项目的一个子项目。2024/7/23Visual Basic程序设计简明教程2968.4 ActiveX控件树形视图树形视图(TreeView)控件位于Microsoft Windows Common Controls 6.0部件中。树形视图能够以树形结构,组织类似文件目录这样的一些

190、具有层次关系的节点对象(Node),并且以树形方式直观地显示节点对象的分层列表。在工具箱中表示为:2024/7/23Visual Basic程序设计简明教程297树形视图控件的属性页 2024/7/23Visual Basic程序设计简明教程298树形视图的常用属性 属性属性作用作用Name 设置置树形形视图的的对象名,程序第一个象名,程序第一个树形形视图控件控件的默的默认对象名是象名是TreeView1Style设置置树形形视图的的样式式Nodes获得得树形形视图中的中的节点点对象象LineStyle设置置节点之点之间连线的的样式式Sorted确定确定节点是否自点是否自动排序排序2024/7

191、/23Visual Basic程序设计简明教程2998.4 ActiveX控件Animation控件Animation控件位于Microsoft Windows Common Controls-2 6.0部件中。Animation控件能够显示无声的AVI视频文件,它属于后台控件,程序运行时看不到。Animation控件一般用于播放无声的AVI动画,AVI动画是由若干帧位图组成的,其结构与电影类似。在工具箱中表示为:2024/7/23Visual Basic程序设计简明教程300Animation控件的属性页 2024/7/23Visual Basic程序设计简明教程301 Animation控

192、件的常用属性 属性属性作用作用Name设置置Animation控件的控件的对象名,程序第一个象名,程序第一个Animation控件的默控件的默认对象名是象名是Animation1AutoPlay确定确定Animation控件能否自控件能否自动播放加播放加载的的AVI文文件,默件,默认值是是False,表示不能自,表示不能自动播放播放BackStyle设置置Animation控件播放控件播放动画的背景画的背景Center确定确定Animation控件中的控件中的AVI文件是否居中文件是否居中显示,示,默默认值是是False,表示不居中,表示不居中显示,而是在控件的左示,而是在控件的左上角上角显示

193、示2024/7/23Visual Basic程序设计简明教程302Animation控件的常用方法 方法方法功能功能Open打开要播放的打开要播放的AVI文件文件Play播放已加播放已加载的的AVI文件文件Stop停止播放已加停止播放已加载的的AVI文件文件 Close关关闭当前打开的当前打开的AVI文件文件2024/7/23Visual Basic程序设计简明教程303说明:(1)Open方法的调用形式为: 对象.Open Filename参数Filename表示在Animation控件中被打开文件的文件名,该文件的扩展名必须是avi。(2)Play方法的调用形式为: 对象.Play Rep

194、eatCount,StartFrame,EndFrame参数RepeatCount表示动画重复播放的次数,其默认值是-1,表示可以连续重复地播放。参数StartFrame表示动画播放的开始帧,其默认值是0,表示从第一帧开始播放。参数EndFrame表示动画播放的结束帧,其默认值是-1,表示一直播放到最后一帧才结束。例如在控件Animation1中播放动画,从第7帧开始,到第23帧结束,一共重复3次,可以写为: Animation1.Play 3, 7, 23返回返回返回返回2024/7/23304第9章文件本章内容: 概述 文件打开与关闭 文件读写 文件操作 文件系统控件2024/7/23Vi

195、sual Basic程序设计简明教程3059.1 概述l文件(文件(file)是指具有文件名的相关数据的集合,)是指具有文件名的相关数据的集合,一般把它保存在外部存储介质中(例如磁盘)。一般把它保存在外部存储介质中(例如磁盘)。lVB文件由记录组成,记录由字段组成,字段则由文件由记录组成,记录由字段组成,字段则由字符组成。字符组成。 lVB语言提供了一些语句和函数,专门用来完成文语言提供了一些语句和函数,专门用来完成文件的输入输出等操作。件的输入输出等操作。 l按照文件的存取方式进行分类,按照文件的存取方式进行分类,VB文件一般可以文件一般可以分为顺序文件、随机文件和二进制文件。分为顺序文件、

196、随机文件和二进制文件。 2024/7/23Visual Basic程序设计简明教程306顺序文件: 顺序文件一般是普通的文本文件,其所有数据都以字符串的形式存储。顺序文件的一行数据就是一条记录,记录的长度不固定,记录之间以换行符予以分隔。顺序文件的记录是顺序存储的,而且只提供第一条记录的存储位置。顺序文件的访问应采取顺序存取方式,例如查找某一个数据只能从文件的头部开始,一条一条地顺序读取记录,直至找到所要查找的记录为止。 2024/7/23Visual Basic程序设计简明教程307随机文件: 随机文件由相同长度的记录集合组成,每一条记录有一个唯一的记录号。随机文件的访问可以采取随机存取方式

197、,直接读取某一条记录。只要指定记录号,就能够快速找到该条记录在文件中的位置,然后进行相应的操作。l二进制文件按二进制的形式存储数据,这正是数据二进制文件按二进制的形式存储数据,这正是数据在内存中存储的原始形式。二进制文件与随机文件很相在内存中存储的原始形式。二进制文件与随机文件很相似,只是没有数据类型和记录长度这些说明信息。似,只是没有数据类型和记录长度这些说明信息。l二进制文件的访问同样可以采取随机存取方式,直二进制文件的访问同样可以采取随机存取方式,直接读取某一个字节。接读取某一个字节。l二进制文件允许程序按照所需的任何方式组织数据,二进制文件允许程序按照所需的任何方式组织数据,并且适用于

198、存取任意结构的数据。并且适用于存取任意结构的数据。二二进制文件:制文件: 返回返回返回返回2024/7/23Visual Basic程序设计简明教程3089.2 文件打开与关闭对磁盘文件的操作,主要有打开、读、写、关闭和删除等等。对文件操作时,必须遵循“先打开,后读写,最后关闭”的原则。 2024/7/23Visual Basic程序设计简明教程3099.2 文件打开与关闭文件打开 lVB语言为文件打开提供语言为文件打开提供Open语句,其格式为:语句,其格式为:Open 文件名文件名For 模式模式Access 存取类型存取类型锁定锁定As#文件号文件号Len=记录长度记录长度 l说明:说明

199、:(1)文件名是一个字符串,该参数是必选项,用来指定需要打开)文件名是一个字符串,该参数是必选项,用来指定需要打开的文件。如果该文件不在当前目录中,则在文件名中必须包含路径名。的文件。如果该文件不在当前目录中,则在文件名中必须包含路径名。(2)模式位于关键字)模式位于关键字For之后,用来指定文件的操作方式。一共有之后,用来指定文件的操作方式。一共有5种方式,其中默认方式是种方式,其中默认方式是Random。 模式模式含义含义Input顺序输入顺序输入Output顺序输出顺序输出Append在文件尾部顺序输出在文件尾部顺序输出Random随机存取随机存取Binary二进制方式二进制方式2024

200、/7/23Visual Basic程序设计简明教程310(3)存取类型位于关键字Access之后,用来指定所访问文件的类型。(4)锁定只在网络或者多任务环境中使用,其作用是限制其他用户或者进程对已打开的文件进行读写操作。(5)文件号是一个整型表达式,该参数是必选项,取值范围在1511之间。在执行Open语句时,系统自动为打开的文件和文件号之间建立关联。此后文件号就代表打开的文件,在程序中对该文件的操作都要借助于文件号。(6)记录长度是一个整型表达式,其取值不能超过32767。对于顺序文件,该参数是指缓冲区的字符数,默认值是512;对于随机文件,该参数是指记录的长度,默认值是128。2024/7

201、/23Visual Basic程序设计简明教程3119.2 文件打开与关闭文件关闭VB语言为文件关闭提供Close语句,其格式为: Close#文件号,#文件号说明:如果省略文件号,则系统会将程序中所有已经打开的文件全部关闭。例如关闭1号文件和2号文件,可以写为: Close #1,#2返回返回返回返回2024/7/23Visual Basic程序设计简明教程3129.3 文件读写顺序文件 1Print语句Print语句用于将格式化的数据写入顺序文件,其格式为: Print #文件号,表达式列表;|,说明:(1)Print语句的格式与Print方法十分相似,其差别在于Print语句增加了一个文

202、件号参数。Print语句输出的对象是文件,而Print方法输出的对象则是窗体、图片框和打印机。(2)表达式列表列出向文件写入的信息,它的用法与Print方法相同。该参数是可选项,如果被省略,则表示向文件写入一个空行。(3)如果用分号(;)分隔表达式列表中的数据项,按照紧凑格式写入数据;如果用逗号(,)分隔数据项,按照标准格式写入数据。(4)对于字符串数据,如果其中含有逗号、分号、空格或者换行符,则应该先给字符串加上双引号(“”),然后写入文件。 2024/7/23Visual Basic程序设计简明教程313 Private Sub Command1_Click() Dim n As Inte

203、ger, i As Integer, name As String, age% n = Val(Text1.Text) Open d:test01.txt For Output As #1 打开文件 For i = 1 To n name = InputBox(请输入第 & i & 个学生的姓名) age = InputBox(请输入第 & i & 个学生的年龄) Print #1, name; age 向文件写入学生的姓名和年龄 Next i Close #1 关闭文件 End Sub例9.1 输入学生信息,并写入到文件test01.txt中 2024/7/23Visual Basic程序设

204、计简明教程3142Write语句Write语句也能够将数据写入顺序文件,其格式为: Write #文件号,输出列表说明: (1)输出列表列出向文件写入的信息,其中的各个数据项之间用逗号(,)分隔。 (2)Write语句的功能与Print语句基本相同。其差别在于Write语句写入的数据在文件中按照紧凑格式存放,而且自动在数据之间插入逗号(,),并给字符串加上双引号。 2024/7/23Visual Basic程序设计简明教程315例9.2 追加信息到文件test01.txt Private Sub Command1_Click() Dim n As Integer, i As Integer,

205、name As String, age% n = Val(Text1.Text) Open d:test01.txt For Append As #1 打开文件 For i = 1 To n name = InputBox(请输入第 & i & 个学生的姓名) age = InputBox(请输入第 & i & 个学生的年龄) Write #1, name, age 向文件写入学生的姓名和年龄 Next i Close #1 关闭文件 End Sub 2024/7/23Visual Basic程序设计简明教程3163Input语句Input语句用于从顺序文件读取数据,并把这些数据赋给相应的变量

206、。其格式为: Input #文件号,变量列表说明:(1)变量列表列出的变量用于接收从文件读出的信息,各个变量之间用逗号(,)分隔。(2)变量的类型应该与文件中数据的类型相匹配。为了确保能够将文件中的数据正确地读出,Input语句应该与Write语句配合使用。2024/7/23Visual Basic程序设计简明教程317例9.3 显示文件test01.txt中的信息 Private Sub Command1_Click() Dim name As String, age% Open d:test01.txt For Input As #1 打开文件 Do While Not EOF(1) In

207、put #1, name, age 从文件读出学生的姓名和年龄 Picture1.Print name, age Loop Close #1 关闭文件 End Sub 2024/7/23Visual Basic程序设计简明教程3184Line Input语句Line Input语句用于从顺序文件读取一行数据,并把它赋给一个字符串变量。其格式为: Line Input #文件号,字符串变量说明:Line Input语句能够一次读出文件中的一行数据即一条记录,其中不包含换行符。Line Input语句一般与Print语句配合使用。5Input函数Input函数用于从文件中读取指定数量的字符,并把它

208、赋给一个字符串变量。其格式为: Input(n,#文件号)说明:Input函数通常出现在赋值语句中,参数n指定了读取字符的数量。例如: Dim a As String a=Input(20,#1) Input函数从1号文件读出20个字符,并赋给字符串变量a。2024/7/23Visual Basic程序设计简明教程3199.3 文件读写随机文件随机文件由一组相同长度的记录组成,是以记录为单位进行文件的读写操作。在程序中打开一个随机文件之前,应先定义一个记录类型,与该文件所包含的记录结构相对应。在打开随机文件之后,既可以进行写操作,也可以进行读操作,而且能够直接定位在任意一条记录上。 2024/

209、7/23Visual Basic程序设计简明教程3201Put语句Put语句用于将记录变量中的数据,写入到随机文件中指定的记录位置。其格式为: Put #文件号,记录号,变量说明:记录号是一个自然数,表示写入的是第几条记录。如果省略了记录号,例如写为: Put #1,stu 则表示把变量中的记录写入到文件的下一个记录位置。2024/7/23Visual Basic程序设计简明教程3212Get语句Get语句用于从随机文件读取指定位置的记录,并把它赋给一个记录变量。其格式为: Get #文件号,记录号,变量说明:Get语句的格式与Put语句基本相同,其作用则正好相反。 返回返回返回返回2024/

210、7/23Visual Basic程序设计简明教程3229.4 文件操作读写操作是文件操作的重要组成部分,它针对的是文件内容。文件操作还有删除、复制和重命名等等,这些操作主要是针对文件整体。VB提供了一组语句和函数,使得程序员可以对文件或者目录进行一些维护性操作。2024/7/23Visual Basic程序设计简明教程3239.4 文件操作文件操作语句1FileCopy语句FileCopy语句用于将源文件复制到指定的目标文件,其格式为: FileCopy 源文件名,目标文件名2Kill语句Kill语句用于删除指定的文件,其格式为: Kill 文件名2024/7/23Visual Basic程序

211、设计简明教程3243Name语句Name语句用于对文件重命名,其格式为: Name 原文件名 As 新文件名4Seek语句Seek语句用于设置文件的下一个读写位置,其格式为: Seek #文件号,位置5ChDrive语句ChDrive语句用于设置当前驱动器,其格式为: ChDrive 驱动器名2024/7/23Visual Basic程序设计简明教程3256MkDir语句MkDir语句用于创建一个新目录,其格式为: MkDir 目录名 7ChDir语句ChDir语句用于设置当前目录,其格式为: ChDir 目录名8RmDir语句RmDir语句用于删除指定的目录,其格式为: RmDir 目录名2

212、024/7/23Visual Basic程序设计简明教程3269.4 文件操作文件操作函数1FreeFile函数FreeFile函数的格式为: FreeFile(n)该函数的作用是,返回一个在程序中尚未使用的文件号。2LOF函数LOF函数的格式为: LOF(文件号)该函数的作用是,返回指定文件的长度(字节数)。 2024/7/23Visual Basic程序设计简明教程3273EOF函数EOF函数的格式为:EOF(文件号)该函数的作用是,检测当前操作是否到达文件的尾部。4Seek函数Seek函数的格式为:Seek(文件号)该函数的作用是,返回文件的当前读写位置。 5CurDir函数CurDir

213、函数的格式为:CurDir(驱动器名)该函数的作用是,返回指定驱动器的当前目录。 6Shell函数Shell函数的格式为: Shell(文件名,窗口类型)该函数的作用是,调用并运行指定的可执行文件。2024/7/23Visual Basic程序设计简明教程3289.5 文件系统控件除了通用对话框之外,VB还提供了文件系统控件,它包括驱动器列表框控件、目录列表框控件和文件列表框控件。文件系统控件是标准控件,程序员可以使用它创建自定义对话框,编写文件管理程序。 返回返回返回返回2024/7/23Visual Basic程序设计简明教程3299.5 文件系统控件驱动器列表框驱动器列表框(DriveL

214、istBox)控件用来列出系统中全部有效的驱动器,默认情况下显示系统当前的驱动器,用户也可以从下拉式列表框中选择所需的驱动器。 在工具箱中表示为: 2024/7/23Visual Basic程序设计简明教程330驱动器列表框的常用属性 属性属性作用作用Name设置置驱动器列表框的器列表框的对象名,程序第一个象名,程序第一个驱动器列器列表框控件的默表框控件的默认对象名是象名是Drive1Drive设置所置所选择的的驱动器名器名List确定确定驱动器列表框所器列表框所显示的示的驱动器列表器列表ListCount确定确定驱动器列表框中器列表框中驱动器的器的总数数2024/7/23Visual Bas

215、ic程序设计简明教程331说明:Drive是驱动器列表框控件最重要的属性,其属性值只能通过程序代码设置。List是一个字符串数组,其中每一个元素都存放了一个有效的驱动器名和卷标。Change事件是驱动器列表框控件最重要的事件。一旦用户选择了一个新的驱动器,导致Drive属性值被改变,就会引发Change事件。 2024/7/23Visual Basic程序设计简明教程3329.5 文件系统控件目录列表框目录列表框(DirListBox)控件用来显示系统当前驱动器上的目录结构,初始状态下只显示当前驱动器的根目录和当前目录。程序运行时如果用户双击某个子目录,就可以使它成为当前目录。在工具箱中表示为

216、:2024/7/23Visual Basic程序设计简明教程333目录列表框的常用属性 属性属性作用作用Name设置目置目录列表框的列表框的对象名,程序第一个目象名,程序第一个目录列表列表框控件的默框控件的默认对象名是象名是Dir1Path设置当前目置当前目录List确定当前目确定当前目录下的子目下的子目录列表列表ListCount确定当前目确定当前目录下子目下子目录的的总数数ListIndex确定当前目确定当前目录在目在目录列表中的索引列表中的索引2024/7/23Visual Basic程序设计简明教程334说明:目录列表框只能显示当前驱动器上的目录,如果要显示其他驱动器上的目录,则必须修

217、改Path属性,从而改变路径。List是一个字符串数组,其中每一个元素都存放了当前目录下的一个子目录名。当前目录的ListIndex属性值是-1。如果当前目录包含子目录,则每一个子目录的ListIndex属性值依次从0到ListCount-1;如果当前目录有父目录,则父目录的ListIndex属性值是-2,依次类推。2024/7/23Visual Basic程序设计简明教程335事件 :Change事件是目录列表框控件最重要的事件。一旦用户选择了一个新的目录,导致Path属性值被改变,就会引发Change事件。2024/7/23Visual Basic程序设计简明教程3369.5 文件系统控件

218、文件列表框文件列表框(FileListBox)控件用来显示指定目录下的所有文件,初始状态下显示当前目录下的文件。在工具箱中表示为: 2024/7/23Visual Basic程序设计简明教程337文件列表框的常用属性 属性属性作用作用Name设置文件列表框的置文件列表框的对象名,程序第一个文件列表框控象名,程序第一个文件列表框控件的默件的默认对象名是象名是File1FileName确定所确定所选中的文件名中的文件名Path设置置显示的文件所在目示的文件所在目录Pattern设置所置所显示文件的示文件的类型型MultiSelect确定是否允确定是否允许选择多个文件,默多个文件,默认值是是0,表示

219、不允,表示不允许多多选ListCount确定所确定所显示文件的示文件的总数数2024/7/23Visual Basic程序设计简明教程338说明:文件列表框只显示当前目录下的文件,如果要显示其他目录下的文件,就必须在程序代码中修改Path属性,从而改变路径。Pattern是一个字符串,默认值是“*.*”。可以为文件列表框所显示的文件设置多种类型,类型之间用分号(;)进行分隔。 2024/7/23Visual Basic程序设计简明教程339文件列表框的常用事件 事件事件来源来源PathChange文件列表框的文件列表框的Path属性属性值发生改生改变PatternChange文件列表框的文件列

220、表框的Pattern属性属性值发生改生改变Click单击文件列表框中的一个文件名文件列表框中的一个文件名DblClick双双击文件列表框中的一个文件名文件列表框中的一个文件名2024/7/23Visual Basic程序设计简明教程340文件系统控件之间的同步:Private Sub Drive1_Change() 改变了驱动器名Dir1.Path = Drive1.DriveEnd SubPrivate Sub Dir1_Change() 改变了目录File1.Path = Dir1.PathEnd Sub 返回返回返回返回2024/7/23341第10章Visual Basic与数据库 概

221、述概述 数据管理器数据管理器 ADOADO数据控件数据控件 数据及数据绑定控件数据及数据绑定控件 SQLSQL简介简介 报表制作报表制作 应用举例应用举例 2024/7/2334210.1 概述数据库是一组特定数据的集合,是按照一定方式组织、存储以及管理存储在计算机内的相关数据的集合。 数据库中数据的组织形式有多种,按数据库所采用的数据模型分类,可分为:基于层次模型的数据库、基于网状模型的数据库、基于关系模型的数据库。 关系数据库,就是把数据表示成表的集合,通过建立各表之间的关系来定义结构的一种数据库。数据库以文件的形式保存于存储器中,一个数据库文件可以包含一个、也可以包括多个组成这个数据库的

222、文件 。2024/7/2334310.1 概述数据库 表:表: 在关系数据库中,一个关系就可以表示为一个表,是关系数据库的基本组成。表的作用是保存数据库中的数据。 假设用于存储学生相关信息的数据库是由学生学籍信息表、成绩表和选课表组成的学生数据库(XS.mdb),那么整个学生数据库的结构如图所示。 2024/7/23344学生数据库学生数据库学生数据库学生数据库结构结构结构结构 2024/7/23345关键字关键字 :同一个表中的记录是不重复的、唯一的。这可以通过设置某一字段为主关键字值来保证这种唯一性。为区别表中的每一条记录,可以将某一字段设为主关键字,作为一个记录的唯一标识。 排序排序:对

223、于一个数据表,可以按某一字段对表中所有的记录进行升序或降序排列。索引:索引:数据查找是数据库操作的一项重要运算,为提高查找效率,常常通过建立索引来达到查询目的。索引是基于表建立的单独的物理数据库结构,是一种特殊类型的表,其中包含关键字段的值和指向实际记录位置的指针,这些值与指针按照特定的顺序存储。视图:视图:视图是在表的基础上建立的,它是一个虚拟表,但它的各项操作与真实的表是相同的。目的在于简化数据的表达。数据库是包含了数据表的一个或多个文件的文件。Visual Basic支持多种数据库,常用的、也是缺省的数据库是.mdb文件,即Microsoft Access数据库。 2024/7/2334

224、610.1 概述数据访问对象模型 数据访问对象(Data Access Objects ,即DAO) 远程数据对象(Remote Data Objects,即RDO) ActiveX数据对象(ActiveX Data Objects,即ADO) 返回返回返回返回2024/7/2334710.2 数据管理器创建Access 格式数据库 在VB工作环境中,选择“外接程序/可视化数据管理器”,出现右图所示界面。l选择选择“文件文件/ /新建新建/Microsoft /Microsoft AccessAccess(M M)/Version /Version 7.0 MDB7.0 MDB” , ,打开左

225、图打开左图4 4所所示对话框。示对话框。 2024/7/23348l在上图所示对话框中在上图所示对话框中选择合适的路径与数据库选择合适的路径与数据库名称并单击名称并单击“保存保存”按钮按钮( (我们将此数据库命名为我们将此数据库命名为stu.mdbstu.mdb并将其保存在并将其保存在D D盘盘) ),则出现如右图,则出现如右图5 5所示界所示界面。面。 l在左图所示数据库窗在左图所示数据库窗口中单击鼠标右键并单击口中单击鼠标右键并单击“新建表新建表”命令,即出现命令,即出现表结构对话框。表结构对话框。2024/7/23349表结构表结构表结构表结构创建表创建表创建表创建表2024/7/233

226、5010.2 数据管理器数据窗体设计器 使用可视化数据管理器自带的数据窗体设计器,使我们能在最短时间内设计出符合要求的数据操作界面窗体。具体过程为:在如上图所示界面中选择“实用程序/数据窗体设计器(F)”,出现图中所示“数据窗体设计器”对话框。2024/7/23351创创建窗体:建窗体:建窗体:建窗体:窗体运行界面窗体运行界面窗体运行界面窗体运行界面返回返回返回返回2024/7/2335210.3 ADO数据控件ADO的对象与集合 ADO有7个对象:Connection: 通过连接访问数据源。Command:从连接到的数据源获取所需数据的命令信息。Parameter:与命令对象有关的参数。Re

227、cordset:获得的一组记录组成的记录集。Field:包含在记录集中某个字段的信息。Property:ADO控件属性信息Errors:访问数据时,从数据源返回的错误信息。ADO的4个集合为:Fields、Properties、Parameters、Errors。2024/7/2335310.3 ADO数据控件添加ADO ADO是作为可选项集成在VB开发环境中的,在使用ADO之前,必须首先完成ADO的添加。实际使用时,在完成项目创建后,需要选择“工程/引用”命令,出现如图10.14所示选项,在列表框中选中“Microsoft ActiveX Objects Data2.6 Library”,单

228、击“确定”按钮,这样就为项目完成了ADO的添加。2024/7/2335410.3 ADO数据控件ADO应用 例:启动Access 2003创建名为学生.mdb的数据库作为数据源,在该库中建立含有“学号、姓名、性别、班级、联系方式、家庭所在地”字段的名为xsxx(学生信息)的表。 ADO应用窗体布局应用窗体布局 ADO应用运行界面应用运行界面 返回返回返回返回2024/7/2335510.4 数据及数据绑定控件数据控件分为提供数据的数据源控件和使用数据的数据识别/绑定控件。将此两种控件结合可以完成数据的显示和处理,如果数据识别/绑定控件没有数据源,就无法自动实现数据的显示和处理工作。2024/7

229、/23356 10.4 数据及数据绑定控件Data控件 Data 控件是Visual Basic内置的控件,也是在Visual Basic中访问数据库的重要控件,通过对其属性进行设置,可以将数据控件与不同结构的数据库及其数据表建立联系,从而对表中记录进行读、写、查询等操作。 在工具箱中显示如: 窗体中的Data控件2024/7/233571 Connect属性 例1:连接Access数据库(默认的)。Connect =”Access”图10.19 Data控件的属性对话框2DatabaseName属性该属性用于确定数据控件所使用的数据库是哪一个。例2:连接Access的一个数据库。Databa

230、seName =”D:stu.mdb”3RecordSource属性该属性用于确定所要访问的数据表的名称。例3:指定访问stu.mdb中的stutable。RecordSource =”stutable”如果要选择表中所有女生的数据,则:RecordSource =”Select * Form stutable Where 性别=女 ” 2024/7/2335810.4 数据及数据绑定控件常用数据绑定控件 Data控件可以操作库表,但本身无法显示库中的相关数据。为此,需将能显示数据的控件与Data控件相关联,从而使这些控件成为Data控件的数据绑定控件。具体实现一般控件与Data控件完成数据绑

231、定过程的步骤如下:1创建数据源:运行VB主程序,选择“文件/新建/标准EXE/打开”,以默认窗体Form1为基础添加如右图所示各控件。2024/7/233592设置各控件属性值:将前一图中所示各Text控件的Text属性值设置为空,Data控件的Caption属性值设置为空,DatabaseName属性值为所选数据库及其路径。运行即可得左图所示运行结果。在此基础上可以完成添加记录、删除记录、保存记录、退出等操作。 2024/7/2336010.4 数据及数据绑定控件专用数据绑定控件 1ADODC控件ADODC控件的常用属性主要有:ConnectionString属性 例如上图中的Connect

232、ionString属性设置为:Adodc1.ConnectionString = Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source= & App.Path & xueshengxinxi.mdbRecordSource 属性 返回或设置语句,或者返回一个记录集的查询。它可能包含一条语句或一个表格名称,例如上图中的RecordSource属性设置为:Adodc1.RecordSource = Select * from xsxxRecordset属性 返回或者对下一级ADO Recordset对象的

233、引用。如在本例中: Text1.Text = Adodc1.Recordset.Fields(学号).ValueBOF属性 指示当前记录位于Recordset对象的第一个记录之前。EOF属性 指示当前记录位于Recordset对象的最后一个记录之后。2024/7/233612DBGrid控件(数据网格控件)DBGrid控件即数据网格控件,可以用来以表格形式显示数据库表中的数据。 DBGridDBGrid控件布局控件布局控件布局控件布局 运行结果运行结果运行结果运行结果 2024/7/23362DBGrid的常用属性主要有:DataSource属性 可以将DBGrid的DataSource属性设

234、置为一个ADO控件,以便将ADO控件所连接的数据源中的数据自动填充至DBGrid的表格中。AllowAddNew属性 设置或者返回一个值,表明用户是否能够向与DBGrid控件连接的Recordset对象中添加新纪录。AllowArrows属性 设置或返回一个值,该值决定控件是否用箭头键对网格定位。AllowDelete属性 设置或返回一个值,指出用户可否从与DBGrid控件连接的Recordset对象中删除记录。AllowUpdate属性 设置或返回一个值,提示用户可否修改DBGrid控件中的数据。2024/7/233633DBCombo控件(数据组合框)与DBList控件(数据列表框)DBC

235、ombo控件DBList控件都是数据绑定列表框,都可以自动从附加数据源中的字段填充数据,且可以选择性地更新另一个数据源中的相关表的字段。这两个控件功能相同,但DBCombo控件是组合框。2024/7/23364DBCombo控件主要属性设置:RowSource属性 取值为Adodc1。将Adodc1与DBCombo控件绑定。Style属性 取值为2-dbcDropdownList。表示设置组合框类型,不允许用户输入。ListField属性 取值为所列字段名称。DBList控件的主要属性设置:RowSource属性 取值为Adodc2。将Adodc2与DBList控件绑定。ListField属性

236、 取值为所列字段名称。2024/7/2336510.4 数据及数据绑定控件数据识别/绑定控件 数据识别/绑定控件为数据输入、数据编辑、数据查看创建相关界面。这类控件都具有DataSource和DataField属性,目的在于指名所使用的数据源及相应字段。这类控件有DataGrid、DataList、DataCombo、Hierarchical FlexGrid等控件。这些控件在VB工作环境中的工具箱上是看不到的,使用之前需要用户选择“工程/部件”命令,在出现的“部件”对话框中选择“Microsoft ADO Data Control6.0(OLEDB)”,同时为方便使用,将“Microsoft

237、 DataList Control6.0(OLEDB)、Microsoft DataGrid Control6.0(OLEDB)、“Microsoft Chart Control6.0(OLEDB)”等控件也一并选中,单击“确定”按钮,在工具箱中会出现相应的图标。使用时,用鼠标直接选取即可。返回返回返回返回2024/7/2336610.5 SQL简介SQL是结构化查询语言(Structure Query Language)的简称。 SQL是一种介于关系代数和关系演算之间的结构化查询语言,但它的作用远不只是完成数据查询。这是一个功能强大的、通用的数据库语言,它是集数据定义、查询、操纵及控制功能于

238、一体的数据库语言。 10.5 SQL简介简介SQL语言的特点语言的特点 SQLSQL语言具有综合统一的特点。语言具有综合统一的特点。 SQLSQL语言是一种高度的非过程化的语言。语言是一种高度的非过程化的语言。 SQLSQL语言采用了面向集合的操作方式。语言采用了面向集合的操作方式。 SQLSQL语言简捷,易学易用。语言简捷,易学易用。 SQLSQL语言以同一种语法结构提供了两种使用方式。语言以同一种语法结构提供了两种使用方式。2024/7/23367 10.5 SQL简介SQL语言对数据库的操作 一数据定义语言(Data Definition Language,DLL): 1创建基本表建立数

239、据库最重要、最基础的一步就是创建一些基本表,SQL语言完成这一操作的命令格式为:CREATE TABLE (列级完整性约束条件, 列级完整性约束条件, ;例1:建立一个由学号、姓名、性别、年龄、班级5个字段组成的学生信息表,其中学号不能为空且取值唯一,姓名取值也唯一。CREATE TABLE 学生信息表 (学号 CHAR(5) NOT NULL UNIQUE,姓名 CHAR(8)UNIQUE,性别 CHAR(2),年龄 INT,班级 CHAR(10);上述语句执行完毕,就建立了一个新的名为“学生信息表”的空表。2024/7/233682修改基本表 随着使用要求的变化,已建好的基本表有时需要作一

240、些修改,SQL所使用的命令及其格式为:ALTER TABLEADD完整性约束DROPMODIFY;例2:向学生信息表增加“联系方式”列,数据类型为整型。ALTER TABLE 学生信息表 ADD 联系方式 INT;语句执行完毕,即向学生信息表增加了名为“联系方式”的一个字段。例3:将“联系方式”中的数据类型改为字符型。ALTER TABLE 学生信息表 MODIFY 联系方式 CHAR(30);例4:删除姓名取唯一值的约束。ALTER TABLE 学生信息表 DROP UNIQUE(姓名);3删除基本表命令格式:DROP TABLE 例5:删除学生信息表DROP TABLE 学生信息表;语句执

241、行完毕,学生信息表的内容及结构全部被删除,且在此表基础上建立的其他表也易丢失。所以,用此命令时需格外谨慎。2024/7/23369二数据查询语言(Data Query Language,DQL):对数据的查询是数据库的核心操作。完成查询操作的动词是SELECT,其构成的语句具有灵活的使用方式并可以实现多种查询功能。SQL语言完成查询功能的语句格式为:SELECT ALL|DISTINCT,FROM,WHEREGROUP BY HAVINGORDER BY ASC|DESC;可见该语句的基本格式为:SELECTFROMWHERE。即从FROM子句所指定的表中,按照WHERE子句给出的条件,查询S

242、ELECT子句中所指的项目。假设例1中创建的学生信息表含有若干条记录,对其进行例6例8的操作。例6:显示学生名单SELECT 姓名 FROM 学生信息表;例7:显示所有学生的信息SELECT * FROM 学生信息表;例8:显示每个学生的姓名、年龄SELECT 姓名,年龄 FROM 学生信息表; 2024/7/23370三数据操纵语言(Data Manipulation Language,DML):对数据的操纵主要包括了对数据的检索和更新两类操作。其中数据的更新包含了插入数据、修改数据、删除数据3种操作。使用的动词有:INSERT、UPDATE、DELETE。1插入数据命令格式:INSERT

243、INTO (,) VALUE (表达式值)例9:向学生信息表添加一条学号:33333,姓名:启明星,性别:男,年龄:20,班级:机械0701班。INSERT INTO 学生信息表 (学号,姓名,性别,年龄,班级) VALUE (33333, 启明星,男,20,机械0701班) ;2修改数据命令格式:UPDATE SET =,=WHERE;用此命令可以完成表中某个记录的某项数据修改,也可以完成表中所有记录的某一列数据的一次性修改。例10:将学号为33333的学生的年龄改为21岁。UPDATE 学生信息表 SET 年龄=21 WHERE 学号=33333;例11:将学生信息表中所有学生的年龄都增加

244、1岁。UPDATE 学生信息表 SET 年龄=年龄+1;3删除数据命令格式:DELETE FROM ;例12:删除学号为33333的学生记录。DELETE FROM 学生信息表 WHERE 学号=33333;例13:删除学生信息表中的所有记录,使之成为仅保留表结构的空表。DELETE 学生信息表;2024/7/23371四数据控制语言(Data Control Language,DCL):包括了对基本表、视图等对象的授权、完整性规则描述、事务开始与结束等控制语句。其动词有:GRANT、REVOKE。1授予权限SQL语言用GRANT语句向用户授予操作的权限。对不同的操作对象可以授予不同的操作权限

245、。命令格式:GRANT ,ON TO ,WITH GRANT OPTION;例14:把对学生信息表的查询权限授予所有用户。GRANT SELECT ON TABLE 学生信息表TO PUBLIC;2收回权限命令格式:REVOKE ,ON FROM ,;例15:收回所有用户对学生信息表的查询权限。REVOKE SELECT ON TABLE 学生信息表FROM PUBLIC;返回返回返回返回2024/7/2337210.6 报表制作数据环境设计器的作用是为数据报表设计器提供数据。它提供给用户的是一个交互式的工作环境。 完成报表制作的过程:1打开在10.2节中创建的工程,选择“工程/添加Data

246、Environment”命令,数据环境设计器出现在工程资源管理器窗口中,且有如图所示界面出现。 2024/7/233732建立连接3启动Command对象4在VB环境中选择“工程/添加Data Report”命令。5添加控件、设置报表布局并输出报表:返回返回返回返回2024/7/2337410.7 应用举例1、建立数据库可以采用直接在Access中创建数据库,或者用在VB提供的可视化的数据管理器中建立数据库,或以其它方式建立该数据库,本例中采用10.2节中介绍的方法创建数据库。该数据库有三张表组成,其名称分别为:stutable、stukecheng、stuchengji,对应存储:学生的学籍

247、信息、课程信息、成绩信息。各表包含字段有:Stutable(学号、姓名、性别、班级、联系方式、家庭所在地),其中“学号”为主键。Stukecheng(课程编号、课程名称、学分),其中“课程编号”为主键。Stuchengji(学号、课程编号、高数、英语、大学语文、总成绩),其中“学号、课程编号”为外键。2024/7/233752创建应用程序选择“文件/新建工程/VB应用程序向导”,按向导提示选择“下一步”,至图示界面,选择“多文档界面”选项,并为应用程序起名为“学生信息管理系统”,之后继续选择“下一步”。2024/7/23376点击“下一步”按钮至左下图所示界面,可选图示三个选项。然后继续选择“

248、下一步”指令按钮,直至应用程序向导任务完成,共创建如右下图所示5个窗体文件和1个模块文件。 2024/7/23377在左下图所示环境中单击鼠标右键,选择“菜单编辑器”并对菜单进行编辑,生成如右下图所示的学生信息管理系统界面。从图中可见该系统具有“学籍管理系统、课程管理系统、成绩管理系统、报表、帮助、退出系统”六项功能。2024/7/23378学籍信息管理界面如图所示。在此界面中,可以完成学生学籍记录的添加、删除、修改等操作。主要使用了Data控件与DataGrid控件的绑定。课程信息课程信息2024/7/23379报表输出报表输出报表输出报表输出成绩信息成绩信息成绩信息成绩信息返回返回返回返回

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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