第1部分 应用Visual Basic 3
第1章Office 2000编程概述 3
1.1 Visual Basic for Applications做些什么 3
1.1.1解释器负责指令的处理 4
1.1.2对象库补充VBA词汇 5
1.1.3什么是程序(program) 6
1.1.4变量是表示内存单元的符号 7
1.1.5对象库提供了一个应用程序的辞典 8
1.1.6条件指令被子句绑定 8
1.1.7循环指令也被子句绑定 9
1.2 VBA对象的特征 9
1.2.1属性表示对象的特征 10
1.2.2属性设置的影响范围广泛 10
1.2.3方法是施加到对象的或对象所施加的函数 11
1.2.4一些方法指令需要变元 12
1.2.5事件是对象所触发的独占过程 13
1.2.6成分是属于其他对象的对象 14
1.2.7为什么本书要用不同的观点介绍成分 14
1.3 Visual Basic的语言部分 17
1.3.1语句是变化的标志 17
1.3.2表达式就是具有离散结果的逻辑运算 17
1.3.3 If…Then综合了语句和表达式 18
1.3.4函数就是应用数学式的动作 19
1.4 VBA工程的结构 19
1.4.1 VBA环境管理多个工程 19
1.4.2程序(procedure)是指令的集合 19
1.4.3模块是程序的集合 20
1.5程序与宏的比较 22
1.5.1宏与VBA的差别 22
1.5.2模板作为文档“类” 23
1.5.3谁的宏是真正的宏 23
1.6 Windows的Component Object Model(组件对象模型) 25
1.6.1组件对象有鲜明的个性 25
1.6.2文档与纯文件之间的区别 25
1.7理论深入:VBA仍旧是BASIC 27
1.7.1经验教训 27
1.7.2 VBA使BASIC驱动式的程序复兴 27
1.8小结 28
第2章Office 2000对象模型 29
2.1在充满对象的世界中生活 29
2.2对象模型的根基 30
2.2.1对象库的名称就是主要对象 31
2.2.2访问中心对象 34
2.2.3深入学习全局对象 36
2.2.4 Singularity是单个对象的实例 39
2.2.5集合代表一个类的多个实例 40
2.2.6立即窗显示即时结果 41
2.2.7用数字、文字和变量作为下标 43
2.2.8使用所有信息 44
2.3执行对象引用 47
2.3.1何时指定类,何时不指定类 53
2.3.2把对象的特征赋给变量 53
2.3.3变量完全在你的代码控制之下 55
2.4理论深入:它到底是谁的对象模型 56
2.5小结 57
第3章 领会Visual Basic符号系统 58
3.1变量作为值的符号 58
3.1.1一个变量代表一个存储单元 59
3.1.2 VBA变量是通过对它们的第一次引用来进行声明的 60
3.1.3有必要明确声明变量类型吗 61
3.1.4为我们自己区分变量类型 62
3.1.5单个后缀字符可以指示变量的类型 64
3.2变量作为序列或表格 66
3.2.1对象数组和集合 67
3.2.2围绕一个集合来组织数组 67
3.2.3用算法对数组元素排序 68
3.3变量用作字或文本 71
3.3.1字符串怎样代表“纯”文本 71
3.3.2用字符串来表达赋值 71
3.4数学表达式的机制 73
3.4.1表达式代表真实值或者真实数据 73
3.4.2操作符用作建立表达式 74
3.4.3求解顺序 76
3.4.4括号改变表达式的求解顺序 77
3.5建立一个基于程序式的程序 78
3.5.1为什么我们使用程序 78
3.5.2为什么程序具有可穿透的边界 79
3.5.3变元就是明确传递给程序的数据 81
3.5.4 Function程序把数据返回给调用者 82
3.5.5利用基于程序式的结构 83
3.5.6 VBA解释器怎样知道从哪里开始 84
3.5.7模块示例 85
3.5.8 Sub和Function程序的基础 86
3.5.9程序名字表征了它的任务 90
3.5.10 Fanction程序产生明确结果 93
3.6调节和管理作用域 99
3.6.1 VBA中变量的四个作用域 99
3.6.2用Public来声明模块级变量 102
3.7绑定和类型检验 105
3.7.1为什么要用到变体 106
3.7.2变体数组可以含有具有不同类型的成员 107
3.7.3对象声明和绑定是分开的过程 108
3.7.4 New关键字激发对象的新实例 109
3.8理论深入:Pascal还活着 110
3.9小结 111
第4章BASIC语言的作用 112
4.1会话式模型的优点 112
4.2执行条件 114
4.2.1许多If…Then语句处理或者/或者条件 114
4.2.2使对象引用有效化时你的唯一办法 121
4.2.3 Excel集合中的成员可以怎样可靠地确定 122
4.2.4“激活”和/或“选定”Excel对象 123
4.2.5处理条件的多重排列 125
4.2.6一个多重条件的Select Case子句测试 125
4.2.7协调不同的对象库 131
4.3使用内部函数 133
4.3.1把真实意义应用到“逻辑”上 133
4.3.2基于微积分的函数语法 134
4.3.3内部函数补偿Excel的不寻常命名 135
4.4利用循环子句 136
4.4.1重复操作是重复指令的一个循环 136
4.4.2 For…Next是最常用的循环子句绑定器 137
4.4.3与集合搭配的循环子句 141
4.5理论深入 143
4.6小结 144
第5章 利用Forms控件作为显示设备 145
5.1控件是什么 146
5.1.1库是包含许多小程序的文件 146
5.1.2对象自身的词库 146
5.2窗体模块和VBA工作区 147
5.2.1窗体模块含有生成对话框的代码 147
5.2.2 ThisDocumen对象操控关键文档事件 147
5.2.3 VBA所支持的代码模块的类型 150
5.2.4 UserForm对象是控件的容器 151
5.2.5窗体模块如何工作 152
5.2.6命名事件时的特殊性 152
5.2.7 Toolbox代表多个类 152
5.2.8 VBA为你建立事件程序框架 156
5.3构造窗体模块原型 157
5.3.1构思一个Word 2000段落浏览器 158
5.3.2模板与窗体模块必须单独初始化 159
5.3.3窗体的初始属性应当马上设置 160
5.3.4窗体是如何正式指定的 161
5.3.5如何在窗体上附加一个新控件 162
5.3.6如何为控件设置属性 162
5.3.7框架帮助将控件分组 163
5.3.8选项按钮彼此如何一同作用 164
5.3.9使缺省命令按钮与回车键一致 166
5.3.10没有两个Windows是相同的 166
5.4给原型加上功能 168
5.4.1_Initialize事件在窗体能被看见以前建立窗体 168
5.4.2 Word的多面式的Range对象 171
5.4.3控制光标跨过文档边界 172
5.4.4列表框从0开始列举其内容 173
5.4.5改变文档文本 174
5.4.6通过事件程序使得窗体可用 175
5.4.7一个Public Sub程序使得窗体模块成为一个“宏” 175
5.4.8重新考虑效率问题 176
5.4.9表扬革新 179
5.5理论深入:请用英语 180
5.6小结 181
第6章 控件的公共术语 183
6.1 Forms 2.0控件的公共事件术语 183
6.1.1_AfterUpdate 183
6.1.2_BeforeUpdate 185
6.1.3_Change 186
6.1.4_Click 187
6.1.5_DbIClick 187
6.1.6_Enter 190
6.1.7_Error 190
6.1.8_Exit 192
6.1.9_KeyDown 192
6.1.10_KeyPress 194
6.1.11_KeyUp 196
6.1.12 _MouseDown 197
6.1.13 _MouseMove 204
6.1.14 _MouseUp 207
6.1.15示例中所用的内部函数 209
6.2 Forms 2.0公共控件属性 209
6.2.1.Accelerator 210
6.2.2.AutoSize 210
6.2.3.BackColor 210
6.2.4.BackStyle 210
6.2.5.BorderColor 210
6.2.6.BorderStyle 211
6.2.7.Caption 211
6.2.8.ControlTipText 211
6.2.9.Enabled 211
6.2.10.Font 211
6.2.11.ForeColor 212
6.2.12.Height 212
6.2.13.HeIpContextID 212
6.2.14.LayoutEffect 212
6.2.15.Left 212
6.2.16.Locked 213
6.2.17.Mouselcon 213
6.2.18.MousePointer 213
6.2.19.Name 213
6.2.20.OldHeight 214
6.2.21.OldLeft 214
6.2.22.OldTop 214
6.2.23.OldWidth 214
6.2.24.Parent 214
6.2.25.Picture 214
6.2.26.TabIndex 214
6.2.27.TabStop 214
6.2.28.Tag 215
6.2.29.Text 215
6.2.30.Top 215
6.2.31.Value 215
6.2.32.Visible 215
6.2.33.Width 216
6.3 Forms 2.0公共控件方法 216
6.3.1 .Move 216
6.3.2 .SetFocus 217
6.3.3 .ZOrder 217
6.4窗体的机制 217
6.4.1特征 218
6.4.2 Forms 2.0 UserForm属性 218
6.4.3 Forms 2.0 UserFom方法 223
6.4.4 Forms 2.0 UserForm事件 225
6.5理论深入:“买这个!”,回答:是/否/取消 228
6.6小结 229
第7章用ActiveX控件扩展Office 2000 231
7.1命令按钮 232
7.1.1特征 232
7.1.2值属性 232
7.1.3特殊属性 232
7.2标签控件 234
7.2.1特征 234
7.2.2值属性 234
7.2.3特殊属性 234
7.3文本框控件 236
7.3.1特征 236
7.3.2值属性 236
7.3.3特殊属性 236
7.3.4相关的方法 240
7.3.5识别的事件 241
7.4选项按钮控件 243
7.4.1特征 243
7.4.2值属性 243
7.4.3特殊属性 243
7.5复选框控件 245
7.5.1特征 246
7.5.2值属性 246
7.5.3特殊属性 246
7.6滚动条控件 248
7.6.1特征 248
7.6.2值属性 249
7.6.3特殊属性 249
7.6.4独有事件 250
7.7旋转按钮控件 250
7.7.1特征 251
7.7.2值属性 251
7.7.3特殊属性 251
7.7.4独有事件 252
7.8切换按钮控件 252
7.8.1特征 252
7.8.2值属性 252
7.8.3特殊属性 252
7.9图像控件 253
7.9.1特征 254
7.9.2值属性 254
7.9.3特殊属性 254
7.10列表框控件 255
7.10.1特征 255
7.10.2值属性 255
7.10.3特殊属性 256
7.10.4相关的方法 260
7.11组合框 260
7.11.1特征 260
7.11.2值属性 261
7.11.3特殊属性 261
7.11.4独有事件 266
7.11.5相关的方法 266
7.12框架控件 268
7.12.1特征 268
7.12.2特殊属性 269
7.12.3相关的方法 273
7.12.4独有事件 274
7.13 TabStrip控件 274
7.13.1 MulitPage是一个容器,但TabStrip不是 274
7.13.2 TabStrip特征 276
7.13.3值属性 276
7.13.4特殊属性 276
7.13.5 TabStrip集合对象 277
7.13.6 Tab对象属性 277
7.13.7 Tabs集合属性 278
7.13.8 Tbs集合方法 278
7.14 MultiPage控件 279
7.14.1 MultiPage特征 280
7.14.2值属性 280
7.14.3特殊属性 280
7.14.4 MultiPage集体对象 281
7.14.5 Page对象属性 281
7.14.6 Page对象方法 284
7.14.7 Pages集合属性 285
7.14.8 Pages集合方法 285
7.15 理论深入:要不就现在说,要不就保持沉默 286
7.16小结 288
第8章为什么组件对象模型(COM)重要 289
8.1 Windows对对象的感受 290
8.1.1文档中心式的模型的起源 290
8.1.2 Microsoft的COM不是一个数据格式 291
8.1.3 COM是一种什么类型的对象模型 292
8.1.4我们(当前)如何识别商标 292
8.2组件对象的用途 293
8.2.1组件对象的主要分类 294
8.2.2 Office 2000作为自动服务器设备组 296
8.2.3过程间通讯的原因 296
8.2.4把用户与抽象逻辑屏蔽开 298
8.2.5区分控件和容器 299
8.2.6分析OLE的“个性” 299
8.2.7一个真实的故事 302
8.2.8 OLE是复合文档的绑定器 303
8.2.9链接与内嵌,比较和对照 303
8.2.10控件是一个“L”,还是“E” 305
8.2.11一个组件词典的各部分 305
8.3组件通讯过程 306
8.3.1第一层:二进制接口 306
8.3.2第二层:类型库与词典 306
8.3.3回来的第一层 307
8.3.4代理程序与占位程序 308
8.3.5过程中与过程外组件 310
8.3.6 OLE如何加速文档对象 311
8.4为了娱乐和利益而实例化 313
8.4.1 Office 2000应用程序作为自动服务器 313
8.4.2构建在系统注册中列出的对象 314
8.5三层式分布组件模型 319
8.5.1 DCOM的有效运转源于它使用了OLE的支持 319
8.5.2介绍分布式应用程序的核心内容 320
8.5.3连接公认的点 321
8.6理论深入:公共容量 322
8.7小结 323
第9章 设计运行期间对象 325
9.1事先编程 325
9.1.1一个类模块为可重新使用的代码提供一个机制 326
9.1.2类模块中的Public程序变成方法 327
9.1.3事件是类模块送出的一个信号 327
9.1.4类模块的属性是一个规则数据单元 328
9.2使得类模块工作 338
9.2.1克服作用域和寿命的限制 338
9.2.2窗体模块是一个不可靠的实例化器(instantiator) 339
9.2.3 ThisDocument不能处理公有对象 340
9.2.4一个运行期间集合如何工作 342
9.2.5协调各自身份和集体身份 343
9.2.6定义一个多实例类 344
9.2.7使用集合保持类 350
9.3理论深入:BASIC何去何从 354
9.4小结 355
第10章 什么东西VBA不知道而Windows知道 357
10.1声明外部函数 358
10.1.1从VBA标准来看,参数传递是非正统的 358
10.1.2 API函数结果常常返回在缓冲区中 360
10.1.3 API函数可以注册正被使用的处理器的类型 366
10.2在一个类模块中采用API函数 369
10.2.1复兴.INI文件 369
10.2.2.IM文件的API函数处理“轮廓” 370
10.2.3类实例是单单一个还是许多中的一个 372
10.2.4用VBE对象来使得一个模块指它自己 373
10.2.5可选的变体可以被声明为Missing 375
10.2.6在属性程序中的变元对应当匹配 376
10.2.7在函数和属性之间的灰色区域 380
10.2.8强制清除一个.INI文件参数 380
10.3连接窗体模块和类模块 384
10.3.1在服务和数据类之间的区分因素 384
10.3.2对象引用的所有者处理它的事件 385
10.3.3什么时候多个模块指同一个实例 387
10.3.4用类实例化来设置窗体模块 387
10.4利用Windows的普通对话框 393
10.4.1激发标准OpenFile对话框 394
10.4.2逐位逻辑用于将多个状态存储于一个变量中 394
10.4.3标准对话有许多的特征 395
10.4.4 OpenFile的滤波器机制的规则 396
10.4.5使用六个或更多个属性的一个支持变量 399
10.4.6将API函数调用包装在一个方法程序中 404
10.4.7利用一个窗口的Windows局部 406
10.4.8多选改变返回数据的语法 406
10.5声音——Windows的礼貌 407
10.5.1将声音包装在一个密封容器中 408
10.5.2通过自定义事件实施声音响应 409
10.6理论深入:客观现实 416
10.7小结 417
第11章 包装和分布Office 2000功能 419
11.1重新定义Office应用程序 419
11.1.1 Excel不把模板文件分开来分类 420
11.1.2工具栏设置程序必须位于标准模块中 421
11.1.3通过CommandBars对象设置一个工具栏 423
11.1.4 VBA如何访问一个应用程序的工具栏 424
11.1.5工具栏按钮链接到一个旧式的处理程序 425
11.2 VBA模块充当可装载的组件 432
11.2.1注册一个自动装载和运行的工程 433
11.2.2包装Access的可重复分布式代码 435
11.2.3关于Word模板,什么是“标准的” 435
11.2.4包装和PowerPoint 436
11.3编写Setup例行程序 437
11.4理论深入:盒子中的灯和线 441
11.5小结 442
第2部分Office 2000平台 447
第12章Word 2000对象库 447
12.1平常的Word 2000工程 447
12.1.1最平凡的任务常常是最简单的 450
12.1.2 VBA的陌生的引号 450
12.1.3利用被嵌入的域代码来为文本加“上划线” 452
12.1.4 Word能够将数字从阿拉伯数字格式编排为罗马数字 453
12.2第一阶段编程:使过程自动化 454
12.2.1 VBA所记录的事物常常不同于一个程序 455
12.2.2过程模型定义VBA如何着手执行任务 455
12.2.3剪贴板与修订视图的混合所带来的危险 457
12.2.4如何不将一个对象和Nothing相比较 458
12.2.5 Range使任何文本都能在任何时候被访问 459
12.2.6在Word中顺序存取与随机存取 462
12.2.7一个窗口应当先被激活,之后才能访问它的光标 463
12.2.8 Range类和Range对象如何工作 465
12.3第二阶段编程:集成过程 468
12.3.1控制Word如何在运行期间更新它的窗口 470
12.3.2验证文档是否曾经保存过 471
12.3.3 With子句的嵌套用来交换缺省对象 471
12.3.4 Word中的超链接需要书签 471
12.3.5让超链接如你所欲 472
12.3.6光标对象的负面角色 476
12.4第三阶段编程:算法逻辑 476
12.4.1改变一个已建立的文本区域的边界 480
12.4.2插入方法直接操纵光标 482
12.4.3任何给定的区域都支持任何数量的注释 483
12.4.4索引排序程序 483
12.4.5在搜索过程中漫步 485
12.4.6讨论采用Find对象的搜索算法 486
12.4.7混合程序模型 487
12.4.8重复搜索应当包括定义过的区域 489
12.4.9 Paragraph对象忽略内部格式编排 490
12.4.10剪贴板复制内部格式编排的文本 491
12.4.11 AutoText操纵剪贴内部格式编排文本 491
12.4.12通过VBA操纵AutoText入口 493
12.5理论深入:超文本枯萎了 495
12.6小结 496
第13章从WordBasic到VBA 497
13.1范例转换 497
13.1.1 VBA程序不是遥控器 497
13.1.2结构变化:Sub MAIN的终结 498
13.1.3将对话函数替换为窗体模块 499
13.1.4有关“转换”的事实 501
13.1.5记录了什么事物,它怎么样了 502
13.2什么被改变,为什么被改变 503
13.2.1移动光标 503
13.2.2插入文本 507
13.2.3 Word 2000用赋值表达式来移动文本 510
13.2.4搜索和替换操作 512
13.2.5设置一个文本搜索过程的三种方法 515
13.2.6 Word 2000如何代替WordBasic的EditFind指令 518
13.2.7访问一个区域使用的字体 522
13.2.8访问段格式编排 524
13.2.9保持文档文件 528
13.3理论深入:被忘却的BASIC 529
13.4小结 530
第14章 功能强大的Word 2000 531
14.1分析文档的各部分 532
14.1.1为不确定的页设计控件 532
14.1.2想像一个二维数组内的控件组 535
14.1.3 Click事件不总是起作用 536
14.1.4准备记录真的以及不那么真的元素的数目 536
14.1.5为了更快地执行而临时地停止屏幕更新 538
14.1.6得到文档的内置属性 539
14.1.7用.GoTo移动区域和选定 540
14.1.8 Word 2000不考虑文本行 541
14.1.9如何以及为什么压缩一个区域 543
14.1.10用书签维持用户的选定区域 544
14.1.11什么时候Words不是真的字 545
14.1.12学习Forms 2.0在何处复制克隆控件 550
14.1.13句、段和“模糊化” 552
14.1.14编写一个二进制搜索 553
14.1.15用Terminate事件实现交换 554
14.1.16使窗体模块对用户可用 555
14.1.17修改和标记了的删除如何改变图像 555
14.1.18 Chaos Manor是活的、健康的 556
14.2理论深入:进步对抗进步 556
14.3小结 557
第15章 程序、演示文稿和PowerPoint 558
15.1 PowerPoint Toybox(玩具箱) 559
15.1.1 PowerPoint的根内容对象是DocumentWindow 559
15.1.2一个Shape是个什么形状 560
15.1.3 Selection的复杂身份,或身份复杂 561
15.1.4 PowerPoint对象库的三个分区 562
15.1.5检索来自任何源的所选文本 563
15.1.6 Selection对象只能跳到幻灯片 567
15.2将PowerPoint作为一个工具来应用 567
15.2.1目标:一个自动演示文稿生成程序 568
15.2.2又几个月的编程 568
15.2.3用另一个应用程序的库来公共声明 570
15.2.4长长的幻灯片索引属性 572
15.2.5减少在PowerPoint上的压力 573
15.2.6使Word搜索属性,而非文本 574
15.2.7生成新的幻灯片和标题 576
15.2.8利用一个Static变量 578
15.2.9使形状对扩展敏感 578
15.2.10用文本特征定位光标 579
15.2.11 Font对象不可转换 579
15.2.12接连加上项目符号 580
15.2.13一个文本区域在何处结束 582
15.2.14校正文本外观的那些属性 582
15.3理论深入:整个世界都在β中 584
15.4小结 586
第16章 领会数据库 587
16.1“关系式”的真实含义 587
16.1.1数据的客户机/服务器模型 589
16.1.2为什么有一个数据通讯模型 589
16.1.3 Jet是VBA的假定数据库引擎 590
16.1.4将VBA引入数据库领域 591
16.1.5数据库操作的关键:查询 591
16.1.6 VBA不是一个数据库管理系统 592
16.2数据库的构造 595
16.2.1表的目的 596
16.2.2列和字段 596
16.2.3更好地理解ISAM 597
16.2.4为什么存取方案是重要的 598
16.3总览SQL 598
16.3.1自然SELECTion(选择)的过程 599
16.3.2一个SQL查询可以按阶段来建立 604
16.3.3内联合建立复合集以提取数据 604
16.3.4外联合复合跨表记录 605
16.3.5 union将两个表中相同的字段处理成一个 606
16.4 INSERT语句示例 609
16.4.1一个UPDATE语句修改现有记录 610
16.4.2简单、但危险的DELETE语句 613
16.5理论深入:更新旧的关系 616
16.6小结 618
第17章用Excel使数据和计算自动化 619
17.1设计自定义Excel函数 620
17.2 Excel的事件驱动式机制 622
17.2.1调整Excel VBA来响应事件 623
17.2.2 Excle所识别的所有事件和Chart对象 623
17.2.3用Excel事件工作时的考虑事项 630
17.2.4一个反作用程序的例子 630
17.2.5颜色混合和Interior对象 634
17.2.6 Excel的Range类对象如何工作 635
17.2.7一个单元格的真值 637
17.3一个Excel工程的各部分 637
17.3.1 Excel对象层次结构的较上层 637
17.3.2为什么只有较高级的类对象接收事件 638
17.4连接Excel到共享对象 639
17.4.1有关图表的奇怪事实 639
17.4.2一个Application如何像一个Chart 643
17.4.3使Application事件对一个模块可用 644
17.4.4使一个模块可用另一个模块的事件 645
17.4.5尽可能地将类模块全局化 645
17.5理论深入:第一个参数 646
17.6小结 648
第18章使Access事务自动化 649
18.1 Access VBA工作环境 650
18.1.1 Access应用程序和Access这个应用程序 650
18.1.2什么东西进入Access VAB程序 651
18.1.3 Access管理它自身的窗体和控件 651
18.1.4通用程序的松散本质 653
18.2设计数据库规划 653
18.2.1表不是数据库 654
18.2.2你的涂鸦技巧发挥作用了 654
18.2.3适用于更复杂的商务模型 655
18.2.4朝着优化而建设 656
18.2.5 Access是定义一个规划的最后工具 657
18.2.6为什么联系是正式定义的 661
18.3 DAO和ADO如何访问数据库 664
18.3.1 Data Access Obj ects 664
18.3.2 ActiveX Data Objects 665
18.3.3比较这两个模型,以及为什么有两个模型 666
18.3.4创建指定工作区和其他爱好 667
18.3.5谁解释SQL代码? 669
18.3.6一个Access窗体代表一个持久型查询的结果 670
18.4 VBA如何通过SQL管理一个数据库 671
18.4.1关于一个DBMS有许多你不必知道 672
18.4.2 VBA将SQL查询装配成字符串 683
18.4.3 DAO如何向Jet提交SQL查询 685
18.4.4 ADO和DAO 693
18.5利用ODBC连到数据库 694
18.5.1 ODBC驱动程序在何处起作用 694
18.5.2 VBA和Access不以相同方式连接 695
18.5.3总之它是谁的数据 695
18.5.4从数据库或查询中检索记录 696
18.5.5处理ODBC的ISAM局限式的本质 697
18.5.6永久工作区的组件是永久的 697
18.6将数据库连接到外界 697
18.6.1通过Jet访问一个.MDB数据库 698
18.6.2数据库类对象永远都不是持久型 700
18.6.3 QueryDef对象有可修改的属性 700
18.6.4通过Jet访问非Jet式的数据库 701
18.6.5当文件是一个表而非一个数据库时 702
18.6.6 Def干扰 703
18.6.7通过ODBCDirect连到一个.DBF文件 703
18.6.8一个ODBCDirect连接的细节 704
18.6.9使得ODBC连接字符串有意义 705
18.7理论深入:数据的全局视图 707
18.8小结 708
附录CD-ROM上的内容 710