第一章 Visual Basic与数据库 1
1.1 数据库的基本概念 1
1.1.1 从文件系统到数据库系统 1
1.1.2 数据库管理系统与数据库应用系统 3
1.2 数据模型 3
1.3 Visual Basic的数据库访问 4
1.3.1 Visual Basic 5.0的新增内容 4
1.4 Visual Basic 5.0的数据库应用 5
1.3.2 数据类型 5
1.4.1 用Visual Basic 5.0作为数据库开发平台 6
1.4.2 用Visual Basic 5.0作为数据库前端 6
1.5 Visual Basic与数据库管理系统(DBMS) 7
1.5.1 普通的关系数据库管理系统 8
1.5.2 客户/服务器数据库管理系统 8
1.5.3 Microsoft数据库管理系统Access 9
第二章 用数据库管理器建立数据库 11
2.1 数据库的组成 11
2.2.1 把数据分配到表中 13
2.2 数据组织 13
2.2.2 关系 15
2.3 建立数据库 15
2.3.1 建立新的数据库 15
2.3.2 表的修改 24
2.3.3 建立索引 28
2.4 数据的输入与基本操作 30
2.4.1 输入数据 30
2.4.2 数据的基本操作 33
2.5 数据窗体 35
第三章 数据控件 39
3.1 用数据控件访问数据库 39
3.1.1 数据控件的功能 39
3.1.2 一个简单例子 40
3.2 数据控件的属性、事件和方法 44
3.2.1 数据控件的属性 44
3.2.2 数据控件的方法 49
3.2.3 数据控件事件 50
3.3.1 记录的查找 51
3.3 记录的查找、增加和删除 51
3.3.2 记录的增加 53
3.3.3 删除记录 55
3.4.1 可用作约束控件的内部控件 56
3.4.2 数据约束列表框和数据约束组合框 59
3.4.3 数据约束网格控件 61
第四章 对象、类和集合 63
4.1 面向对象的程序设计 63
4.1.1 基本概念 64
4.1.2 面向对象方法与程序设计语言 67
4.2 Visual Basic中预定义的类和对象 68
4.2.1 预定义对象和类 68
4.2.2 对象的操作 69
4.3 对象变量 73
4.3.1 对象变量的声明和赋值 73
4.3.2 继承 78
4.3.3 对象变量的释放 82
4.4 对象数组 83
4.4.1 窗体数组 83
4.4.2 控件数组 85
4.5.1 属性过程的定义 90
4.5 属性(Property)过程 90
4.5.2 属性过程举例 94
4.6 初始化事件和终止处理事件 98
4.6.1 Initialize事件和Terminate事件 98
4.6.2 程序举例 99
4.7 建立自己的对象 100
4.7.1 类模块的基本概念 100
4.7.2 类的建立 102
4.8.1 对象浏览器的功能和构成 110
4.8 对象浏览器 110
4.8.2 把注释信息加到对象浏览器中 113
4.9 集合 115
4.9.1 集合的建立 115
4.9.2 程序举例 122
第五章 数据访问对象(DAO) 127
5.1 概述 128
5.1.1 DAO的基本功能 128
5.2 数据库应用程序 129
5.2.1 Visual Basic数据库应用程序的构成 129
5.1.2 版本与数据访问 129
5.2.2 本地数据库与远程数据库 130
5.2.3 数据库程序设计 131
5.3 数据访问对象模型 132
5.3.1 数据访问对象 132
5.3.2 数据访问对象的含义 133
5.4 打开数据库 136
5.4.1 数据访问对象库 137
5.4.2 打开和关闭数据库 138
5.5 映射数据库 140
5.5.1 通过对象映射数据库 140
5.5.2 通过集合映射数据库 146
5.6 建立数据库 149
5.6.1 CreateDatabase方法 149
5.6.2 修改数据库结构 150
5.7 记录集(RecordSet) 153
5.7.1 记录集的五种类型 154
5.7.2 建立记录集对象 155
5.7.3 OpenRecordSet方法 157
5.8 记录的增加修改和删除 160
5.8.1 增加记录 160
5.8.2 修改记录 162
5.8.3 删除记录 164
5.9 记录集的基本操作 164
5.9.1 在记录集中移动 165
5.9.2 检测记录集边界 166
5.9.3 记录集中记录的个数 169
5.10 查找与定位 170
5.10.1 在表类型记录集中查找记录 171
5.10.2 在动态集或快照类型的记录集中查找记录 173
5.10.3 用书签标识记录 177
5.11 表和字段 179
5.11.1 建立表和字段 179
5.11.2 Field对象的类型 181
5.11.3 编写建立数据库的应用程序 183
5.12 数据访问对象和数据控件 186
5.12.1 数据控件的属性设置 186
5.12.2 非约束控件 187
5.13.1 在应用程序中使用事务 192
5.13 Microsoft Jet事务处理 192
5.13.2 事务的管理 194
5.14 用DAO编写建立数据库的应用程序 196
5.14.1 通用过程功能介绍 196
5.14.2 应用举例 198
第六章 结构化查询语言SQL 203
6.1 什么是SQL 203
6.1.1 SQL与过程语言 203
6.1.2 ANSI SQL的执行方式 205
6.1.3 SQL的特点 206
6.2 SQL的构成 207
6.2.1 SQL命令和子句 207
6.2.2 运算符和函数 208
6.3 数据定义语言(DDL) 210
6.3.1 建立表 210
6.3.2 用CONSTRAINT子句建立索引 212
6.3.3 用CREATE INDEX语句建立索引 213
6.3.4 用ALTER TABLE修改表结构和建立索引 214
6.4 DDL语句的执行 215
6.4.1 用“可视化数据管理器”执行SQL语句 216
6.4.2 用DAO中的Execute方法执行SQL语句 218
6.5 数据操作语言(DML) 224
6.5.1 SELECT语句 224
6.5.2 WHERE子句 228
6.5.3 ORDER BY子句 232
6.5.4 统计信息查询与查询结果分组 234
6.6.1 添加记录 238
6.6.2 删除和更新表中的记录 241
6.6.3 用查询结果建立一个新表 242
6.7.1 建立QueryDef对象 243
6.7 QueryDef对象 243
6.7.2 参数化查询 246
6.8 DML语句的执行 247
6.8.1 Visual Basic代码中的SQL语句 248
6.8.2 用SQL语句作为OpenRecordSet方法的参数 248
6.8.3 在数据控件中使用SQL 250
6.9 多表查询与子查询 251
6.9.1 多表查询 251
6.10.1 内部连接(INNER JOIN) 257
6.10.2 外部连接(OUTER JOIN) 261
第七章 外部数据访问 263
7.1 外部数据源 264
7.1.1 所支持的外部数据源 264
7.1.2 需要注意的几个问题 265
7.2 建立访问 268
7.2.1 外部数据库的访问方式 268
7.2.2 链接外部表 269
7.2.3 打开外部表 272
7.2.4 连接信息 273
7.3 访问桌面数据库 274
7.3.1 访问Microsoft Jet数据库 275
7.3.2 访问FoxPro数据库 277
7.4 访问文本文件 282
7.4.1 指定连接信息 283
7.4.2 方案描述信息文件 283
7.4.3 程序举例 287
7.5 用“可视化数据管理器”和数据控件连接外部表 290
7.5.1 用“可视化数据管理器”连接外部表 290
7.5.2 用数据控件连接外部表 293
8.1.1 共享数据库的管理 297
第八章 多用户应用程序设计 297
8.1 Microsoft Jet多用户模型 297
8.1.2 Microsoft Jet多用户模型 299
8.2 数据访问控制 300
8.2.1 互斥地使用数据库 300
8.2.2 拒绝其它用户或程序访问指定的表 301
8.3 共享数据的锁定 301
8.3.1 共享模型与独占模式 302
8.3.2 记录集锁定 304
8.4.1 锁定模式 306
8.4 页面锁定 306
8.4.2 保守式锁定和开放式锁定 307
8.4.3 锁定的实现 308
8.4.4 锁定方案 311
8.4.5 页面锁定中的错误处理 313
8.5 多用户应用程序中应注意的其它问题 315
8.5.1 数据访问对象集合的刷新 315
8.5.2 再查询与事务 316
8.5.3 用户标识 318
9.1 数据库复本及其拓扑结构 321
第九章 数据库复本 321
9.1.1 数据库复本的用途 322
9.1.2 复本集扑年结构 322
9.2 与复本操作有关的对象、属性和方法 323
9.2.1 Document对象和Documents集合 323
9.2.2 Container对象和Containers集合 324
9.2.3 Property对象和Properties集合 326
9.2.4 KeepLocal属性和Replicable属性 331
9.3 复制数据库 334
9.2.5 MakeReplica方法 334
9.3.1 保持对象本地化 335
9.3.2 使对象可以复制 337
9.3.3 构造设计原版 337
9.3.4 用复本生成复本 339
9.4 数据库与数据库复本 340
9.4.1 复本属性和标识符 341
9.4.2 数据库大小与AutoNumber字段 343
9.5.1 Synchronize方法 344
9.5 复本同步 344
9.5.2 星形拓扑结构的同步 346
9.6 部分同步 348
9.6.1 与部分复本有关的属性和方法 348
9.6.2 建立部分复本 351
9.7 冲突和错误的处理 351
9.7.1 同步冲突 351
9.7.2 同步错误 353
9.7.3 设计错误 355
9.8.1 控制复本的建立 356
9.8 需要考虑的设计因素 356
9.8.2 指定一个新的设计原版 357
9.8.3 其它因素 358
第十章 数据库应用系统设计与开发 361
10.1 数据库设计 361
10.2 建立数据库和表 364
10.2.1 建立数据库 364
10.2.2 建表 365
10.3 数据库基本操作 370
10.4.1 输入数据 373
10.4 数据库维护 373
10.4.2 浏览数据 378
10.4.3 删除数据 383
10.4.4 修改数据 384
10.5 数据查找 385
10.5.1 界面设计 386
10.5.2 编写代码 387
10.6 完整的程序代码 393
10.6.1 界面设计 393
10.6.2 程序代码 396
第十一章 建立客户/服务器数据库前端应用程序 411
11.1 客户/服务器 412
11.1.1 客户/服务器与SQL Server 412
11.1.2 文件服务器与客户/服务器 413
11.2 建立SQL Server数据库 415
11.2.1 建立设备 415
11.2.2 建立数据库 420
11.2.3 建表 421
11.2.4 输入数据 424
11.2.5 把其它数据库中的表附加到SQL Server数据库中 427
11.3 ODBC基本概念 431
11.3.1 什么是ODBC 432
11.3.2 数据库接口与ODBC结构 432
11.4 ODBC数据源 436
11.4.1 建立ODBC数据源 437
11.4.2 使用ODBC数据源 440
11.5 用“可视化数据管理器”访问ODBC数据源 442
11.6 用数据控件和远程数据控件访问ODBC数据源 444
11.6.1 用数据控件访问ODBC数据源 444
11.6.2 用远程数据(RemoteData)控件(RDC)访问ODBC数据源 448
11.7 用数据访问对象(DAO)访问ODBC数据源 451
11.7.1 打开ODBC数据源 451
11.7.2 程序举例 453
11.8 用ODBCDirect访问ODBC数据源 459
11.8.1 Microsoft Jet与ODBCDirect 459
11.8.2 建立ODBCDirect工作区 460
11.8.3 建立Connection对象 463
11.8.4 异步连接与异步查询 466
11.8.5 批量优化更新 470
11.8.6 处理冲突 471
11.8.7 游标 473
11.9 远程数据对象(RDO) 475
11.9.1 RDO新特性 475
11.9.2 RDO与DAO/Jet 476
11.10 远程数据对象的配置要求和设计目标 478
11.10.1 RDO的配置要求 479
11.10.2 RDO和客户/服务器的设计目标 479
11.11 使用远程数据对象 481
11.11.1 RDO对象模型 481
11.11.2 rdoEngine对象 483
11.11.3 建立rdoEnvironment对象 484
11.11.4 建立连接 486
11.12 结果集(rdoResultSer) 493
11.12.1 rdoResultSet对象 493
11.12.2 rdoColumn对象和rdoColumns集合 497
11.13 数据修改 499
11.13.1 定位当前指针 499
11.13.2 增加数据 503
11.13.3 修改数据 506
11.13.4 删除数据 510
11.14 在Visual Basic中建立SQL Server数据库 517
第十二章 报表与图表 525
12.1 启动Crystal Reports 525
12.2 建立报表 528
12.2.1 报表设计界面 529
12.2.2 在“专家”的“指导”下建立报表 530
12.2.3 自定义报表 538
12.3 报表的修改 542
12.3.2 修改报表 543
12.3.1 报表对象 543
12.4 报表格式化与输出 546
12.4.1 报表格式化 546
12.4.2 报表的输出 550
12.5 用报表控件输出报表 554
12.5.1 报表控件 554
12.5.2 输出报表 557
12.6 图表 564
12.6.1 Graph控件 565
12.6.2 建立和输出图表 568