标题：VisualBasic程序设计全程指南
宣传语
1、 知识全面，实例精彩，指导性强
语言基础、开发进阶、数据库开发、高级技术，循序渐进地全面讲解Visual Basic程序开发的方方面面。
2、 用实例说话，讲解详细，通俗易懂
全书包含了100多个实例，文中穿插大量的“编者手记”，让读者掌握更多的编程技术和注意事项。
内 容 简 介
本书通过大量的实例，由浅入深地介绍了Visual Basic 6.0软件开发的知识和编程方法。全书概念清晰、层次分明，通俗易懂。
本书详细介绍了VB 6.0的基本知识、VB编程语言、VB 6.0面向对象技术、VB 6.0的常用控件、Access和SQL Server的基础知识、数据库编程技术、多媒体技术、网络编程技术等。
本书主要适用于初、中级的Visual Basic 6.0用户，但后面几章“VB数据库编程”及“图形、鼠标和多媒体应用”等也适用于高级用户使用。为了方便读者的学习，本书在配套光盘中存放了所有本书的实例。
前言
Visual Basic（简称VB）是Microsoft公司推出的一种Windows应用程序开发工具。由于它具有简单易学、操作方便、功能强大等特点，已经成为普通用户首选的程序设计语言。在我国，VB 6.0中文版相当流行。它提供了程序设计领域中文件访问技术、图形图像处理技术、网络通信技术、多媒体技术和数据库编程技术等。Visual Basic几乎可以开发任何一个软件产品。
目前市场上相关的图书很多，为了能够让读者更好地了解本书，本书特做如下安排：
1、丰富的实例。全书包含了100多个实例，几乎每一章节都有对应的实例。每个实例涵盖了VB编程的一个知识点。其中既有反映技术要点的小实例，也有比较大型的综合实例，读者在开发过程中遇到的问题基本可以在本书中得到解决。所有的源代码都放在本书配套的光盘中供读者学习使用。
2、全书内容由浅入深，表达清晰。本书中VB的知识内容是按照环环相扣、循序渐进的思想来介绍的，从如何创建项目出发，逐渐介绍了各种复杂的应用，这样即使是初学者也能较为容易地掌握VB的开发技术。
3、内容新颖。本书在全面介绍VB 6.0基础上着重介绍了一些新技术，并为这些新特性提供了翔实的代码实例。
4、书中大量使用编者手记，通过技巧提示的方式让读者掌握更多的编程技术和注意事项，使读者少走弯路，更加快速地掌握VB编程技巧。
由于作者的水平有限，书中错误和不妥之处在所难免，敬请读者批评指正联系E-mail：jsj@phei.com.cn。
编著者 
2008年12月
目 录
第1篇 语言基础
第1章 Visual Basic 6.0概述 1
1.1 Visual Basic简介 2
1.1.1 Windows编程和事件驱动 2
1.1.2 面向对象编程 3
1.1.3 交互式开发 3
1.2 Visual Basic 6.0的版本 4
1.3 Visual Basic 6.0的新特点 4
1.3.1 控件的新特点 4
1.3.2 数据库 7
1.3.3 语言的新增特性 7
1.3.4 网络开发 7
1.4 Visual Basic 6.0的安装 8
1.4.1 Visual Basic 6.0的运行环境 8
1.4.2 安装Visual Basic 6.0 8
1.4.3 添加或删除Visual Basic 6.0组件 10
1.5 启动和退出Visual Basic 6.0 11
1.5.1 启动Visual Basic 6.0 11
1.5.2 退出Visual Basic 6.0 11
1.6 Visual Basic 6.0的集成开发环境 12
1.7 第一个Visual Basic应用程序 20
1.7.1 界面设计 20
1.7.2 设置对象的属性 23
1.7.3 编写事件驱动代码 23
1.7.4 运行应用程序 25
1.8 工程管理 25
1.8.1 工程的基本概念 25
1.8.2 工程资源管理器 26
1.8.3 工程结构 26
1.8.4 创建、打开和保存工程 27
1.8.5 编译工程 29
1.8.6 添加、删除文件 30
1.8.7 在工程中添加控件 31
1.8.8 使用其他应用程序的对象 32
1.8.9 使用资源文件 33
1.8.10 设置工程选项 33
1.9 本章小结 34
第2章 VB程序设计基础 35
2.1 基本概念 36
2.1.1 关键字 36
2.1.2 标识符 36
2.1.3 VB字符集 36
2.2 数据类型 37
2.2.1 基本数据类型 37
2.2.2 数据类型转换 40
2.2.3 自定义数据类型 40
2.3 常量和变量 41
2.3.1 常量 41
2.3.2 变量 44
2.4 运算符和表达式 51
2.4.1 算术运算符和算术表达式 51
2.4.2 关系运算符和关系表达式 53
2.4.3 逻辑运算符和逻辑表达式 56
2.4.4 连接运算符和字符串表达式 58
2.4.5 日期表达式 60
2.4.6 运算符优先顺序 61
2.5 数据的输入/输出 61
2.5.1 InputBox函数 61
2.5.2 MsgBox函数 64
2.5.3 Print方法 67
2.6 常用内部函数 70
2.6.1 算术函数 70
2.6.2 字符串函数 73
2.6.3 日期与时间函数 74
2.7 本章小结 75
第3章 Visual Basic程序语句 76
3.1 VB编码规则 77
3.1.1 VB语句 77
3.1.2 代码书写规则 77
3.1.3 语句书写规则 77
3.1.4 赋值语句 78
3.1.5 注释语句 79
3.1.6 命令格式中的符号约定 80
3.1.7 良好的编程习惯 80
3.2 基本控制结构 81
3.3 顺序结构 81
3.4 分支结构 82
3.4.1 If语句 82
3.4.2 Select Case语句 86
3.4.3 分支结构的嵌套 88
3.5 循环结构 91
3.5.1 Do…Loop语句 91
3.5.2 While…Wend语句 96
3.5.3 For…Next语句 97
3.5.4 循环嵌套 101
3.6 其他的控制语句 102
3.6.1 Goto语句 103
3.6.2 Exit与End语句 103
3.6.3 Stop语句 104
3.7 本章小结 104
第4章 数组 105
4.1 数组的概念和作用 106
4.2 数组的声明 106
4.3 数组的引用 107
4.4 静态数组和动态数组 108
4.4.1 定义动态数组 108
4.4.2 保留动态数组的内容 109
4.5 数组的基本操作 109
4.5.1 给数组元素赋初值 109
4.5.2 数组的输入、输出 111
4.5.3 数组的赋值 114
4.5.4 数组中最大元素和所在下标及各
4.5.4 元素之和 115
4.5.5 交换数组中各元素 117
4.6 二维数组 118
4.7 多维数组 120
4.8 控件数组 121
4.8.1 控件数组的概念 121
4.8.2 控件数组的建立 121
4.9 自定义类型和数组 126
4.10 本章小结 127
第2篇 开发进阶
第5章 过程和函数 128
5.1 Sub过程 129
5.1.1 事件过程 129
5.1.2 通用过程 130
5.2 Function过程 133
5.3 过程的调用 134
5.3.1 调用Sub事件过程 134
5.3.2 调用Sub通用过程 136
5.3.3 调用Function过程 138
5.3.4 调用其他模块中的过程 140
5.4 参数传递 142
5.4.1 形参和实参 143
5.4.2 参数按值传递和按地址传递 144
5.4.3 数组参数 149
5.4.4 对象参数 151
5.4.5 参数的其他知识 154
5.5 过程的嵌套和递归调用 161
5.5.1 过程的嵌套调用 161
5.5.2 过程的递归调用 163
5.6 Sub Main过程与快速提示窗体 166
5.6.1 Sub Main过程 166
5.6.2 启动时的快速显示 168
5.7 综合应用 169
5.7.1 排序问题 169
5.7.2 查找问题 174
5.7.3 插入问题 178
5.8 本章小结 180
第6章 VB面向对象技术 181
6.1 面向对象的程序设计 182
6.2 对象和类 182
6.3 创建对象 184
6.3.1 声明对象变量 184
6.3.2 为对象变量赋值 184
6.3.3 对象变量的使用 185
6.3.4 特定对象类型与一般对象类型 186
6.3.5 作为对象的窗体 187
6.3.6 释放对对象的引用 187
6.3.7 给过程传递对象 187
6.4 使用New关键字 188
6.4.1 在窗体上使用New关键字 188
6.4.2 对其他对象使用New关键字 190
6.4.3 New关键字的限制 191
6.5 对象的属性、方法和事件 192
6.5.1 对象的属性 192
6.5.2 对象的方法 197
6.5.3 对象的事件 199
6.6 使用With结构 199
6.7 类的相关知识 201
6.7.1 类将用户定义类型和过程组织在一起 201
6.7.2 定制窗体类 202
6.7.3 类的引用 205
6.7.4 向类中添加属性 205
6.7.5 运用属性过程 211
6.7.6 向类中添加方法 217
6.7.7 向类中添加事件 217
6.8 本章小结 224
第7章 窗体 225
7.1 窗体的结构 226
7.2 窗体属性 226
7.2.1 杂项属性 227
7.2.2 外观属性 228
7.2.3 位置属性 230
7.2.4 行为属性 230
7.2.5 字体属性 230
7.2.6 DDE属性 230
7.2.7 缩放属性 230
7.3 窗体的常用方法 231
7.3.1 显示窗体——Show方法 231
7.3.2 隐藏窗体——Hide方法 233
7.3.3 移动窗体——Move方法 234
7.3.4 添加自定义方法和属性 235
7.4 窗体的常用事件 235
7.4.1 Click事件 236
7.4.2 DblClick事件 237
7.4.3 初始化——Initialize事件 238
7.4.4 Activate和Deactivate事件 239
7.4.5 Load事件 241
7.4.6 QueryUnload事件 241
7.4.7 Unload事件 242
7.4.8 GotFocus和LostFocus事件 245
7.4.9 Resize事件 245
7.5 窗体的启动、加载、卸载和关闭 247
7.5.1 设置启动窗体 247
7.5.2 加载窗体——Load语句 247
7.5.3 卸载窗体——Unload语句 248
7.5.4 关闭窗体——End语句 250
7.6 本章小结 250
第8章 VB常用控件 251
8.1 控件介绍 252
8.1.1 控件的分类 252
8.1.2 名称（Name）属性 252
8.1.3 控件的值属性 253
8.1.4 焦点（focus） 253
8.1.5 Move方法 254
8.1.6 访问键 254
8.1.7 容器 254
8.2 标签控件（Label） 254
8.2.1 标签控件的常用属性 255
8.2.2 标签控件的常用方法 257
8.3 文本框控件（TextBox） 258
8.3.1 文本框控件的常用属性 258
8.3.2 文本框控件的常用事件 264
8.3.3 文本框控件的常用方法 265
8.4 命令按钮控件（CommandButton） 267
8.4.1 命令按钮的常用属性 267
8.4.2 命令按钮的常用事件 268
8.4.3 命令按钮的常用方法 269
8.5 单选按钮控件（OptionButton） 270
8.5.1 单选按钮的常用属性 270
8.5.2 单选按钮的常用事件 271
8.6 复选框控件（CheckBox） 273
8.6.1 复选框的常用属性 273
8.6.2 复选框控件的常用事件 274
8.7 框架控件（Frame） 275
8.8 列表框控件（ListBox） 277
8.8.1 列表框控件常用属性 277
8.8.2 列表框的常用事件 279
8.8.3 列表框的常用方法 279
8.9 组合框控件（ComboBox） 283
8.9.1 组合框控件常用属性 283
8.9.2 组合控件的常用事件和方法 283
8.10 图片框和图像框控件 286
8.10.1 图片框控件（PictureBox） 286
8.10.2 图像框（Image） 289
8.10.3 图片框与图像框的区别 290
8.11 滚动条控件 293
8.11.1 滚动条控件的常用属性 293
8.11.2 滚动条控件的常用事件 294
8.12 定时器（Timer）控件 296
8.12.1 定时器控件的常用属性 296
8.12.2 定时器控件的常用事件 297
8.13 文件系统控件 299
8.13.1 常用属性 299
8.13.2 常用事件 299
8.13.3 常用语句 300
8.14 本章小结 301
第9章 用户界面设计 302
9.1 用户界面 303
9.1.1 用户界面类型 303
9.1.2 VB应用程序的界面设计 304
9.2 菜单设计 304
9.2.1 菜单的基本概念 304
9.2.2 菜单编辑器 306
9.2.3 下拉式菜单的设计 308
9.2.4 弹出式菜单的设计 310
9.2.5 菜单的Click事件 311
9.2.6 运行时改变菜单属性 312
9.3 通用对话框 313
9.3.1 通用对话框控件 313
9.3.2 “打开”/“另存为”对话框 314
9.3.3 “颜色”对话框 318
9.3.4 “字体”对话框 320
9.3.5 “打印”对话框 323
9.3.6 “帮助”窗口 325
9.4 MDI窗体设计 326
9.4.1 MDI主窗体和MDI子窗体 326
9.4.2 创建MDI应用程序 327
9.4.3 MDI窗体运行时的特性 328
9.4.4 MDI窗体及其子窗体的应用 329
9.5 工具栏 333
9.5.1 Toolbar控件 334
9.5.2 添加按钮 336
9.5.3 ImageList控件 339
9.5.4 添加图像 341
9.5.5 将ToolBar控件与ImageList控件相关联 344
9.5.6 响应Toolbar控件的事件 345
9.6 状态栏 348
9.6.1 StatusBar控件的常用属性 348
9.6.2 添加面板 350
9.7 本章小结 351
第10章 程序调试和创建帮助 352
10.1 程序的调试 353
10.1.1 VB的三种工作模式 353
10.1.2 错误的类型 354
10.2 断点跟踪调试 358
10.2.1 调试工具栏 358
10.2.2 设置断点 359
10.2.3 跟踪调试程序 360
10.3 使用调试窗口 362
10.3.1 立即窗口 363
10.3.2 监视窗口 365
10.3.3 本地窗口 367
10.4 错误处理和条件编译 368
10.4.1 捕获错误 368
10.4.2 退出错误处理语句 369
10.4.3 屏蔽错误 369
10.4.4 Err对象 371
10.5 为应用程序提供帮助 372
10.5.1 使用Windows Help Workshop创建帮助 373
10.5.2 从Visual Basic中使用帮助文件 375
10.6 制作安装程序 375
10.7 小结 375
第3篇 数据库开发
第11章 数据库基础知识 376
11.1 使用Access数据库 377
11.2 SQL Server数据库 378
11.2.1 SQL Server简介 379
11.2.2 SQL Server 2005的主要特性 379
11.2.3 SQL Server 2005的安装 380
11.2.4 启动SQL Server 2005 383
11.3 SQL Server 2005的使用 384
11.3.1 数据库管理 384
11.3.2 表管理 389
11.3.3 视图管理 391
11.4 常用的Transact-SQL语言 392
11.4.1 数据定义 393
11.4.2 数据查询 396
11.4.3 数据更新 400
11.5 本章小结 407
第12章 VB数据库编程 408
12.1 DAO控件 409
12.1.1 DAO控件概述 409
12.1.2 Data控件 409
12.2 DAO对象数据库编程 416
12.3 ADO控件 421
12.3.1 ADO基本概念 421
12.3.2 创建ADO Data控件 422
12.4 ADO对象 429
12.4.1 Connection对象 430
12.4.2 RecordSet对象 441
12.4.3 Command对象 446
12.5 报表设计 450
12.5.1 报表设计器 450
12.5.2 设计报表 450
12.5.3 报表打印 450
12.6 本章小结 450
第4篇 高级技术
第13章 图形、鼠标和多媒体应用 451
13.1 图形和文本 452
13.1.1 坐标系 452
13.1.2 颜色的设置 453
13.1.3 图形处理 455
13.1.4 文本处理 464
13.1.5 打印 467
13.1.6 剪贴板（ClipBoard） 468
13.2 鼠标和键盘 471
13.2.1 鼠标事件 471
13.2.2 改变鼠标指针 476
13.2.3 键盘事件 477
13.2.4 控件拖放 480
13.2.5 OLE拖放 486
13.3 多媒体应用 489
13.3.1 Animation控件 489
13.3.2 Multimedia控件 491
13.4 本章小结 495
第14章 文件处理 496
14.1 文件概述 497
14.1.1 文件的结构 497
14.1.2 文件的分类 497
14.1.3 文件的基本操作 497
14.2 顺序文件 497
14.2.1 顺序文件的打开与关闭 497
14.2.2 顺序文件的读写操作 499
14.2.3 其他语句与函数 506
14.3 随机文件 509
14.3.1 声明变量 509
14.3.2 随机文件的打开与关闭 510
14.3.3 随机文件的读写操作 510
14.2.4 随机文件的增和删 511
14.4 二进制文件 514
14.4.1 二进制文件的打开 515
14.4.2 二进制文件的读写操作 515
14.5 常用的文件操作语句和函数 516
14.6 本章小结 516
第15章 VB网络编程 517
15.1 Winsock控件网络编程 518
15.1.1 TCP基础 518
15.1.2 UDP基础 518
15.1.3 Winsock控件属性 519
15.1.4 Winsock控件方法 519
15.1.5 Winsock控件事件 519
15.1.6 Winsock控件的TCP编程 519
15.1.7 Winsock控件的UDP编程技术 530
15.2 Internet Transfer控件网络编程 534
15.2.1 Internet Transfer控件属性 535
15.2.2 Internet Transfer控件方法 535
15.2.3 Internet Transfer控件事件 535
15.3 WebBrowser控件 537
15.3.1 WebBrowser控件属性 538
15.3.2 WebBrowser控件方法 538
15.3.3 WebBrowser控件事件 538
15.4 MSComm控件 541
15.4.1 MSComm控件的属性 541
15.4.2 MSComm控件的事件 541
15.4.3 利用MSComm控件进行通信的步骤 541
15.5 本章小结 546
实例目录
第2章 VB程序设计基础 35
实例2-1 常量的使用 43
实例2-2 变量的使用 49
实例2-3 算术表达式的使用 52
实例2-4 关系表达式的使用 54
实例2-5 逻辑表达式的使用 57
实例2-6 字符串达式的使用 59
实例2-7 InputBox函数的使用 62
实例2-8 MsgBox函数的使用 66
实例2-9 Print方法的使用 69
实例2-10 查看某年的元旦是星期几 71
实例2-11 将输入的字符串反向显示 73
第3章 Visual Basic程序语句 76
实例3-1 if语句的应用 84
实例3-2 Select Case语句的应用 87
实例3-3 求二次方程的解 89
实例3-4 求1到100之间的正整数之和 92
实例3-5 加密文本 94
实例3-6 求解1!+2!+3!+…+n!的和 96
实例3-7 计算1～100之内连续奇数的和 99
实例3-8 For Each循环语句的使用 100
实例3-9 打印九九乘法表 101
第4章 数组 105
实例4-1 给数组元素赋初值 110
实例4-2 为数组输入数据 112
实例4-3 求最大数组元素并求各元素之和 115
实例4-4 交换数组元素 117
实例4-5 打印杨辉三角 118
实例4-6 一个简单计算器 123
第5章 过程和函数 128
实例5-1 调用Sub事件过程 135
实例5-2 计算1！+2！+...+n！阶乘的和 136
实例5-3 求两个自然数的最大公约数 138
实例5-4 求a！+b！的值 141
实例5-5 求a、b两数中较大数 144
实例5-6 按值和按地址传递参数的比较 147
实例5-7 数组作为过程参数 149
实例5-8 对象作为过程参数 152
实例5-9 检查可选参数是否被省略 155
实例5-10 指定可选参数默认值 157
实例5-11 使用不定量的参数 159
实例5-12 使用命名参数方法来传递参数值 160
实例5-13 过程嵌套调用的应用 161
实例5-14 用递归方式求n！ 164
实例5-15 Sub Main过程的使用 167
实例5-16 冒泡排序 171
实例5-17 选择排序 173
实例5-18 顺序查找法 174
实例5-19 折半查找 176
实例5-20 向数组中插入数组元素 178
第6章 VB面向对象技术 181
实例6-1 对象变量的使用 185
实例6-2 在窗体上使用New关键字 188
实例6-3 对其他对象使用New关键字 190
实例6-4 用属性控制对象 194
实例6-5 使用默认属性 196
实例6-6 使用对象方法 198
实例6-7 使用With结构设置对象属性 200
实例6-8 添加定制的属性 203
实例6-9 Property Get过程的应用 207
实例6-10 Property Let过程的应用 209
实例6-11 读写属性过程的应用 212
实例6-12 读写二维数组属性 215
实例6-13 向类中添加事件 219
实例6-14 类模块的循序渐进 221
第7章 窗体 225
实例7-1 模式和非模式窗体 231
实例7-2 显示和隐藏窗体 233
实例7-3 单击改变窗体标题 237
实例7-4 双击事件过程应用 238
实例7-5 Activate和Deactivate事件应用 239
实例7-6 窗体的载入和卸载 243
实例7-7 Resize事件应用 246
实例7-8 加载和卸载窗体 249
第8章 VB常用控件 251
实例8-1 显示系统时间 257
实例8-2 创建一个登录界面 260
实例8-3 查找字符串 263
实例8-4 简单加法器 266
实例8-5 命令按钮的应用 269
实例8-6 单选按钮的应用 271
实例8-7 复选框控件的应用 274
实例8-8 框架控件的应用 275
实例8-9 列表框控件的应用 279
实例8-10 组合框控件的应用 284
实例8-11 图片框控件的应用 288
实例8-12 图片框和图像框的应用 290
实例8-13 滚动条控件的应用 294
实例8-14 定时器控件的应用 297
实例8-15 文件系统控件的应用 300
第9章 用户界面设计 302
实例9-1 下拉式菜单 308
实例9-2 弹出式菜单 311
实例9-3 菜单的Click事件应用 312
实例9-4 使用“打开”/“另存为”对话框 317
实例9-5 使用“颜色”对话框 319
实例9-6 使用“字体”对话框 321
实例9-7 使用“打印”对话框 324
实例9-8 使用“帮助”窗口 325
实例9-9 MDI窗体的应用 332
实例9-10 向Toolbar控件添加按钮 338
实例9-11 使用ImageList控件 342
实例9-12 将ToolBar控件与ImageList
实例9-12 控件相关联 344
实例9-13 创建简单工具栏 346
实例9-14 创建状态栏 351
第10章 程序调试和创建帮助 352
实例10-1 在立即窗口内检查数据 364
实例10-2 屏蔽错误 370
第11章 数据库基础知识 376
实例11-1 创建基本表 395
实例11-2 单表查询 398
实例11-3 向表中插入数据 402
实例11-4 修改表中数据 404
实例11-5 删除表中数据 406
第12章 VB数据库编程 408
实例12-1 Data控件的应用 413
实例12-2 DAO对象的使用 417
实例12-3 ADO控件数据库编程 426
实例12-4 使用ADO对象连接数据库 433
实例12-5 通过ODBC连接Access数据库 437
实例12-6 通过ODBC连接SQL Server
实例12-6 数据库 439
实例12-7 通过OLE DB连接Access数据库 440
实例12-8 通过OLE DB连接SQL Server
实例12-8 数据库 441
实例12-9 RecordSet对象的使用 443
实例12-10 Command对象的使用 447
第13章 图形、鼠标和多媒体应用 451
实例13-1 画像素点和矩形框 456
实例13-2 Circle方法的使用 458
实例13-3 PaintPicture方法的使用 461
实例13-4 AutoRedraw属性的使用 462
实例13-5 在窗体显示文本 465
实例13-6 字体匹配 466
实例13-7 剪贴板的使用 469
实例13-8 MouseDown事件的使用 472
实例13-9 在窗体中画线 474
实例13-10 MouseMove事件的使用 475
实例13-11 KeyDown事件的使用 480
实例13-12 拖放图片 482
实例13-13 控件拖放的应用实例 483
实例13-14 OLE拖放的应用实例 488
实例13-15 Animation控件的使用 490
实例13-16 Multimedia控件的使用 493
第14章 文件处理 496
实例14-1 Print#语句的使用 500
实例14-2 Print与Write语句比较 501
实例14-3 Input #语句的使用 503
实例14-4 Line Input#语句的使用 505
实例14-5 Input函数的使用 506
实例14-6 读写顺序文件 507
实例14-7 读写随机文件 511
实例14-8 读写二进制文件 515
第15章 VB网络编程 517
实例15-1 基于TCP连接的C/S程序 521
实例15-2 基于TCP的多客户端连接 525
实例15-3 基于UDP的简单聊天程序 531
实例15-4 Internet Transfer控件的应用一 535
实例15-5 Internet Transfer控件的应用二 536
实例15-6 简易的WWW浏览器 539
实例15-7 MSComm控件应用一 542
实例15-8 MSComm控件应用二 544