Access VBA教程:创建部分副本

部分副本的定义

部分副本是仅包含完全副本中记录子集的副本。若要创建部分副本,需要指定一个筛选,用于限制与整个数据库的子集同步的数据。使用部分副本,可以仅将副本与所需数据同步,而不必与整个数据库同步。

例如,某个企业可能在总部办公室保存了它的整个销售数据库,但是仅将区域数据复制到全国/地区各地的区域办公室。对于每个区域办公室,可以创建只包含与该区域相关的数据的独立副本。而在总部办公室的数据库则是完整的副本,每个部分副本都与之同步。

使用部分副本的优点

部分副本能有效地缩小数据库,因为只需复制经常处理的部分即可。对部分副本进行同步花费的时间较少,并且部分副本本身需要的磁盘空间也较少。

部分副本能帮助限制对数据的访问。在销售数据库中,部分副本能帮助确保一个区域销售办公室的人员不能查看其他区域办公室的销售数据。虽然可以使用部分副本来限制记录访问,但它们仍不能替代具有安全性的系统。

部分副本还具有能够通过局域网 (LAN) 和广域网 (WAN) 复制数据的优点。通过限制需要复制的数据,部分副本可以减少通过 LAN 或长距离载波传送的数据量,从而可以减少网络通信量,并降低电讯成本。

用使用 Jet & Replication Objects 2.5 Library (msjro.dll) 的 ActiveX 数据对象 (ADO) 创建部分副本

若要创建部分副本,请执行下列步骤:

  1. 在 Replica对象上使用 CreateReplica方法,并在 replicatype参数中指定 jrRepTypePartial 常量,这样即可创建部分副本。
  2. 使用 Filters属性来设置所需的筛选和关系,以决定从完全副本中复制哪些数据。
  3. 使用 PopulatePartial方法从完全副本中传送所有满足新的副本筛选条件的记录。

当更改部分副本中的数据或筛选条件时,应该同时使用 Synchronize 和 PopulatePartial方法以确保所有数据都传入完全副本中,并且部分副本根据当前的筛选条件重新进行填充。

注意   创建了部分副本之后,不能将其转换为完全副本。如果删除部分副本中的所有副本筛选和副本关系,它将包含完全副本的所有记录,但是仍然具有同样的局限性和部分副本的限制。

用数据访问对象 (DAO) 创建部分副本

若要创建部分副本,请执行下列步骤:

  1. 在 Database对象上使用 MakeReplica方法,并将 options参数指定为 dbRepMakePartial 常量,这样即可创建部分副本。
  2. 使用 ReplicaFilter 和 PartialReplica属性来设置所需的筛选和关系,以决定从完全副本中复制哪些数据。
  3. 使用 PopulatePartial方法从完全副本中传送所有满足新的副本筛选条件的记录。

当更改部分副本中的数据或筛选条件时,应该同时使用 Synchronize 和 PopulatePartial方法以确保所有数据都传入完全副本中,并且部分副本根据当前的筛选条件重新进行填充。

注意   创建了部分副本之后,不能将其转换为完全副本。如果删除部分副本中的所有副本筛选和副本关系,它将包含完全副本的所有记录,但是仍然具有同样的局限性和部分副本的限制。

部分副本和参照完整性

在具有实施参照完整性的关系的副本中,数据库中可能有许多表与筛选所基于的表相关。因此在创建部分副本时,必须确保包括了与所需数据所在的表相关的所有表。

例如,如果正在使用“罗斯文”示例数据库,则可以在“雇员”表上放置类似 [EmployeeID]=1 这样的筛选,这只是对一个雇员的记录进行同步。因为“雇员”表与“订单”和“订单明细”表相关,因此也必须同时包含这些表,这样在部分副本中就会包含该雇员在“订单”和“订单明细”表中的对应记录。

可能需要包含只与所用筛选间接相关的表。例如,可能要在部分副本中包含所有产品的列表,这样新订单就能包含任何可获得的产品。这时就必须在部分副本中包含“产品”表。

还应该注意数据库中有这样的表:没有强制关系的表(如查阅表)或具有未实施参照完整性的关系的表。例如,一个用于填充组合框的表可能不参与任何关系。如果选择了在部分副本中包含这种表,则所有记录都将被检索;否则将不检索任何记录。

上页:Access VBA教程:固有常量的样式 下页:Access VBA教程:含有类模块的程序

Access VBA教程:创建部分副本

Access VBA教程:含有类模块的程序 Access VBA教程:程序工具栏和菜单栏
Access VBA教程:查询字段 Access VBA教程:报表
Access VBA教程:报表节 Access VBA教程:范围和对象命名的兼容性
Access VBA教程:设置对其他 Microsoft Access 数据库或项目中的 Visual Basic 工程的引用 Access VBA教程:设置对类型库的引用
Access VBA教程:Snapshot Viewer 控件 Access VBA教程:“排序与分组”框
Access VBA教程:字符串函数运算的差异 Access VBA教程:表
Access VBA教程:表字段 Access VBA教程:在 Microsoft Access 2002 中使用枚举常量
Access VBA教程:Microsoft Access 常量概述 Access VBA教程:操作查询
Access VBA教程:ActiveX 控件(窗体) Access VBA教程:了解 ActiveX 控件(数据访问页)
Access VBA教程:绑定控件 Access VBA教程:绑定范围控件
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号