第1篇 入门篇 2
第1章 初识Visual Basic 2
1.1 Visual Basic简述 3
1.1.1 用户与方案 3
1.1.2 Visual Basic的发展历史 3
1.1.3 Visual Basic 6.0版本 4
1.1.4 如何学好Visual Basic 4
1.2 Visual Basic的优势 5
1.2.1 面向对象的程序设计语言 5
1.2.2 事件驱动机制 6
1.2.3 可视化编程 6
1.2.4 软件集成式开发 6
1.2.5 强大的数据库访问功能 6
1.2.6 网络功能 6
1.2.7 联机帮助功能 7
1.3 使用VisualBasic开发的成功案例 7
1.4 搭建VisualBasic开发环境 8
1.4.1 安装Visual Basic开发环境 8
1.4.2 启动Visual Basic开发环境 9
1.5 第一个Visual Basic程序 11
1.6 本章常见错误 13
1.6.1 代码书写错误 13
1.6.2 对象的属性名、方法名写错 13
1.6.3 保存工程出现“保存工程组” 13
1.7 本章小结 14
第2章 Visual Basic6.0开发环境 15
2.1 Visual Basic 6.0的集成开发环境 16
2.1.1 菜单栏 16
2.1.2 工具栏 18
2.1.3 工具箱 19
2.1.4 工程资源管理器 20
2.1.5 “属性”窗口 21
2.1.6 “窗体布局”窗口 22
2.1.7 代码编辑窗口 22
2.1.8 窗体设计器 22
2.2 Visual Basic 6.0的帮助系统 23
2.2.1 安装与使用MSDN 23
2.2.2 MSDN功能概述 24
2.3 初显身手——加法运算程序 25
2.3.1 创建工程文件 25
2.3.2 设计界面 26
2.3.3 编写代码 26
2.3.4 调试运行 27
2.3.5 保存工程 27
2.3.6 编译程序 27
2.4 综合应用 27
2.4.1 定制工具栏 27
2.4.2 设置工程属性 28
2.4.3 窗体的布局 29
2.4.4 对齐控件 29
2.5 本章常见错误 30
2.5.1 打开工程时找不到对应的文件 30
2.5.2 保存工程时出现中文乱码 30
2.5.3 编译错误:变量未定义 31
2.6 本章小结 31
2.7 跟我上机 31
第3章 Visual Basic语言基础 32
3.1 对象概念 33
3.1.1 什么是对象 33
3.1.2 对象的属性 33
3.1.3 对象的方法 34
3.1.4 对象的事件 35
3.2 关键字及标识符 35
3.2.1 关键字 36
3.2.2 标识符 36
3.3 数据类型 37
3.3.1 基本数据类型 37
3.3.2 记录类型 40
3.3.3 枚举类型 42
3.4 使用变量 42
3.4.1 什么是变量 43
3.4.2 掌握变量的命名规则 43
3.4.3 声明变量 44
3.4.4 变量的作用域 46
3.4.5 理解静态变量的作用 46
3.4.6 处理变量同名问题 47
3.5 使用常量 47
3.5.1 声明常量 48
3.5.2 局部常量和全局常量 48
3.6 运算符和表达式 48
3.6.1 使用运算符 49
3.6.2 了解表达式的构成 50
3.6.3 运算符的优先级 50
3.7 代码编写规则 51
3.7.1 对象命名规则 51
3.7.2 代码书写规则 52
3.7.3 处理关键字冲突 53
3.7.4 代码注释规则 54
3.8 综合应用 55
3.8.1 实现两个变量的交换 55
3.8.2 使用自定义常量计算圆的面积 56
3.8.3 局部变量制作计数器 57
3.8.4 使用公用变量记录当前登录用户 58
3.9 本章常见错误 59
3.9.1 容易混淆的连接符 59
3.9.2 除数为零的错误提示 59
3.10 本章小结 60
3.11 跟我上机 60
第4章 算法和程序控制结构 61
4.1 了解算法 62
4.1.1 什么是算法 62
4.1.2 熟悉算法的特点 62
4.1.3 算法的描述方法 63
4.1.4 程序基本控制结构 64
4.2 顺序结构 65
4.2.1 使用赋值语句给变量赋值 65
4.2.2 将用户数据输入到应用程序 66
4.2.3 将指定信息显示给用户 68
4.3 选择结构 71
4.3.1 单分支If...Then语句 71
4.3.2 双分支If...Then...Else语句 72
4.3.3 If语句的嵌套 73
4.3.4 多分支If...Then...ElseIf语句 76
4.3.5 多分支控制结构Select Case语句 77
4.3.6 用IIf函数简化程序 79
4.4 循环结构 80
4.4.1 For...Next循环语句 80
4.4.2 For Each...Next循环语句 81
4.4.3 Do...Loop循环语句 82
4.4.4 掌握While...Wend循环语句 85
4.4.5 在程序中使用多重循环 85
4.4.6 选择结构与循环结构的嵌套 86
4.5 其他辅助控制语句 87
4.5.1 GoTo跳转语句 87
4.5.2 With...End With复用语句 88
4.5.3 Exit退出语句 89
4.5.4 End结束语句 90
4.6 综合应用 91
4.6.1 十进制转换为其他进制 91
4.6.2 起泡排序算法的实现 92
4.6.3 制作mini计算器 93
4.7 本章常见错误 94
4.7.1 防止无限循环 94
4.7.2 End With没有With 95
4.8 本章小结 95
4.9 跟我上机 95
第5章 数组与集合 96
5.1 认识数组 97
5.1.1 数组的概念 97
5.1.2 数组与简单变量的区别 97
5.1.3 数组的分类 98
5.2 静态数组的使用 98
5.2.1 一维数组 98
5.2.2 二维数组 99
5.2.3 多维数组 100
5.2.4 数组中的数组 101
5.3 动态数组的使用 102
5.3.1 声明动态数组 102
5.3.2 调用动态数组 103
5.4 数组的基本操作 104
5.4.1 对数组元素进行初始化 104
5.4.2 访问数组中的元素 104
5.4.3 向数组中插入元素 105
5.4.4 删除数组中的元素 105
5.4.5 查找数组中的元素 106
5.5 与数组相关的函数及语句 107
5.5.1 利用Array函数给数组赋值 107
5.5.2 利用UBound和LBound函数获得数组下标 107
5.5.3 利用Split函数创建数组 108
5.5.4 利用Option Base语句定义数组下标 109
5.6 控件数组 110
5.6.1 控件数组的概念 110
5.6.2 声明控件数组 110
5.6.3 调用控件数组 111
5.7 集合的使用 111
5.7.1 集合的概念 111
5.7.2 数据集合对象的应用 111
5.8 综合应用 112
5.8.1 制作幼儿识字卡片 112
5.8.2 利用控件数组设置控件状态 114
5.8.3 利用数组实现矩阵转换 115
5.9 本章常见问题 116
5.9.1 不能给数组赋值 116
5.9.2 无效的ReDim 117
5.10 本章小结 117
5.11 跟我上机 117
第6章 运用过程和函数 118
6.1 过程的概念 119
6.2 Sub过程的使用 119
6.2.1 事件过程 120
6.2.2 通用过程 120
6.2.3 调用Sub过程 121
6.3 Function过程的使用 122
6.3.1 Function过程概述 122
6.3.2 调用Function过程 123
6.4 参数传递 123
6.4.1 形式参数和实际参数 124
6.4.2 按值传递和按址传递 124
6.4.3 传递数组的参数 126
6.4.4 传递对象的参数 126
6.5 可选参数与可变参数 127
6.5.1 什么是可选参数 127
6.5.2 理解可变参数 128
6.6 过程的嵌套调用和递归调用 128
6.6.1 过程的嵌套调用 128
6.6.2 过程的递归调用 128
6.7 Sub Main过程 129
6.8 过程的作用域 130
6.9 常用内部函数 131
6.9.1 数学函数 131
6.9.2 字符串函数 132
6.9.3 类型转换函数 132
6.9.4 判断函数 133
6.9.5 日期和时间函数 134
6.9.6 随机函数 134
6.9.7 格式化函数 134
6.9.8 Shell函数 136
6.10 熟悉API函数的使用 137
6.10.1 API函数概述 137
6.10.2 使用API文本浏览器 138
6.10.3 声明API函数 140
6.10.4 定义API常数 140
6.10.5 设置API类型 140
6.11 综合应用 141
6.11.1 倒计时程序 141
6.11.2 幸运抽奖 142
6.11.3 掷骰子 143
6.12 本章常见错误 144
6.12.1 如何解决Array函数不能赋值的错误 144
6.12.2 解决名称冲突 145
6.12.3 防止程序出现多处空格 145
6.13 本章小结 145
6.14 跟我上机 146
第7章 设计和美化窗体界面 147
7.1 介绍窗体 148
7.1.1 窗体的构成 148
7.1.2 窗体类型与结构 149
7.1.3 添加和删除窗体 149
7.2 窗体的加载与卸载 151
7.2.1 利用Load语句加载窗体 151
7.2.2 利用Unload语句卸载窗体 151
7.3 窗体的属性 152
7.3.1 窗体的名称和标题 152
7.3.2 设置窗体图标 153
7.3.3 窗体的显示风格 153
7.3.4 窗体的显示状态和显示位置 154
7.3.5 给窗体添加背景图片 156
7.4 窗体的方法 157
7.4.1 利用Show方法显示窗体 157
7.4.2 利用Hide方法隐藏窗体 158
7.4.3 利用Move方法移动窗体 158
7.4.4 利用Print方法打印窗体 159
7.5 窗体的事件 160
7.5.1 利用Click/DbClick事件实现单击和双击 160
7.5.2 利用Initialize事件实现窗体初始化 161
7.5.3 利用Load/Unload/QueryUnload事件实现载入和卸载 162
7.5.4 利用Paint/Resize事件实现窗体重绘 165
7.5.5 利用Activate/Deactivate事件实现窗体的活动性 166
7.5.6 利用GotFocus/LostFocus事件处理窗体焦点 168
7.6 窗体的生命周期 169
7.7 使用MDI窗体 171
7.7.1 MDI窗体概述 171
7.7.2 创建MDI应用程序 172
7.7.3 MDI窗体的MDIChild属性 172
7.8 综合应用 173
7.8.1 窗体抖动 173
7.8.2 欢迎窗体 174
7.8.3 设计MDI主窗体 175
7.9 本章常见错误 177
7.9.1 如何解决“无效属性值”错误 177
7.9.2 没有启动窗体错误 177
7.9.3 Name属性和Caption属性混淆 178
7.9.4 窗体方法的使用注意事项 178
7.10 本章小结 178
7.11 跟我上机 178
第8章 常用控件的使用 180
8.1 控件的概念 181
8.1.1 了解控件的作用 181
8.1.2 理解控件与对象的关系 181
8.1.3 认识控件的属性、方法和事件 181
8.2 控件的分类 182
8.2.1 标准内部控件 182
8.2.2 ActiveX控件 182
8.2.3 可插入对象 182
8.3 控件的相关操作 183
8.3.1 添加控件 183
8.3.2 对齐控件 184
8.3.3 调整控件的前后顺序 185
8.3.4 调整控件的大小 186
8.3.5 锁定控件 186
8.3.6 删除控件 187
8.3.7 恢复被删除的控件 187
8.4 标签和文本框 187
8.4.1 标签(Label)控件 187
8.4.2 文本框(TextBox)控件 189
8.5 命令按钮、单选按钮、复选框及框架 191
8.5.1 命令按钮(CommandButton)控件 191
8.5.2 单选按钮(OptionButton)控件 193
8.5.3 复选框(CheckBox)控件 195
8.5.4 框架(Frame)控件 196
8.6 列表框与下拉列表框 197
8.6.1 列表框(ListBox)控件 197
8.6.2 下拉列表框(ComboBox)控件 200
8.7 滚动条(HScrollBar和VScrollBar)控件 203
8.8 综合应用 205
8.8.1 使用Label控件模拟按钮动作 205
8.8.2 在ListBox控件间实现数据交换 206
8.8.3 限制文本框输入字符数 207
8.8.4 打老鼠游戏 208
8.9 本章常见错误 209
8.9.1 不小心形成控件数组 209
8.9.2 “无效的过程调用或参数”错误 209
8.9.3 如何解决图片读取时的“类型不匹配”错误 210
8.10 本章小结 210
8.11 跟我上机 210
第2篇 提高篇 212
第9章 ActiveX控件 212
9.1 介绍ActiveX控件 213
9.1.1 添加ActiveX控件 213
9.1.2 删除ActiveX控件 213
9.1.3 注册ActiveX控件 214
9.2 ListView控件的应用 214
9.2.1 ListView控件的概述 214
9.2.2 ListView控件的常用属性和方法 215
9.2.3 使用ListView控件导航界面 219
9.3 TreeView控件的应用 220
9.3.1 TreeView控件的概述 220
9.3.2 TreeView控件的常用属性和方法 221
9.3.3 使用TreeView控件导航数据 226
9.4 SSTab控件的应用 228
9.4.1 SSTab控件的概述 228
9.4.2 SSTab控件的常用属性 228
9.5 ProgressBar控件的应用 230
9.5.1 ProgressBar控件的概述 230
9.5.2 ProgressBar控件的常用属性 230
9.6 ImageList控件的应用 231
9.6.1 ImageList控件的概述 231
9.6.2 ImageList控件的常用属性 232
9.7 DTPicker控件的应用 232
9.7.1 DTPicker控件的概述 232
9.7.2 DTPicker控件的常用属性 233
9.8 综合应用 234
9.8.1 显示大图标数据 234
9.8.2 多级树状菜单 236
9.8.3 分页显示数据 238
9.8.4 带图标的树状数据 239
9.8.5 制作数据备份进度条 240
9.8.6 日期录入 241
9.9 本章常见错误 242
9.9.1 某些ActiveX控件被破坏了怎么办? 242
9.9.2 ‘Item’为无效的资源文件 242
9.9.3 文件格式无效 243
9.10 本章小结 243
9.11 跟我上机 243
第10章 鼠标键盘处理操作 244
10.1 了解鼠标指针的设置 245
10.1.1 设置鼠标指针的形状 245
10.1.2 将鼠标指针设置为指定的图片 246
10.1.3 将鼠标指针设置为指定的动画 247
10.2 鼠标事件的响应 247
10.2.1 响应Click事件和DbClick事件 247
10.2.2 响应MouseDown事件和MouseUp事件 249
10.2.3 掌握MouseMove事件的使用 250
10.3 键盘事件的响应 251
10.3.1 掌握KeyDown事件和KeyUp事件的使用 251
10.3.2 掌握KeyPress事件的使用 255
10.4 综合应用 256
10.4.1 鼠标单击不到的按钮 256
10.4.2 使用鼠标绘图 256
10.5 本章常见错误 258
10.5.1 避免按【Enter】键产生“嘀”声 258
10.5.2 不小心使用【Alt+F4】快捷键关闭程序而丢失数据 258
10.6 本章小结 258
10.7 跟我上机 259
第11章 模块和类模块 260
11.1 学习使用模块 261
11.1.1 模块的概述 261
11.1.2 创建模块 261
11.1.3 添加现存的标准模块 262
11.2 创建和使用类模块 262
11.2.1 类模块概述 262
11.2.2 创建类模块 263
11.2.3 添加现有的类模块 263
11.2.4 标准模块和类模块的区别 263
11.3 综合应用 264
11.3.1 创建模块的典型应用 264
11.3.2 创建类模块的典型应用 266
11.4 本章常见错误 272
11.4.1 参数数错误或无效的属性赋值 272
11.4.2 Property Let过程未定义错误 272
11.4.3 指定的DLL函数未找到 272
11.5 本章小结 273
11.6 跟我上机 273
第12章 系统对象 274
12.1 应用程序对象(App) 275
12.1.1 App对象概述 275
12.1.2 利用APP对象动态识别路径 278
12.2 屏幕对象(Screen) 279
12.2.1 Screen对象概述 279
12.2.2 Screen对象的常用属性 279
12.3 剪贴板对象(Clipboard) 280
12.3.1 Clipboard对象概述 280
12.3.2 Clipboard对象的常用方法 281
12.4 调试对象(Debug) 283
12.4.1 Debug对象概述 283
12.4.2 利用Debug对象调试程序 285
12.5 打印对象(Printer和Printers集合) 285
12.5.1 理解Printer对象和Printers集合 285
12.5.2 利用Printer对象获得打印机的字体列表 286
12.6 综合应用 286
12.6.1 打印销售排行 286
12.6.2 将剪贴板内容保存到文件中 287
12.7 本章常见错误 288
12.7.1 不能清空剪贴板 288
12.7.2 无法粘贴 288
12.8 本章小结 288
12.9 跟我上机 289
第13章 设计和应用菜单、工具栏、状态栏 290
13.1 下拉式菜单 291
13.1.1 下拉式菜单的组成 291
13.1.2 利用“菜单编辑器”对话框制作菜单 292
13.1.3 给菜单添加快捷键和访问键 295
13.1.4 给菜单添加分割条 295
13.1.5 创建复选菜单 296
13.1.6 制作级联菜单 296
13.1.7 修饰菜单 297
13.1.8 设置菜单无效 298
13.1.9 为菜单事件添加代码 298
13.1.10 使用菜单数组 299
13.2 弹出式菜单 299
13.2.1 设计弹出式菜单 299
13.2.2 调用弹出式菜单 300
13.3 设计工具栏 301
13.3.1 工具栏概述 301
13.3.2 利用ToolBar控件创建工具栏 301
13.3.3 为工具栏按钮设置分组 304
13.3.4 给工具栏添加下拉式菜单 305
13.3.5 给工具栏按钮添加事件处理代码 306
13.4 设计状态栏 306
13.4.1 状态栏概述 306
13.4.2 在状态栏中显示日期、时间 307
13.4.3 在状态栏中显示当前窗体名称 308
13.5 综合应用 308
13.5.1 改变菜单的颜色 308
13.5.2 在状态栏中显示操作员信息 309
13.5.3 设计带图标的菜单项 310
13.6 本章常见错误 311
13.6.1 对象类型无效,需要菜单控件 311
13.6.2 无效菜单被指定为默认项 311
13.7 本章小结 311
13.8 跟我上机 312
第14章 对话框应用 313
14.1 输入对话框(InputBox) 314
14.2 消息对话框(MsgBox) 315
14.3 自定义对话框 316
14.3.1 由普通窗体创建的自定义对话框 316
14.3.2 使用对话框模板创建对话框 317
14.3.3 显示与关闭自定义对话框 318
14.4 公用对话框 318
14.4.1 “打开”对话框 318
14.4.2 “另存为”对话框 319
14.4.3 “颜色”对话框 320
14.4.4 “字体”对话框 321
14.4.5 “打印”对话框 322
14.4.6 “帮助”对话框 323
14.5 综合应用 324
14.5.1 改变文字颜色 324
14.5.2 格式不匹配提示框 325
14.5.3 “浏览”对话框 326
14.6 本章常见错误 327
14.6.1 没有到指定的路径下 327
14.6.2 管道符号的前后不要加空格 327
14.7 本章小结 328
14.8 跟我上机 328
第15章 图形图像技术 329
15.1 图形操作基础 330
15.1.1 了解坐标系统 330
15.1.2 颜色函数 331
15.2 图形控件 332
15.2.1 形状(Shape)控件 332
15.2.2 画线(Line)控件 333
15.3 图形属性 334
15.3.1 设置绘图坐标 334
15.3.2 设置图形位置和大小 335
15.3.3 设置图形的边框效果 336
15.3.4 设置绘制效果 338
15.3.5 设置前景色和背景色 341
15.3.6 设置填充效果 342
15.4 图形方法 343
15.4.1 使用PSet方法画点 343
15.4.2 使用Point方法设置某处颜色 344
15.4.3 使用Line方法画线 345
15.4.4 使用Circle方法画圆 346
15.4.5 使用Cls方法清屏 347
15.4.6 使用PaintPicture方法绘制图形 348
15.5 图像处理控件 349
15.5.1 PictureBox控件 349
15.5.2 Image控件 350
15.6 图像处理函数 350
15.6.1 利用LoadPicture函数加载图像 351
15.6.2 利用SavePicture函数保存图片 351
15.7 综合应用 351
15.7.1 浏览大幅图片 351
15.7.2 制作小动画 353
15.7.3 显示员工照片 354
15.7.4 将图片保存到指定路径 354
15.8 本章常见错误 355
15.8.1 使用Circle方法时出现编译错误 355
15.8.2 读取图片时产生“类型不匹配”错误 355
15.9 本章小结 355
15.10 跟我上机 356
第16章 文件系统编程 357
16.1 文件的基本概念 358
16.1.1 文件的结构 358
16.1.2 文件的分类 358
16.1.3 文件处理的一般步骤 359
16.2 文件操作的语句和函数 359
16.2.1 文件操作语句 359
16.2.2 文件操作函数 360
16.3 顺序文件 361
16.3.1 打开与关闭顺序文件 361
16.3.2 在顺序文件中读取或写入内容 362
16.4 随机文件 365
16.4.1 打开与关闭随机文件 365
16.4.2 在随机文件中读取或写入内容 366
16.5 二进制文件 367
16.5.1 打开与关闭二进制文件 368
16.5.2 在二进制文件中读取或写入内容 368
16.6 文件系统控件 369
16.6.1 驱动器列表框(DriveListBox)控件 370
16.6.2 目录列表框(DirListBox)控件 372
16.6.3 文件列表框(FileListBox)控件 373
16.6.4 文件系统控件的联动 377
16.7 文件系统对象 378
16.7.1 引入并使用FSO模型 378
16.7.2 创建和使用FileSystemObject对象 378
16.7.3 利用Drive对象对磁盘驱动器进行操作 380
16.7.4 利用Folder对象浏览文件夹 381
16.7.5 利用File对象操作文件 382
16.7.6 利用TextStream对象对文件进行读写操作 383
16.8 综合应用 385
16.8.1 获取文件的大小 385
16.8.2 获取文件最后修改时间 386
16.8.3 分类整理磁盘文件 387
16.9 本章常见错误 388
16.9.1 文件加载错误 388
16.9.2 文件保存错误 389
16.10 本章小结 389
16.11 跟我上机 389
第17章 数据库编程技术 390
17.1 了解数据库 391
17.1.1 Access数据库 391
17.1.2 SQL Server数据库 391
17.1.3 启动SQL Server数据库 391
17.1.4 创建SQL Server数据库 394
17.2 ADO对象 395
17.2.1 ADO对象概述 395
17.2.2 连接数据源——Connection对象 396
17.2.3 记录集对象——Recordset对象 398
17.2.4 命令对象——Command对象 403
17.3 ADO控件 404
17.3.1 连接数据源 404
17.3.2 添加、修改和删除数据 408
17.4 DataGrid控件 410
17.4.1 将DataGrid控件加入到工程中 410
17.4.2 DataGrid控件的主要属性和事件 410
17.4.3 用DataGrid控件显示数据表中的数据 412
17.4.4 通过DataGrid控件修改数据表中的数据 412
17.5 MSFlexGrid控件和MSHFlexGrid控件 413
17.5.1 比较MSFlexGrid控件和MSHFlexGrid控件 413
17.5.2 MSHFlexGrid控件的主要属性和方法 413
17.5.3 使用MSHFlexGrid控件显示数据 415
17.6 综合应用 416
17.6.1 将DataGrid控件中的数据显示在文本框中 416
17.6.2 使用MSHFlexGrid控件批量录入数据 417
17.6.3 使用MSHFlexGrid控件对数据进行合并和排序 418
17.7 本章常见错误 419
17.7.1 附加数据库出现索引错误 419
17.7.2 用户定义类型未定义错误 420
17.7.3 对象打开时不允许操作 420
17.8 本章小结 420
17.9 跟我上机 420
第18章 网络编程技术 421
18.1 网络基础知识 422
18.1.1 了解网络分层参考模型 422
18.1.2 介绍超文本传输协议 422
18.1.3 介绍文件传输协议 422
18.2 Winsock控件网络编程 423
18.2.1 理解TCP基础 423
18.2.2 理解UDP基础 423
18.2.3 Winsock控件概述 423
18.2.4 开发客户端/服务器端聊天程序 426
18.3 Internet Transfer控件网络编程 428
18.3.1 Internet Transfer控件概述 428
18.3.2 Internet Transfer控件的使用 429
18.4 WebBrowser控件编程 432
18.4.1 WebBrowser控件概述 432
18.4.2 WebBrowser控件的使用 433
18.5 了解Winsock API 435
18.5.1 Winsock API的概述 435
18.5.2 Winsock API函数 435
18.6 综合应用 436
18.6.1 判断Internet连接状态 436
18.6.2 获取网页源码 437
18.6.3 制作简单的浏览器 438
18.7 本章常见错误 439
18.7.1 设备不可用 439
18.7.2 使用Execute方法的注意事项 439
18.8 本章小结 439
18.9 跟我上机 439
第19章 程序调试和错误处理 440
19.1 发现Visual Basic中的错误 441
19.1.1 编译错误 441
19.1.2 运行错误 442
19.1.3 逻辑错误 442
19.2 使用调试工具和方法 442
19.2.1 利用调试工具栏调试程序 442
19.2.2 掌握本地窗口的使用 443
19.2.3 打开和使用“立即”窗口 444
19.2.4 添加和使用“监视”窗口 444
19.2.5 插入断点和逐语句跟踪 445
19.3 熟悉错误处理语句和对象 446
19.3.1 使用Err对象 446
19.3.2 利用On Error语句捕获错误 447
19.3.3 利用Resume语句退出错误处理 449
19.4 本章小结 450
19.5 跟我上机 450
第3篇 实战篇 452
第20章 在线考试系统 452
20.1 在线考试概述 453
20.1.1 概述 453
20.1.2 系统预览 453
20.1.3 数据库设计 454
20.2 关键技术 456
20.2.1 随机生成试题技术 456
20.2.2 考生答卷功能关键技术 462
20.2.3 提交试卷功能关键技术 463
20.2.4 修改试题关键技术 465
20.2.5 计时功能关键技术 465
20.3 系统登录功能设计 466
20.3.1 功能描述 466
20.3.2 窗体设计 466
20.3.3 登录功能实现过程 467
20.4 学生考试窗体设计 469
20.4.1 考试窗体功能描述 469
20.4.2 窗体设计 470
20.4.3 考试功能实现过程 472
20.5 系统管理设计 473
20.5.1 系统管理功能描述 473
20.5.2 窗体设计 474
20.5.3 管理功能设计分析 474
20.5.4 管理功能实现过程 475
20.6 添加试题设计 477
20.6.1 添加试题功能描述 477
20.6.2 窗体设计 477
20.6.3 添加试题实现过程 477
20.7 修改试题设计 478
20.7.1 修改试题功能描述 478
20.7.2 窗体设计 479
20.7.3 修改试题实现过程 479
20.8 系统参数设定 481
20.8.1 系统参数设置功能描述 481
20.8.2 窗体设计 481
20.8.3 考试参数设置实现过程 481
20.9 程序调试及错误处理 483
第21章 学生成绩管理系统 485
21.1 系统分析 486
21.1.1 需求分析 486
21.1.2 可行性分析 486
21.2 系统设计 486
21.2.1 系统目标 486
21.2.2 系统功能结构设计 487
21.2.3 系统预览 488
21.2.4 数据库概要说明 489
21.2.5 触发器的创建 490
21.3 公共模块设计 493
21.4 主要功能模块设计 494
21.4.1 用户登录模块 494
21.4.2 主窗体模块 495
21.4.3 学生信息管理模块 498
21.4.4 学生信息添加模块 500
21.4.5 课程信息管理模块 501
21.4.6 学生成绩查询模块 503
21.5 程序打包 505
21.6 本章常见错误 506
21.6.1 连接数据库出错 506
21.6.2 书写错误的函数名 507
21.6.3 写错字段信息 508
21.6.4 用户定义类型未定义 508
21.6.5 字段设置主键后不能插入重复值 509
21.7 本章小结 510