《Visual Basic 程序设计》
引言 第一章 VB程序概述 1.1 引例 1.2 VB功能特点 1.3 集成开发环境 第二章 简单的VB程序 2.1 程序设计方案的发展 2.2 VB中有关概念 2.3 建立简单的应用程序 2.4 基本控件和属性 2.5 工程管理环境设置 2.6 生成可执行文件 2.7 程序调试 2.8 常见错误 第三章 VB语言基础 3.1 编码规则 3.2 数据类型 3.3 常量与变量 3.4 运算符和表达式 3.5 常用函数 3.6 常见错误 第四章 基本控制结构 4.1 顺序结构 4.2 选择结构 4.3 循环结构 4.4 其他辅助控制语句 4.5 常用算法(一) 4.6 常用错误 第五章 数 组
5.1 数组的概念
5.2 数组的声明
5.3 数组的基本操作
5.4 控件数组
5.5 自定义数据类型
5.6 常用算法(二)
5.7 常用错误
第六章 过 程
6.1 函数过程定义与调用
6.2 子过程定义与调用
6.3 参数传递
6.4 变量过程作用域
6.5 递归
6.6 常用算法(三)
6.7 重点与难点
第七章 常用控件
7.1 单选框与复选框
7.2 框架
7.3 列表框和组合框
7.4 滚动条和Slider
7.5 时钟
7.6 progressBar控件
7.7 UpDown控件
7.8 Animation控件
7.9 SSTab控件
7.10 鼠标器和键盘
第八章 界面设计
8.1 通用对话框
8.2 菜单设计
8.3 多重窗体和多文档
8.4 工具栏和状态栏
8.5 RichTextBox控件
8.6 应用程序向导
第九章 文 件
9.1 文件系统控件
9.2 文件的读写
9.3 文件操作语句函数
第十章 图形技术
10.1 图形操作基础
10.2 绘图属性
10.3 图形控件
10.4 图形方法
10.5 应用
第十一章 数据库技术
11.1 数据库概念
11.2 数据库管理器
11.3 数据控件
11.4 ADO数据控件
11.5 结构化查询语句
11.6 报表制作
11.7 错误处理
11.8 数据库应用案例
引言:top↑《Visual Basic程序设计》是国家教委提出的非计算机专业的三个层次课程体系中的第二个层次课程。这层次的重点是使学生掌握高级语言程序设计的能力,掌握最新的面向对象的程序设计方法,能运用所学的知识开发图形界面下的应用软件,为培养学生结合专业进行软件开发的能力打好基础。具体内容:VB集成环境、面向对象基本概念、程序设计基础、常用控件、图形、数据库应用、多媒体应用等。
本书分为教学篇和实验篇。教学篇从两个方面即程序设计语言和可视化界面设计进行介绍,重点在第一方面。对程序设计的基本知识、基本语法、编程方法和常用算法进行了较为系统、详细的介绍,让学生学会分析问题、掌握简单问题编程的能力;而可视化界面设计是实际应用当中不可缺少的。本书将两者有机地结合,既可提高学生学习积极性又可提高编程效率和教学效果,真正达到学以致用的目的。
1. 教材根据初学者的特点,用简洁易懂的语言阐述了面向对象的概念;通过针对性强的实例简明扼要地将控件的众多属性、方法、事件叙述清楚;使学生很容易掌握可视化界面设计的方法。
2. 教材注重编程能力的基本功训练,将结构化程序设计方法很好地融入于教材中,防止了在该课程中只重视界面设计而忽视更重要的程序设计方法的训练,将面向对象的程序设计方法与传统的结构化程序设计方法很好地结合。
3. 教材采用了问题驱动方式的组织。从问题的提出,引出新的知识,直到问题的解决,很符合认知规律,适合初学者的学习。作为程序设计课程,该教材特别精选了程序设计语言教学中必须掌握的常用算法,并列举了大量的应用实例加以实现,通过逐步分解的方法和以图文并茂的形式给予验证,将复杂的问题简单化、形象化,有利于初学者的学习、易于举一反三、激发学习的兴趣、积极性和求知欲望。
4. 与教材配套的《Visual Basic实验指导与测试》,包含了每章的知识点、常见的错误和难点、各类测试题和解答等,内容丰富且实用,有利于学生自学、知识的巩固和提高。在"加强基础、注重应用、提高能力"上下了功夫。
5. 精心制作的电子教案,方便实用,有助于教师提高教学效率和效果,有利于学生的理解和接受;无纸化考试系统是考试改革的方向,提高学生动手能力和解决问题的能力。
第一章 VB程序概述top↑ 1.1 引例top↑ 引例1.1 一行内容在窗体上下移动(也可左、右移动)。 移动两种方法:手动和自动。
代码:
Dim step1 As Integer
Private Sub Form_Load()
step1 = 1
Timer1.Interval = 0
End Sub
Private Sub Command1_Click() ’手动
Timer1.Interval = 0
Label1.Move Label1.Left, Label1.Top + 50 * step1
If Label1.Top + 1.5 * Label1.Height > Form1.Height Then
step1 = -1
ElseIf Label1.Top < 0 Then
step1 = 1
End If
End Sub
Private Sub Command2_Click() ’自动
Timer1.Interval = 200
End Sub
Private Sub Timer1_Timer()
Label1.Top = Label1.Top + 50 * step1
If Label1.Top + 1.5 * Label1.Height > Form1.Height Then
step1 = -1
ElseIf Label1.Top < 0 Then
step1 = 1
End If
End Sub
引例2.2 对输入的字符进行转换的程序。
转换规则: 大写字母转换成小写字母,小写字母转换成大写字母,空格不转换,其余转换成“*”。 要求:每输入一个字符,马上就进行判断和转换。
代码:
Option Explicit
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim aa As String * 1
Dim Length As Integer ’ Length存放文本框中字符串的长度
Length = Len(Text2.Text) ’ 求Text2中字符串长度
aa = Chr$(KeyAscii) ’ 将ASCII码转换成字符
Select Case aa
Case "A" To "Z" ’大写转换成小写
aa = Chr$(KeyAscii + 32)
Case "a" To "z" ’小写转换成大写
aa = Chr$(KeyAscii - 32)
Case " "
Case Else
aa = "*"
End Select
’ 将转换文本框已有的内容与刚输入并转换的字符连接
Text2.Text = Text2.Text & aa
End Sub
Private Sub Command1_Click()
Text1.Text = ""
Text2.Text = ""
End Sub
Private Sub Command2_Click()
End
End Sub
通过上述两例说明VB面向对象、可视化、事件驱动的特点。
1.2 VB主要功能和特点
top↑ VB有以下功能和特点:
1. 具有面向对象的可视化设计工具
2. 事件驱动的编程机制
3. 提供了易学易用的应用程序集成开发环境
4. 结构化的程序设计语言
5. 支持多种数据库系统的访问
6. Active技术
7. VB6在开发环境上、网络功能等的增强
8. 完备的help联机帮助功能
1.3 VB集成开发环境
top↑ Visual Basic的集成开发环境如下图所视:
1.主窗口:应用程序窗口,由标题栏、菜单栏和工具栏组成
2.窗体(form)窗口:设计vb程序的界面
3.代码(code)窗口:编辑窗体、标准模块中的代码
4.属性(properties)窗口:所有窗体或控件的属性设置
5.工程资源管理器(project expror)窗口:保存一个应用程序所有的文件
6.工具箱(toolbox)窗口:显示各种控件的制作工具, 供用户在窗体上设计
第二章 简单的VB程序top↑ 第一节 2.1 程序设计方法的发展
top↑ 1.初期的程序设计
高运行效率、少占用内存为目标
2.结构化程序设计
程序的可读性、可维护性为目标
程序=算法+数据结构 的面向过程的程序设计
3.面向对象的程序设计
降低程序的复杂性、提高软件的开法效率和改善工作界面为目标
程序=对象+消息 的面向对象的程序设计
2.2 对象的有关概念
top↑ 1.类
类是创建对象实例的模板, 包含了创建对象的属性描述和行为特征的定义.
2.对象
是类的一个实例,继承了类的属性、方法。
VB中常用的对象有:窗体、控件等。
3.对象的建立和命名
4.对象的三要素
(1)属性
对象的性质,即用来描述和反映对象特征的参数。
(2)方法
对象的行为,即将一些通用的过程编写好并封装起来,作为方法供用户直接调用。
(3)事件
响应对象的动作称为事件,它发生在用户与应用程序交互时。如单击控件、鼠标移动、键盘按下等。
事件过程: 指附在该对象上的用户编写的程序代码,是事件的处理程序。
事件驱动过程: 是图形用户界面的本质,由用户控制而代码作出响应。
5. VB程序的执行步骤如下:
1)启动应用程序,装载和显示窗体
2)窗体(或窗体上的控件)等待事件的发生;
3)事件发生时,执行对应的事件过程;
4)重复执行步骤(2)和(3);
5) 直到遇到“END”结束语句结束程序的运行 或按“结束”强行停止程序的运行。
2.3 建立简单的应用程序
top↑ 以例2.1为例
引例2.2 对输入的字符进行转换的程序。
转换规则: 大写字母转换成小写字母,小写字母转换成大写字母,空格不转换,其余转换成“*”。 要求:每输入一个字符,马上就进行判断和转换。
代码:
Option Explicit
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim aa As String * 1
Dim Length As Integer ’ Length存放文本框中字符串的长度
Length = Len(Text2.Text) ’ 求Text2中字符串长度
aa = Chr$(KeyAscii) ’ 将ASCII码转换成字符
Select Case aa
Case "A" To "Z" ’大写转换成小写
aa = Chr$(KeyAscii + 32)
Case "a" To "z" ’小写转换成大写
aa = Chr$(KeyAscii - 32)
Case " "
Case Else
aa = "*"
End Select
’ 将转换文本框已有的内容与刚输入并转换的字符连接
Text2.Text = Text2.Text & aa
End Sub
Private Sub Command1_Click()
Text1.Text = ""
Text2.Text = ""
End Sub
Private Sub Command2_Click()
End
End Sub
1.建立用户界面的对象
2.对象属性的设置
3.对象事件过程及编程
4.程序运行和调试
5.保存文件
2.4 基本控件和属性
top↑ 一.常用属性
1.Name名称属性
创建的对象名称,有默认的名.在程序中,控件名是作为对象的标识而引用,不会显示在窗体上。
2.Caption标题属性
该属性决定了控件上显示的内容。
3.Height、width、top和left属性
4.Enabled属性
控件是否可操作. 当设置为false时,呈暗淡色,禁止用户进行操作。
5.Visible属性
控件是否可见.当设置为false时, 用户看不到,但控件本身存在。
6.Font属性
在窗体是建立两个命令按钮Command1和Command2, Command2的Font通过属性窗口设置, 其余属性通过代码实现。
7.Forecolor前景颜色属性
设置控件的前景颜色(即正文颜色). 其值是一个16进制常数,用户可以在调色板中直接选择所需颜色。
8.Backcolor背景颜色属性
9.Backstyle背景风格属性
0-transparent:透明显示,即控件背景颜色显示不出来
10.BorderStyle边框风格属性
0-None:控件周围没有边框
1-Fixed Single:控件带有单边框。
11.Alignment属性
控件上正文水平对齐方式
0: 正文左对齐 1: 右对齐 2: 居中
12.AutoSize属性
控件是否根据正文自动调整大小, False。
13.WordWarp属性
AutoSize True时,WordWarp才有效
按正文字体大小在垂直方向上改变显示区域的大小。
14.TabIndex属性
决定了按Tab键时,焦点在各个控件移动的顺序。各个控件默认TabIndex值就是以控件建立时的顺序,第一个为0。
15.控件默认属性
反映该控件最重要的属性,使用时可省略属性名。
注意:Command的默认属性为Default,当该属性为True,当按Enter键,该控件起作用。
例2.3
控件设置:
效果:
二.窗体
1.属性
Caption标题
MaxButton、MinButton
Icon、ControlBox
Picture、AutoRedraw
BorderStyle (0 1 2 3 4 5 )
WindowsState (0-正常、1-最小化、2-最大化)
2.事件
Click、DblClick和Load
Load 当装入窗体时激发,通常用于对属性和变量初始化。
3.方法
Print、Cls和Move等
例2.4 上述属性、Click、DblClick和Load 事件演示。
三. 标签 Label
用于显示文本(输出)信息,不能作为输入信息的界面。
例2.5. 显示浮雕效果的文字,实现方法:字颜色、标签位置
四.文本框 TextBox
是一个文本编辑区域,可在该区域输入,编辑和显示正文内容。
1.其他属性
例2.6 复制选中的文本
代码:
Private Sub Form_Click()
Text1.SelStart = 0
Text1.SelLength = 8
Text2.Text = Text1.SelText
End Sub
2.常用事件
Change : 当改变文本框的Text属性时会引发该事件.
KeyPress(KeyAscii As Integer): 同上,并可返回一个KeyAscii参数
KeyAscii 为13,按回车键;为0 去除刚输入的字符.
LostFocus : 当控件失去焦点时发生.
GotFocus : 当控件获得焦点时发生.
3.常用方法
[对象.]SetFocus: 是把光标移到指定的文本框对象中。
4.文本框的应用 数据过滤
例2.7 要求输入合法的数字数据。当输入结束时(按Tab键),对于输入正确的数据,显示正确信息;对输入的非数字数据,则响铃(Beep)、显示错误信息、清除文本框中的内容,并使焦点重新回到文本框。
代码:
Private Sub Text2_LostFocus()
Dim i As Integer
If IsNumeric(Text2) Then
Text3.Text = "正确!!"
Else
Text2.Text = "" ’清除输入文本框中的内容
Text2.SetFocus ’控制权重新回到输入文本框
Text3.Text = "错误,再输入!!" ’在显示文本框显示有关
End If
End Sub
Text2_ LostFocus :当输入结束按Tab键时,该事件激发
IsNumeric(Text2) : 判断是否输入非数字数据.
Text2.SetFocus : 使焦点重新回到文本框
五.命令按钮CommandButton
接受用户输入的命令.输入命令可以有三种方式:
鼠标单击 ,Tab键焦点到该按钮, 快捷键
1.其他属性
按钮可显示图片文件(.bmp和.Ico),当Style为1时有效
2.事件
Click
3.例 2.8
建立一个允许剪切、复制和粘贴的简单便笺板程序。
代码:
Dim st As String
Private Sub cmdCopy_Click()
st = txtNoteEdit.SelText ’将选中的内容存放到st变量中
cmdCopy.Enabled = False ’进行复制后,剪切和复制按钮无效
cmdCut.Enabled = False
cmdPaste.Enabled = True ’粘贴按钮有效
End Sub
Private Sub cmdCut_Click()
st = txtNoteEdit.SelText ’将选中的内容存放到st变量中
txtNoteEdit.SelText = "" ’将选中的内容清除,实现了剪切
cmdCopy.Enabled = False
cmdCut.Enabled = False
cmdPaste.Enabled = True
End Sub
Private Sub cmdExit_Click()
End
End Sub
Private Sub cmdPaste_Click()
’ 将st变量中的内容插入到光标所在的位置,实现了粘贴
txtNoteEdit.Text = Left(txtNoteEdit, txtNoteEdit.SelStart) + st + Mid(txtNoteEdit, txtNoteEdit.SelStart + 1)
End Sub
Private Sub Form_Load() ’设置剪切、复制、粘贴按钮无效
cmdCut.Enabled = False
cmdCopy.Enabled = False
cmdPaste.Enabled = False
End Sub
Private Sub txtNoteEdit_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If txtNoteEdit.SelText <> "" Then
cmdCut.Enabled = True ’ 当拖动鼠标选中要操作的文本后,剪切、复制按钮有效
cmdCopy.Enabled = True
cmdPaste.Enabled = False
Else
cmdCut.Enabled = False ’ 当拖动鼠标未选中文本,剪切、复制按钮无效
cmdCopy.Enabled = False
cmdPaste.Enabled = True
End If
End Sub
增加内容:利用MouseMove事件决定命令按钮的有效性,即当选中内容,“剪切”、“复制”按钮有效,否则无效。
六 常用方法
方法是面向对象的,故使用的形式为: [对象.]方法
1.Print方法
形式: [对象.]Print[{Spc(n)|Tab(n)}][表达式列表][;|,]
作用: 在对象上输出信息
对象:窗体、图形框或打印机(Printer) ,省略对象在窗体上输出。
Spc(n)函数:插入n个空格,允许重复使用。
Tab(n)函数:左端开始右移动n列,允许重复使用。
;(分号):光标定位上一个显示的字符后。
,(逗号):光标定位在下一个打印区的开始位置处。
无;,换行。
开始打印的位置是由对象的CurrentX和CurrentX属性决定,缺省为打印对象的左上角0,0。
注意:Print方法在Form _Load事件过程中起作用,必须设置窗体的AutoRedraw为True。
例2.9 显示图形(图exp02_09)
Private Sub Form_Click()
Print
Print
For i = 1 To 5
Print Tab(i); String(6 - i, "▼"); Spc(6); String(i, "▲")
Next i
End Sub
考虑:若把Spc(6)换成Tab(6),效果如何?
2.Cls方法
形式 : [对象.]Cls
作用 : 清除运行时在窗体或图形框中显示的文本或图形。
注意 : 不清除在设计时的文本和图形。
3.Move方法
形式 : [对象.]Move 左边距离[,上边距离[,宽度[,高度]]]
作用 : 移动窗体或控件,并可改变其大小。
对象:可以是窗体及除时钟、菜单外的所有控件
例2.10 图形起始点(左上角)移到窗体的中心,同时图形缩小50%。 (图pic04_6_2)
代码:
Private Sub Form_Load()
Image1.Top = 0 ’ 图形定位在窗体的左上角
Image1.Left = 0
Image1.Picture = LoadPicture(App.Path + "\window.jpg") ’ 装入图形
End Sub
’ 单击图形框,移动图形框起始点(左上角)到窗体中心位置
Private Sub Image1_Click()
Image1.Move (Form1.Left + Form1.ScaleWidth) \ 2 - Form1.Left, _
(Form1.Top + Form1.ScaleHeight) \ 2 - Form1.Top, _
Image1.Width \ 2, Image1.Height \ 2
End Sub
七.应用举例
例2-11 编一计算月支付贷款的程序。现要求根据房产商提供的信息,买房者选择房型、面积、单价、按揭期等信息,计算每月支付代款的程序。
第一个窗体:列表框选择数据、标签显示数据、文本框输入数据;
第二个窗体:图形框显示房屋的平面图。
Pmt函数计算月支付贷款
2.5 工程的管理及环境的设置
top↑ 一.工程的组成
工程文件包含了一个应用程序的所有文件:
窗体文件(.frm):控件及属性、事件过程和自定义过程
窗体的二进制数据文件(.frx),自动产生同名.frx文件。
标准模块文件(.bas)
类模块的文件(.cls)
资源文件(.res)
ActiveX控件的文件(.ocx)
二.创建、打开和保存工程
三.添加、删除和保存文件
注意:
1.窗体名和窗体文件名概念,
窗体名:窗体的Name属性,在代码中用来引用该窗体,同一工程不能有相同的窗体名;
窗体文件名:窗体存放在磁盘上的文件名,该文件包含了该窗体的所有控件属性和代码,同一文件夹不能有相同的文件名。
2. 在工程中添加现存的窗体时,只是对该窗体文件的引用纳入工程。因此,如果更改窗体并保存它,会影响包含此窗体文件的任何工程。
3. 在工程中删除窗体时,仅将此窗体从工程里删除掉,但是窗体文件仍存在于磁盘上。但是,如果在VB之外删除一个窗体文件,VB不能更新此工程文件,当打开此工程时,将显示一个文件丢失的错误信息。
4.对窗体文件改名方法二:
1).打开工程 “另存为…Form”实现文件的复制 保存工程文件
2).利用编辑程序打开工程文件 , 修改FORM=XXX的文件名
2.6 生成可执行文件和制作安装盘
top↑ 以工程文件例2.11为例:
1.生成可执行文件
文件/生成V6B2-11.exe文件,然后关闭Visual Basic6.0。
2.制作安装盘
运行V B6.0中文版工具“Package & Deployment”,在向导的指导下:
“打包”:把工程中用到的各种类型的文件进行打包压缩后,存放
到特定的目录下。
“展开”:再把这些打包的文件展开到用户可以携带的安装介质 软盘、光盘等。
3.检测安装程序
在没有VB6.0系统的环境下,执行安装盘中的Setup.exe文件,将发 行盘进行安装。
2.7 程序调试
top↑ 错误类型
(1)编辑错误
在编辑代码时,VB会对键入的代码直接进行语法检查。当发现代码存在打字错误,遗漏关键字或标点符等语法错误,VB在Form窗口中弹出一个子窗口,提示出错信息,出错的那一行变成红色。这时,用户必须单击“确定”按钮,关闭出错提示窗,然后对出错行进行修改。
(2)编译错误
编译错误指按了“启动”按钮,VB开始运行程序前,先编译执行的程序段时,产生的错误。此类错误由于用户未定义变量、遗漏关键字等原因产生。这时,Visual Basic也弹出一个子窗口,提示出错信息,出错的那一行被高亮度显示。
(3)运行错误
运行时错误指VB在编译通过后,运行代码时发生的错误。这类错误往往是指令代码执行了一非法操作引起的。例如类型不匹配、试图打开一个不存在的文件等。
(4) 逻辑错误
程序运行后,得不到所期望的结果,这说明程序存在逻辑错误。这类错误往往是程序存在逻辑上的缺陷所引起。例如,运算符使用不正确、语句的次序不对、循环语句的起始、终值不正确等。通常,逻辑错误不会产生错误提示信息,故错误较难排除,需要程序员仔细地阅读分析程序以及调试。
(5)设置断点和逐语句跟踪
断点是告诉VB挂起程序执行的一个标记,当程序执行到断点处即暂停程序的运行,进入中断模式。设置或删除断点的步骤:
中断模式下,直接查看某个变量的值,只要把鼠标指向所关心的变量处,稍停一下,就在鼠标下方显示该变量的值。
2.8 常见错误
top↑ 1.使用中文标点符号
系统产生“无效字符”,以红色显示
2.字母和数字形状相似
小写字母“l”和数字“1”形式相同、小写字母“o”与数字“0”。
3.对象名称(Name)属性写错
Text1、Text2、Command1、txtInput、txtOutput、cmdOk
4.对象的属性名、方法名、标准函数名写错
尽量使用自动列出成员功能。正确的系统按规定的大小写表示。
5.无意形成控件数组
建立控件时小心使用“复制”、“粘贴”按钮
6.打开工程时找不到对应的文件
保存文件时先保存窗体.frm文件、再保存.vbp文件,注意路径。
第三章 VB语言基础top↑ 3.1 编码规则
top↑ 1.VB代码不区分字母的大小写
系统保留字自动转换每个单词的首字母大写
用户自定义行以第一次为准
2.语句书写自由
一行可书写几句语句,之间用冒号分隔;
一句语句可分若干行书写,用续行符连接 _
一行<=255个字符
3.注释有利于程序的维护和调试
Rem开始 或 单撇 ‘
4.保留行号与标号.
3.2 标准数据类型
top↑
(图)
3.3 变量与常量
top↑ 一.变量和常量的命名规则
变量:在程序运行中其存储的值可以改变。
常量:在程序运行中其值不可以改变。
命名规则:
1.以字母或汉字开头,后可跟汉字、字母、数字或下划线组成,长度小于等于255个字符;
2.不要使用VB中的关键字;
3.VB中不区分变量名的大小写.
4.为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。
二.变量声明
1.用Dim语句显式声明变量
形式 :Dim 变量名 [AS 类型]
Dim 变量名类型符
例 Dim iCount As integer , sAllsum As single等价于 Dim iCount%, sAllsum!
2.隐式声明
未进行上述的声明而直接使用,其类型为 Variant 类型建议不使用.
注意: 在通用声明处加 Option Explicit 语句来强制显式声明变量。
三.常量
1. 用户声明常量
形式:
Const 常量名 [AS 类型] = 表达式
省略 [AS 类型] ,常量的类型由表达式值的类型决定
为使与变量名区分,一般常量名使用大写字母
例 Const MAX=100
2. 系统提供的常量
系统定义常量位于对象库中,可通过“对象浏览器”查看.
例: vbNormal vbMinimized、vbbCrLf等.
3.4 运算符和表达式
top↑ 一.运算符
1. 算术运算符
例:(
2.字符串运算符
& 、+ 字符串连接
" 123 " + " 456 " 结果 " 123456 "
" 123 " & " 456 " 结果 " 123456 "
区别: + 两边必须是字符串, & 不一定
例如:
" abcdef " + 12345 ’出错
"abcdef" & 12345 ’ 结果为 "abcdef12345 "
" 123 " + 456 ’ 结果为 579
" 123 " & 456 ’ 结果为 " 123456 "
3.关系运算符
将两个操作数进行大小比较,结果为逻辑量。
字符串比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止。
"男字" > "女字" 按汉字的拼音字母比较
4.逻辑运算符
将操作数进行逻辑运算,结果是逻辑值
条件表达式1 And 条件表达式2 条件表达式均为T 结果为T
条件表达式1 Or 条件表达式2 条件表达式有一个T 结果为T
二. 表达式
1.组成
变量、常量、函数、运算符和圆括号
2.书写规则
(1)运算符不能相邻。例a+-b是错误的。
(2)乘号不能省略。例x 乘以y 应写成:x*y
(3)括号必须成对出现,均使用圆括号。
(4)表达式从左到右在同一基准上书写,无高低、大小。
3. 不同数据类型的转换
运算结果的数据类型向精度高的数据类型靠.
Integer<Long<Single<Double<Currency
4. 优先级
算术运算符>=字符运算符>关系运算符>逻辑运算
例:用人单位招聘秘书:年龄小于40岁,女性,学历专科或本科
年龄<40 性别=“女” (学历=“专科” 学历=“本科”)
And And Or
考虑:若分别写成:
年龄<40 And 性别=“女” And (学历=“专科” And 学历=“本科”)
年龄<40 Or 性别=“女” Or (学历=“专科” Or 学历=“本科”)
例:表示算术表达式:
正确的VB表达式: 3〈=x And x <=7
错误的VB表达式: 3<=x<=7 或 3<=x Or x<=7
比a大,比b小用Or
比a大,比b小用And
3.5 常用内部函数
top↑ 1. 数学函数
Rnd函数返回0和1(包括0但不包括1)之间的双精度随机数.
每次运行时,要产生不同序列的随机数,执行Randomize 语句.
例产生1-100的随机数: Int(Rnd *100)+1
2. 转换函数
Chr(66)--> “B“ Asc (“B")--> 66
Asc(Chr(99))--> 99 Chr(Asc(“K”))--> “K”
Ucase$("abcdefg") -->“ABCDEFG"
3.日期函
Time 返回系统时间 Date 返回系统日期
DateAdd(要增减日期形式,增减量,要增减的日期变量)
DateDiff(要间隔日期形式,日期1,日期2)
例如求两个时间相差的秒数:
DateDiff(”s”,#19:3:23#, #19:5:1# )结果为98
4.字符串编码和函数
(1)字符串编码
Windows系统对字符采用了DBCS编码,中文2字节,西文1字节
VB中字符Unicode编码,任何字符2字节.
Len(“中国good”)为6 LenB(“中国good”)为12
StrConv() 进行DBCS与Unicode之间转换 .
(2)字符串函数
Mid$("ABCDEFG",2,3)--> "BCD"
InStr(2, "ABCDEFG", "EF")--> 5
S=Split("123,56,ab",",")
Join(S,"")--> "123 56 ab"
Replace("ABCDABCD","CD","123") -->“AB123AB123”
5.格式输出函数
例3.1 利用Format函数显示有关的日期和时间。
代码:
Private Sub Form_Click()
FontSize = 12
MyTime = #9:21:30 PM#
MyDate = #7/21/1997#
Print Tab(2); Format(MyDate, "m/d/yy")
Print Tab(2); Format(MyDate, "mmmm-yy")
Print Tab(2); Format(MyTime, "h-m-s AM/PM")
Print Tab(2); Format(MyTime, "hh:mm:ss A/P")
Print Tab(2); Format(Date, "dddd,mmmm,dd,yyyy") ’ 显示系统当前日期
Print Tab(2); Format(Now, "yyyy年m月dd日 hh:mm") ’ 显示系统当前日期和时间
Print FormatDateTime(Now) ’ vb6.0新提供的函数
End Sub
6.Shell函数
能在DOS下或Windows下运行的应用程序,也可以在VB中调用.
形式: Shell(命令字符串,窗口类型)
窗口类型值为1表示正常窗口,缺省窗口最小化为图标。
i = Shell("c:\windows\calc.exe")
j = Shell("c:\command.com", 1)
3.6 常用错误
top↑ 1.逻辑表达式书写错,在VB没有造成语法错而形成逻辑错
例数学表达式 3≤x<10 VB表达式为 3<=x<10
问题在于VB中的逻辑量与数值量可互转
2.同时给多个变量赋值,在VB没有造成语法错而形成逻辑错
例 Dim x%,y%,z%
x=y=z=1
3.标准函数名写错
4.变量名写错
检查方法:在通用声明段加Option Explicit
5.语句书写位置错
在通用声明段只能有Dim语句,不能有赋值等其它语句
整理到第四章 2008-4-4上午