译者序 1
1 编程介绍 1
2 Visual Basic如何保持源程序的文件 1
目录 1
3 创建可执行程序 2
4 从“新建工程”对话框开始 3
5 使用新建应用程序向导 3
6 认识界面类型 3
7 使用“VB应用程序向导”来创建一个工程框架 4
8 在“VB应用程序向导”中选择 5
界面类型 5
9 认识单选钮 5
10 在应用程序向导上选择菜单 6
11 使用应用程序向导创建工具栏 6
12 使用应用向导来添加资源文件 7
14 理解控件 8
13 使用向导来添加Internet连接 8
15 标准窗体 9
16 使用向导连接数据库 10
17 完成新向导的创建——生成工程 11
18 阅读“VB应用程序向导” 11
的总结报告 11
19 保存新向导——生成工程 12
20 不键入任何代码来创建完全可 13
执行文件 13
21 认识编辑窗口 13
22 认识工具箱 14
23 认识属性窗口 14
24 认识工程资源管理器 16
25 认识窗体布局窗口 16
26 认识编辑显示窗口 17
27 认识工具栏上的图标 17
309 理解多维数组 2 19
28 介绍Visual Basic的菜单栏 19
29 使用“文件”菜单 20
30 使用“编辑”菜单 22
31 使用“视图”菜单 24
32 使用“工程”菜单 27
33 使用“格式”菜单 29
34 使用“调试”菜单 30
35 使用“运行”菜单 31
36 使用“工具”菜单 32
37 使用“外接程序”菜单 32
38 创建窗体 33
39 窗体命名 34
40 创建代码 34
41 理解End语句 36
42 运行Visual Basic程序 37
43 更改窗体标题 37
45 创建一个实例代码的可执行程序 38
44 使用Me对象 38
46 理解语法错误 39
47 一个Visual Basic程序的结构 40
48 编写第二个程序 40
49 更改自动保存选项 41
50 定义即时编译(分步编译) 41
51 保存工程文件 42
52 理解过程 42
54 换行显示输出 43
53 在程序中增加语句 43
55 使用Visual Basic常量 44
56 Visual Basic不需要考虑大小写 45
57 理解逻辑错误(Bug) 45
58 捕获程序中的错误 46
59 发生错误时中断 46
60 理解程序开发过程 47
61 在程序中添加注释 47
62 增强程序的可读性 48
63 使用注释来取消程序语句的执行 49
64 开始理解作用域 49
67 理解变量 50
66 保持界面的严格控制 50
65 理解如何处理Windows消息 50
68 使用DIM语句 51
69 声明模块和窗体级的变量 52
70 声明过程变量 53
71 协调变量名冲突 53
72 使用Public关键字定义变量 54
73 为变量赋值 54
74 理解变量类型 55
75 声明同样类型的多个变量 55
76 在声明中注释变量 56
77 使用有意义的变量名 56
78 理解Visual Basic的关键字 57
80 理解Option Base语句 58
79 理解Option Explict语句 58
81 理解Integer类型变量 59
82 理解Long类型变量 60
83 理解String类型变量 60
84 理解固定长度String类型变量 61
85 理解Single类型变量 62
86 理解Boolean类型变量 62
87 理解Byte变量类型 63
88 理解Currency类型变量 63
89 理解Date类型变量 64
90 理解Double类型变量 64
91 理解Object类型变量 65
92 理解Variant类型变量 65
93 理解控件类型 66
94 为什么Visual Basic没有使用指针 66
96 给Integer和Long类型的变量赋值 67
97 给String类型变量赋值 67
95 给浮点变量赋值 67
98 给固定长度String类型变量赋值 68
99 给Single和Double类型变量赋值 68
100 给Boolean类型变量赋值 69
101 给Byte类型变量赋值 69
102 给Currency类型的变量赋值 69
103 理解Object类型的变量 70
104 给Date类型的变量赋值 70
105 理解溢出 71
106 理解精度 72
107 引号和其他字符的赋值 73
108 使用Chr函数 73
109 使用Debug.Print来输出信息 74
110 使用Str函数将数字转换成 74
字符串 74
111 使用Format函数将数字转换成字符串 75
112 使用Format函数将日期转换成字符串 77
113 Visual Basic的基本数学操作 78
114 理解按模运算 79
115 理解运算符的优先级 79
116 强行改变运算符的运算顺序 80
117 数值的加法和减法 81
118 理解按位操作的Or运算 82
119 理解Xor运算 82
120 理解按位操作的And运算 83
121 理解按位操作的Eqv运算 84
122 理解按位操作的Imp运算 85
123 介绍条件处理 86
124 介绍循环处理 87
125 理解Visual Basic如何表示 87
True和False 87
126 测试If-Then的条件 87
127 理解圆括号在条件语句中的用途 88
129 等式判断 89
语句 89
128 理解Simple语句和Compound 89
131 执行逻辑And运算对两个条件 90
进行判断 90
130 执行相关判断 90
132 执行逻辑Or运算来两个条件 91
进行判断 91
133 执行逻辑Not运算 92
134 执行逻辑Xor运算 92
135 执行逻辑Eqv运算 93
136 执行逻辑Imp运算 94
137 将判断条件的结果赋值给变量 95
138 在复合语句中声明变量 96
139 使用缩进格式来提高可读性 97
140 测试浮点值 97
142 定义常量 98
141 不间断循环 98
143 谨慎使用If-If-Else 99
144 在限定次数内执行语句 100
145 For语句的可选部分 102
146 在For-Next语句中使变量递减 102
147 控制For-Next循环的步长 103
148 For-Next循环不仅仅适用于 104
Integer变量 104
149 理解Null循环 105
150 理解DoEvents循环 105
151 无限(Infinite)循环的危险 105
152 使用For-Next的嵌套循环 106
153 改变控制变量的值 107
155 使用Exit For语句终止循环 108
154 在条件语句中使用Next 108
或者多条语句 109
156 使用Do循环重复执行一条 109
157 理解Do循环的组成部分 111
158 使用While-Wend创建循环 111
159 总是使用Do循环执行一条或 112
多条语句 112
160 使用Do Until Loop重复执行 113
一条或者多条语句 113
161 使用Exit Do结束循环 113
162 GOTO分支 115
163 测试多个条件 115
164 理解Case Else语句 118
长度的字符串 119
166 Visual Basic如何保存字符串 119
165 可视化Visual Basic字符串 119
167 Visual Basic如何保存可变 119
168 理解零结尾字符串 120
169 如何区分A和a 121
170 使用Option Compare Text开关 121
171 确定字符串的长度 122
172 将String变量的字符复制到 123
另外一个String变量中 123
173 将String变量的内容添加到 124
另一个String变量中 124
174 在String变量中添加N个字符 124
175 处理超长字符 125
176 在确定字符串是否相等时忽略大小写 125
出现的字符 126
177 捕获String变量中的第一个 126
178 寻找字符串中最后一个出现的字符 127
179 计算String变量中出现同一 128
字符的次数 128
180 逆向显示String变量的内容 128
181 两个字符串的比较 129
182 两个字符串前N个字符的比较 132
183 将字符串转换为数字表示 133
184 在字符串中定位子字符串 134
185 从字符串的一个位置返回 135
n个字符 135
187 使用TextBox控件 136
186 计算子字符串出现的次数 136
188 使用RichTextBox控件 138
189 使用RichTextBox控件的 138
Find方法 138
192 获得最右边子字符串的位置 140
191 理解焦点 140
190 理解方法 140
193 在字符串中删除某个子字符串 141
子字符串 142
194 用另一个子字符串替换某个 142
195 在RichTextBox控件里删除文本 144
196 在RichTextBox控件里使用 144
其他文本替换控件里的文本 144
197 判断一个字符是否是字母表 145
中的字符 145
或者小写 146
200 判断字符串是否是Date 146
199 判断一个字符是否是大写 146
198 判断一个字符是否是数字 146
小写字母 147
201 将一个字符转换为大写或 147
202 对ASCII字符进行操作 148
203 格式化字符串变量 148
204 对字符串使用Select Case 149
205 使用换行变量 149
206 使用函数返回值 150
207 指定参数类型 150
208 理解局部变量 151
209 理解函数的系统开销 152
210 通过声明参数类型来减少系统开销 152
212 声明全局变量 153
211 Visual Basic放置局部变量的地方 153
213 使用Public来代替Global 154
214 为什么在程序中应该避免 154
全局变量 154
215 解决全局变量和局部变量名的冲突 155
216 更好地定义变量的作用域 155
218 定义函数 156
217 定义过程 156
219 理解传值调用 157
220 为什么传值调用可以防止 158
参数值的改变 158
221 理解传值调用 159
222 改变参数值 159
223 只改变指定参数 160
224 使用栈以进行引用调用 161
225 可记忆的函数变量 161
227 Visual Basic如何初始化静态变量 163
226 可记忆的过程 163
228 使用关键字Static可能引起的错误 164
229 理解全局与局部过程 164
230 过程的重用 165
231 理解形参和实参 165
232 理解作用域 166
233 使用Variant参数来接收未知值 166
234 使用Variant函数来返回未知 167
类型的值 167
235 使用具有Variant参数的VarType成员函数 167
236 使用TypeName成员函数 168
237 在返回值中使用VarType 169
或者TypeName 169
238 在函数中更新全局变量 170
239 使用函数更改算术表达式中 171
的变量 171
240 在窗体上创建Private过程 172
241 从过程中调用过程 174
242 理解递归 175
243 理解递归Factorial函数 176
244 另一个递归的例子 176
245 通过显示值来更好地理解递归 177
246 直接递归和间接递归 178
247 是否使用递归 178
248 对Date进行处理 179
249 为什么递归过程会慢一些 180
250 如何消除递归 181
251 将常量作为参数来传递 181
252 子程序是不返回值的过程 182
253 子程序可以是返回多个值的过程 182
254 使用不带有参数的过程 183
255 理解Visual Basic的作用域分类 183
256 理解名称空间和标识符 184
257 理解标识符的可见性 184
260 支持可变数目的参数 186
258 理解生存时间 186
259 支持参数数目可变的函数 186
261 创建一个支持多类型、 187
多参数的函数 187
262 使用关键字Optional 188
263 理解IsMissing成员函数 189
264 使用缓冲输入 189
265 使用输入框来接收输入 190
266 使用TextBox控件来执行 191
缓冲输入 191
267 使用直接I/O读取字符 193
268 清除屏幕上的所有域 194
269 更新窗体的显示 194
272 使用彩色输出 195
273 控制屏幕的色彩 195
270 使用SetFocus方法定位光标 195
271 使用TabIndex定位光标 195
276 使用Abs函数 197
274 分配背景颜色 197
275 创建一个可重用的数学模块 197
277 使用余弦/正切 198
278 使用正弦/余切 198
279 使用反正切 199
280 对浮点值进位 200
281 对指数进行处理 200
282 计算自然数的对数 200
283 计算以10为底数的对数 201
284 确定最大和最小值 201
285 将浮点值分割成小数部分和 202
整数部分 202
286 计算一个数的N次方 203
287 生成随机数 204
288 将随机值映射到指定范围 204
289 启动随机数生成器 205
291 计算角的正切 205
290 计算一个值的平方根 205
292 执行现存净价值计算 206
293 执行Rate计算 206
294 创建一个自定义的数学错误 208
处理程序 208
295 理解数组 210
296 声明一个数组 210
297 数组的可视化 211
298 理解数组的存储要求 212
299 数组的初始化 212
300 数组元素的访问 212
301 通过数组元素进行循环 213
302 使用常量来定义数组 214
303 向函数中传递数组 215
304 再次阐述数组和函数 215
305 向过程传递数组 216
307 数组的动态分配 218
308 从分隔字符串中创建一个数组 218
306 决定一个数组能够保留多少元素 218
310 理解行和列 220
311 在二维数组中访问元素 220
312 在二维数组中初始化元素 220
313 判断多位数组消耗的内存数量 221
314 二维数组的遍历 221
315 遍历一个三维数组 222
316 向函数传递二维数组 223
317 理解Visual Basic如何存储 224
多维数组 224
318 结构数组的数组 224
319 在一个数组中寻找一个指定的值 225
320 理解二元查找 225
321 使用二元查找 226
322 数组的排序 227
323 理解冒泡排序 227
324 使用冒泡排序 228
325 理解选择排序 228
326 使用选择排序 228
327 理解Shell排序 229
328 使用Shell排序 230
329 理解快速排序 231
330 使用快速排序 231
331 前述排序解决方案的问题 233
332 排序字符串数组 233
333 通过Quick_Sort函数排序数组 234
334 用Seq_One_Find搜索数组 236
335 使用TypeName成员函数 238
336 用Bin_Search搜索一个 239
已排序数组 239
337 确定数组元素的个数 240
338 循环遍历字符串数组 241
339 为数组设定可选择的范围 242
340 理解结构 242
341 结构是一个变量声明的模板 242
342 结构标识符是结构的名字 243
343 声明一个结构变量 243
344 在结构中使用Public和Private关键字 244
345 理解结构成员 244
346 形象化一个结构 245
347 使用结构 245
348 向函数传递结构 246
349 改变函数内部的结构 247
350 结构定义的作用域 248
351 初始化结构 248
353 使用嵌套的结构 249
354 包含数组的结构 249
352 执行结构的输入/输出操作 249
355 创建一个结构数组 250
356 使用文件、目录和磁盘——简洁和复杂的方式 250
357 使用DriveListBox控件 251
358 使用DriveListBox控件改变 254
驱动器 254
359 DirectoryListBox控件 255
360 改变默认的目录 259
361 使用FileListBox控件 260
362 只显示清单中的部分文件 264
363 理解CommonDialog控件 265
364 使用CommonDialog控件模式 266
365 为CommonDialog控件设置 267
默认路径 267
366 返回选中的文件和路径 268
367 保存文本文件 270
370 使用API浏览器 271
369 理解Windows API 271
368 通过Cancel选项取消Open 271
或SaveAs 271
371 使用GetCurrentDirectory API函数 272
372 编写Wrapper函数 274
373 使用SetCurrentDirectory API函数 274
374 使用GetDiskFreeSpace API函数 275
375 使用GetVolumeInformation API函数 276
376 使用GetDriveType API函数 277
377 捕捉未准备好的驱动器 279
378 在程序中更改文件名 280
379 在程序中删除文件 281
380 在程序中删除目录 281
381 设置文件访问模式 281
382 获取文件大小 282
383 使用Open语句 282
384 使用Close语句 283
385 使用文件的读连续访问 284
386 读文件时使用EOF函数 285
387 使用文件的写连续访问 285
388 使用LOF和Loc来读Binary文件 286
389 用Input和Input#来读取文件 287
390 使用Write#对连续文件输出 288
391 重新考虑结构和文件I/O 289
392 使用Put对一个随机访问文件 289
写入数据 289
393 使用Get从随机访问文件中 291
检索记录 291
394 使用Seek语句遍历随机访问文件 293
395 建立临时文件 293
396 获取Windows路径 294
397 获取系统路径 294
398 将文件的I/O操作最小化 295
400 创建目录 296
399 使用ChDrive和ChDir语句 296
401 删除目录 297
402 用递归删除目录树 297
403 解析PathName 297
404 获取文件的日期和时间标签 298
405 使用Dir定位目录和文件 299
406 将Dir返回的文件和目录值 300
进行排序 300
407 使用Dir定位文件 301
408 在程序中复制文件 302
409 在程序中移动文件 302
410 搜索文件 303
411 使用FindFirstFile函数 305
412 使用FindNextFile在剩下部分查找 307
413 搜索整个目录树 308
建立用户界面 309
414 使用由Find操作返回的文件 309
415 使用Findxxx函数定位目录 314
416 使用Find函数递归列出一个 315
树内的所有目录 315
417 使用递归删除目录树 315
418 获取当前系统日期 316
419 获取当前系统时间 317
420 返回一个代表当前日期和时间的Date值 317
421 延迟特定毫秒数 317
422 延迟一个大约的毫秒数 318
423 Sleep和DoEvents的限制 318
424 检测程序的处理时间 318
425 将两个时间作比较 319
426 使用DoEvents来延迟具体的秒数 321
427 Date型数据与String型数据的转换 322
428 验证一个String型数据是否符合转化为Date型数据所需的格式类型 322
430 利用整型值设置日期和时间 323
429 设置系统日期和时间 323
431 向日期中添加时间 324
432 将日期分割为各组成部分 325
433 理解单文档界面(SDI) 325
434 理解SDI窗体 325
435 理解Show方法 327
436 理解Load语句 327
437 理解Unload和Hide 328
438 良好窗体的设计基础 328
439 窗体的命名 328
440 窗体布局的变化 329
441 理解控件数组 329
442 创建控件数组 330
443 命名控件数组 332
444 理解窗体数组 333
445 理解MDI界面的创建 333
446 建立一个窗体数组 334
447 用布尔型数组来处理窗体数组 336
448 用控件数组在运行时建立对象 337
449 在运行时删除控件数组内的对象 339
450 理解菜单 340
451 使用菜单编辑器 340
452 创建菜单 342
453 向菜单添加功能 343
454 使用菜单的Enabled属性 344
455 使用菜单的Checked属性 344
456 建立Windowlist 345
457 理解加速键 346
458 使用Tile和Cascade命令 347
459 理解菜单数组 348
460 创建菜单数组 348
461 正确理解菜单与弹出式菜单的区别 350
462 创建弹出式菜单 350
463 向弹出式菜单的选项中加入代码 352
464 使用弹出式菜单 354
465 创建智能化上下文相关菜单 356
466 使用Boldcommand属性 357
467 菜单由子窗体的转换为父窗体的 358
468 在菜单内使用Negotiation 358
469 显示多个模态窗体 359
471 窗体内过程的作用域 360
472 向外部实体输出一个值 360
470 显示完模态窗体后显示非模态窗体 360
473 在外部实体里使用公共事件 361
474 理解ActiveForm属性 361
475 理解载入、初始化和激活窗体事件 361
476 理解重设尺寸事件 362
477 理解QueryUnload事件和Unload事件 362
478 理解Deactivate和LostFocus窗体事件 363
479 理解Terminate事件 363
481 控制窗体的Height和Width 364
480 Refresh方法 364
482 理解容器 365
483 理解Frame 365
484 使用容器管理窗体 366
485 使用GetSystemMetrics API函数 370
486 结合使用GetSystemMetrics和Resize 373
487 使用Hide方法的SDI窗体 375
488 理解MouseMove事件 375
489 MousePointer属性 377
490 使用MouseIcon属性 378
491 使用窗体的Icon属性 379
492 使用Toolbar控件 380
493 理解对象和集合 381
494 使用Button集合和Button对象 381
495 创建文本型按钮的工具条 382
497 结合使用ImageList和Toolbar控件 384
496 理解ImageList控件 384
498 在MDI程序中使用工具条 386
499 子窗体和父窗体的工具条 387
500 仅在父窗体上放置工具条 388
501 工具条和ActiveForn 390
502 同时使用工具条和菜单 391
503 维持常量图像尺寸 392
504 设计定制的图标 392
505 程序内分配图标 392
506 理解StatusBar控件 393
507 理解Panel对象和Panels集合 394
508 建立StatusBar控件 395
509 编写UpdateStatusBar子程序 396
StatusBar 397
512 使用多个StatusBar 397
511 同时使用MouseMove和 397
510 状态栏的分区 397
513 重新考虑公共与私有函数 398
514 向过程传递Object变量 398
515 向过程传递控件数组 398
516 介绍公共控件 399
517 使用KeyPress事件识别击键 399
接受用户口令 400
518 在TextBox中使用KeyPress 400
519 理解KeyDown事件和KeyUp 401
事件 401
520 设置窗体的WindowState属性 405
521 控制窗体的标题 406
522 建立IsDirty属性 406
523 重新考虑窗体 407
524 高级控件 407
525 重新考虑CommonDialog控件 407
打印 409
526 使用CommonDialog控件进行 409
527 打印文档至默认打印机 410
528 理解Printer对象和Printers集合 411
529 使用For Each-Next结构 411
530 理解EndDoc方法 412
531 用CommonDialog控件设置Fonts 412
532 使用CommonDialog设置 413
RichTextBox中的字体 413
534 理解库和可重用对象代码 414
533 使用编辑字段的Change事件 414
535 理解ActiveX DLL 415
536 创建和使用工程组 415
537 显示预定义的错误信息 416
538 理解可移植性 416
539 过程中的分支和返回 416
540 使用结构变量代替常量 417
542 使用枚举类型 418
541 VisualBasic的预定义常量 418
543 使用枚举类型 419
544 理解枚举类型的值 420
545 给枚举类型赋具体的值 420
546 理解子进程 421
547 使用Shell函数 421
548 使用临时文件向子进程传递数据 422
549 使用AppActivate来激活子进程 422
550 使用Shell函数来顺序运行程序 423
551 使用断点来调试程序 424
552 增加监视 424
553 监视窗口 425
554 逐语句执行程序代码。 425
555 跳过过程的代码 426
556 跳出 427
557 重新启动程序 427
559 理解标记 428
558 在程序中设置断点 428
560 为错误陷阱子程序使用标记 429
561 使用标记来进行GoTo循环 429
562 理解致命错误 430
563 使用计时器事件来自动保存信息 430
564 理解Timer控件 431
565 理解不变代码 431
566 理解代码压缩 432
567 理解循环压缩 432
568 使用公共子表达式消除 432
569 掌握Visual Basic的基本类型 433
570 理解衍生类型 433
571 使用初始化值的规则 433
572 对比声明和定义 434
573 在需要的地方才定义变量 434
574 重新考虑Optional关键字 434
575 重新考虑ParamArray关键字 435
576 对Optional参数使用默认值 436
577 使用默认类型 436
578 理解松散(或简化)计算 438
579 使用New运算符来创建对象实例 439
580 在结构中将函数作为成员使用 439
581 不同结构中的同名成员 440
582 理解对象 440
583 理解面向对象编程 441
584 理解为什么Visual Basic不是真正的面向对象语言 441
585 理解Visual Basic的类 441
586 使类概念化 442
587 使用类生成器实用程序来创建类 442
588 理解Public标签 445
589 理解信息隐藏 445
590 在类中使用Private关键字 445
591 使用公共和私有数据 446
592 公共方法经常被称作接口函数 448
593 定义类的函数 449
594 使用Property Let和Property Get方法 449
595 理解对象实例 451
596 创建对象实例 451
597 理解类的作用域 451
598 创建类变量的数组 451
599 使用With-End With 452
602 为Public和Private成员排序 453
601 重新考虑库 453
600 理解封装 453
603 理解类模块的默认作用域 454
604 理解静态存储 454
605 理解ActiveX 454
606 理解ActiveX与OLE 2.0之间的不同之处 455
607 在Dimension语句中使用 456
WithEvents属性 456
610 理解ComboBox控件 457
608 使用Visual Basic提供的ActiveX控件 457
609 使用Change事件 457
611 在ComboBox中使用Change和 459
Click事件 459
612 使用ComboBox改变窗体中的 459
信息 459
613 决定ComboBox和ListBox的 461
选用 461
614 理解MaskEdBox控件 461
615 使用MaskEdBox控件来检验数据 464
616 重新考虑可重用的对象 465
617 过程的放置 467
618 使用控件事件触发其他事件 467
619 使用带ListIndex的LostFocus来启动相关的窗体 467
620 理解将窗体当作类 468
622 改变程序的开始位置 469
623 理解初始化子程序 469
621 理解完全基于对话框的应用程序 469
624 在多个位置放置全局变量和过程 470
625 使用函数返回用户自定义的类或结构 470
626 理解PictureBox控件 471
627 使用PictureBox控件 472
628 理解Image控件 473
629 在窗体上显示图片 475
630 使用Shape控件 476
631 使用Line控件 477
632 使用CheckBox获得Boolean值 478
633 在单个窗体上使用多组 478
OptionButton 478
634 使用水平和垂直滚动条 480
635 理解Timer控件 482
636 理解自定义控件 482
637 使用自定义控件 482
639 创建基础的界面 483
638 重新考虑RichTextBox 483
640 为MDN程序加入功能 485
641 加入Find对话框 487
642 改进多文档记事本应用程序 487
643 重新考虑Query_Unload事件 488
644 理解RichTextBox和CommonDialog之间的关系 488
645 理解ProgressBar 489
646 使用ProgressBar控件 490
647 应用沙漏鼠标指针 491
648 使用其他鼠标指针属性 492
649 使用全局变量保护中断 492
650 介绍数据库 493
651 理解数据库访问 493
652 数据库设计的一些基本规则 494
653 理解关系型数据库 494
656 保护数据库 495
655 最小化数据库存储需求 495
654 理解标准化 495
657 理解System.MDW文件 496
658 介绍SQL 496
659 理解Access SQL与ANSI SQL 496
的差异 496
660 开始使用可视化数据管理器 497
661 理解DAO和ODBC 499
662 使用DAO对象 499
663 使用SQL Create Table语句 499
664 理解和格式化SQL的 500
Create Table语句 500
665 理解Execute方法 501
666 使用约束创建索引 502
667 使用SQL的Create Index语句 504
669 理解主关键字 505
670 理解Workspace对象 505
668 确定索引哪个字段 505
671 使用OpenDatabase方法 506
672 创建新的数据库 508
673 理解数据库对象 510
674 理解Recordset对象 511
675 使用OpenRecordset方法 512
676 理解SQL的Select语句 515
677 检索Recordset 517
678 理解Order By从句 518
679 理解Where从句 519
680 理解Inner Join 520
681 理解Left Join和Right Join 521
682 理解数据库的设置 522
683 理解QueryDef对象 522
684 使用RecordCount属性 524
685 理解Move方法 524
686 使用BOF和EOF属性 524
688 使用FIND方法 525
687 确定Recordset是否为空 525
689 使用Seek方法 527
690 理解书签 528
691 使用书签 528
692 使用Scratch Recordset 530
693 理解Recordset Creation错误 530
694 理解组集(Groups) 530
695 理解Users 531
696 理解许可权限 531
697 理解DAO文档和容器 532
698 加入新的记录 533
699 使用Update和Edit方法 534
700 使用Requery方法 536
701 验证数据 536
702 理解事务处理 536
703 使用BeginTrans和CommitTrans 537
705 理解Data控件 538
704 使用Rollback方法 538
706 使用带有存储查询的Data控件 540
707 使用Data控件操作BOF和EOF 541
708 理解RecordSource属性 541
709 理解Data绑定控件 541
710 使用多个Data控件 543
711 理解Data绑定Grid控件 543
712 使用Data绑定Grid控件 544
714 给Data控件加上RecordCount标题 545
713 调整Data绑定Grid的宽度 545
715 使用Grid控件改变RecordCount标题 547
716 理解Data绑定ListBox控件 548
717 使用Data绑定列表控件 549
718 把DBList控件连接到另外 550
一个控件 550
719 理解Data绑定ComboBox控件 551
720 使用Data绑定ComboBox控件 552
721 理解Clone方法 553
722 使用Clone方法 554
723 使用DataChanged属性 555
724 理解SQL-Transact语句 555
725 理解Update查询 555
726 使用Update查询 556
727 理解Delete查询 557
728 理解Union查询 558
730 使用Group By语句 559
729 理解Group By语句 559
731 理解SQL聚集函数 562
732 使用Sum语句 562
733 理解Having语句 564
734 在查询中使用变量 565
735 使用查询结果创建新的查询 565
736 和SQL查询一起使用 565
On Error-Resume 565
738 创建数据库的备份 566
737 通过检查值防止发生错误 566
739 理解客户机/服务器数据库 567
740 理解远程数据对象 567
741 理解RemoteData控件 568
742 使用RemoteData控件创建 570
Recordset 570
743 理解RemoteData常量 570
744 理解rdoEnvironment对象 571
745 建立远程数据连接 573
746 维护有关打开连接的信息 576
747 理解字段对象 577
748 确定集合中何时使用序数编号 578
749 使用字段名管理数据库 578
750 理解记录锁定 579
751 保存无绑定控件的记录 579
753 重新考虑数据库的重要性 580
752 更新无绑定控件的记录 580
755 理解节点对象 581
756 使用TreeView控件 581
754 理解TreeView控件 581
757 理解Nodes集合的Add方法 583
758 把图像加到TreeView控件 584
759 在填充TreeView控件的时候 586
使用进度条 586
760 从Recordset中填充TreeView控件 588
761 理解Visual Basic和Internet 589
762 理解MSComm控件 589
763 理解CommEvent属性 590
764 使用MSComm控件 591
765 理解OnComm事件 592
766 使用OnComm事件 593
767 理解RThreshold和Sthreshold属性 593
769 使用MSComm控件接收数据 594
768 使用MSComm控件发送数据 594
770 创建一个简单的终端处理程序 595
771 创建自动发送事件 595
772 理解Winsock控件 595
773 使用Winsock控件 596
774 理解GetData方法 597
775 理解SendComplete和 598
SendProgress事件 598
776 从Winsock控件中返回一个句柄 598
777 在服务器机器上使用Winsock控件 598
778 返回Winsock控件的当前状态 599
779 理解Internet传输控件 599
780 理解Execute方法 600
781 在Execute方法中使用HTTP命令 600
782 在Execute方法中使用FTP命令 600
783 确信保存了用户名和密码 601
784 连接到Internet 602
785 浏览FTP服务器 603
786 使用Get从FTP服务器获取 603
一个文件 603
787 对FTP服务器做写操作 604
788 编写一个自动的FTP上载 604
和下载程序 604
789 编写FTP浏览器 605
790 理解WebBrowser控件 605
791 使用WebBrowser控件 605
792 理解Navigate方法 606
793 理解NavigateComplete事件 607
794 使用LocationURL属性 608
795 使用ProgressChange事件 608
800 创建多个Web浏览器 609
799 在WebBrowser控件中访问FTP 609
798 停止网页下载 609
797 理解DownloadBegin和 609
796 使用LocationName属性 609
DownloadComplete事件 609
801 设置主页 610
802 后退与前进 610
803 编写Visual Basic的Internet浏览器 610
804 重新考虑ActiveX 611
805 理解ActiveX的不同类型 612
807 理解UserControl对象 613
806 确定是否应用ActiveX控件、 613
EXE或DLL 613
808 运用Visual Basic来创建控件 614
809 理解Visual Basic Control CreationEdition 614
810 理解ActiveX的安全性 615
811 签名ActiveX控件 617
812 打包ActiveX控件 618
813 打包一个简单的ActiveX控件 618
814 使用向导创建一个ActiveX控件 619
816 功能映射 620
817 设置属性 620
815 理解“创建自定义接口成员”对话框 620
818 完成向导 621
819 开始创建ActiveX控件 622
820 增强控件的功能 623
821 测试控件 623
822 理解ActiveX控件事件 624
823 理解ActiveX控件的生命周期 624
824 对非生命周期事件的响应 625
825 理解RaiseEvent语句 625
826 使用Event语句 626
827 给控件添加功能 627
的容器 628
829 理解属性页向导 628
828 执行ColorfulCmdButton控件 628
830 使用属性页向导 629
831 理解ActiveX文档 630
832 创建一个ActiveX文档 631
833 为自己的ActiveX文档指定容器 631
834 发现目标应用程序的对象模型 633
835 理解对象模型中的变化 633
837 使用UserDocument对象 634
836 理解UserDocument对象 634
838 测试ActiveX文档 635
839 调试FirstACXDoc的ActiveX 636
文档 636
840 向工程中添加第二个ActiveX 637
文档 637
841 运行两文档工程 638
842 理解ActiveX DLL文件 639
843 为ActiveX DLL文件创建类 639
844 为MyTest类创建属性和方法 640
845 初始化类 641
846 创建TestMyTest工程 641
847 实例化MyTest类 642
848 执行MyTestDemo工程 643
849 理解对象的生命周期 644
850 向MyTest类中添加SelfAbsorbed属性 644
851 理解循环引用 645
852 理解ActiveX组件的命名原则 647
853 理解行为良好的组件 648
854 理解VBScript 649
855 理解VBScript的好处 650
856 在HTML中使用VBScript 650
857 对VBScript中事件的响应 650
858 执行Hello.HTML文件 652
859 对VBScript进行注释 652
861 执行事件和操作 653
860 在VBScript中执行数学函数 653
862 使用VBScript的Option Explicit 654
863 使用VBScript的Dim 654
864 使用ActiveX控件的VBScript 655
865 从VBScript访问ActiveX控件 655
866 在一个HTML页中使用Label 655
控件和Timer控件 655
869 注册ActiveX控件 657
868 理解PARAMNAME标签 657
867 引用ActiveX控件 657
870 使用注册表编辑器来寻找 658
Class ID 658
871 在HTML文件中使用 659
WebBrowser控件 659
872 Active Server Pages 660
873 在ASP中响应和请求 660
874 使用Querystring参数 661
876 回退 662
875 格式化的一个捷径 662
877 理解.INI文件 664
878 使用文件的 665
WritePrivateProfileString API 665
879 使用.ini文件的 665
GetPrivateProfileString API 665
880 使用.ini文件的 666
GetPrivateProfileInt API 666
881 在分布式程序中使用.ini文件 667
882 理解.ini文件的局限性 667
883 理解System Registry 667
884 理解SaveSetting函数 668
885 理解GetSetting成员函数 668
886 使用SaveSetting和GetSetting语句 668
887 在注册表中保存窗体的大小和位置 669
变量传递 670
888 在注册表中进行程序之问的 670
889 使用DeleteSetting函数 671
890 使用GetAllSettings函数 671
891 使用注册表的API函数 671
892 理解RegOpenKeyEx API函数 673
893 理解RegQueryValueEx函数 674
894 理解RegCloseKey函数 674
895 当打开窗体时使用API函数 674
896 理解RegCreateKeyEx函数 676
897 理解RegSetValueEx函数 677
898 使用RegSetValueEx和 677
RegCreateValueEx 677
899 捕获注册表错误 678
900 使用API函数删除键和值 679
901 访问注册表 679
902 理解条件编译 680
903 理解#Const语句 680
904 理解#If-Then-#Else 681
906 理解GetWindowsDirectory API函数 682
905 使用条件编译 682
907 理解GetSystemDirectory API函数 683
908 使用GetWindow函数 683
909 得到窗口的名字 684
910 导出应用程序 684
911 理解Visual Basic的安装向导 684
912 选择要发布的工程文件 685
913 选择发布媒介 685
914 确保所有文件都包含在发布 685
列表中 685
915 保存安装模板 686
916 产生发布媒体 686
917 在用户的计算机上安装程序 686
919 重新考虑应用程序向导 687
920 使用应用程序向导产生标准窗体 687
918 创建Internet发布 687
921 理解Splash Screen 688
922 理解About对话框 689
923 使用向导添加数据库窗体 689
924 理解Crystal Reports 689
925 使用Crystal Reports 690
926 为报表选择数据源 690
929 Totaling and Counting分组字段 691
928 报表中的记录分组 691
927 在报表中添加字段 691
930 选择记录及风格化报表 692
931 修改报表 692
932 移动、改变大小、格式化以 693
及删除字段 693
933 改变报表中数据的排列顺序 693
934 校正排列和分组次序 694
937 插入小结 695
936 使用Summarized和Totaled字段 695
935 创建定制组 695
938 插入汇总 696
939 插入总结 696
940 选择记录 696
941 返回组中前N个记录 697
942 创建公式 697
943 在报表中加入图形/图表 698
944 在报表中插入OLE或ActiveX 698
对象 698
945 添加或修改表头 699
946 理解Crystal Report引擎 699
947 理解Crystal ActiveX控件 700
948 使用Crystal ActiveX控件 700
951 扩展Visual Basic 701
952 重新考虑对象模型 701
949 理解Crystal窗口上的图标 701
950 CrystalReports控件的局限性 701
953 理解外接程序 702
954 创建一个外接程序 702
955 访问扩展模型 703
956 创建工程的组件 703
957 理解IDTExtensibility接口 703
958 理解OnConnection函数 704
959 深入浅出OnConnection代码 704
961 自定义Connect模块 705
960 理解AddToAddInCommandBar 705
函数 705
962 添加最后的组件 706
963 完成外接程序设计 706
964 添加外接程序到.ini文件 708
965 装载外接程序 708
966 外接程序的疑难解答 709
967 理解ActiveX EXE 709
970 理解异步处理 710
968 区分进程外和进程内组件 710
969 理解线程 710
971 理解使用事件的异步通知 711
972 理解使用回调方法的异步通知 712
973 在多客户中使用回调 713
974 选择基于事件的通知还是基于回调的通知 713
975 理解类型库 714
976 理解默认接口 715
977 重新考虑GUID 715
978 理解版本兼容 715
979 创建ActiveX EXE 716
980 理解进程外组件的模态 717
981 开始创建测试工程 718
982 在测试工程中加入代码 719
983 查看有模态的TestForm 720
984 查看无模态的TestForm 720
985 使用异步通知 721
986 完成事件通知代码 722
987 编写客户程序 723
988 考虑如何处理多客户 724
989 使用Connector对象 725
990 认识到Connector中的错误 726
991 使用异步回调方法 726
992 创建LunchTimeMonitor可执行程序 726
993 发布ActiveX EXE 727
994 理解单线程 727
995 有序开发ActiveX组件 727
996 重新考虑多线程 728
997 理解套间模式线程 728
998 理解重进入 729
999 理解二进制兼容性 729
1000 避免版本树 730
1001 避免版本兼容消息 730