《Visual Basic编程实用大全》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:(美)Ted Coombs,(美)Jon Campbell著;邓少鹍,邓云佳等译
  • 出 版 社:北京市:中国水利水电出版社
  • 出版年份:2002
  • ISBN:7508412494
  • 页数:731 页
图书介绍:本书对Visual Basic做了全方位的介绍,深入浅出地讲述Visual Basic各种编程诀窍,以高屋建瓴的眼光看待VB编程的诀窍和思想,力图将最全面最实用的技术展现给读者。本书以其翔实知识面的覆盖、大量实用的示例和作者自身丰富的编程经验,详细介绍了Visual Basic语言的基本概念、输入与输出、流程控制、控件、数据库应用、报表、ActiveX及其在Web和网络方面的应用开发等等。全书面向实例进行阐述,讲解透彻独到。本书既可作为初学者和大专院校师生的自学参考书,也可作为计算机软件开发人员的技术参考书。

译者序 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