前提是每个用户都不能使用独占的方式打开共享数据库 (MDB) 注释 本主题中的信息仅适用于 Microsoft Access 数据库 (.mdb)若要从另一台计算机上访问共享的 Microsoft Access 数据库,另一台计算机上 必须具备下列条件之一:Access 的本地安装、Access 的网络安装(逐个用户 地授权)或运行时应用程序 设置共享文件夹 有关共享文件夹的详细信息,请使用 Microsoft Windows 的“帮助索引” 如果 共享文件夹位于网络服务器上,则可能需要网络管理员的协助将 Microsoft Access 数据库复制到一个共享文件夹 确保 Access 数据库设为在共享方式下打开,这是默认设置 操作方法:在“工具”菜单上,单击“选项” 在“高级”选项卡上“默认打开模式”下,单击“共享” 注释 共享数据库之前,应该删除文件中可能存储的任何个人信息有关详细信 息,请参阅删除 Access 文件或页面中的个人信息 注释 本主题中的信息仅适用于 Microsoft Access 数据库 (.mdb) 如果您的计算机已经连接到网络中,则您和其他用户可以同时使用一个 Microsoft Access 数据库。
用于共享数据的方法 在多用户环境下共享数据的方法有多种 共享整个 Access 数据库 可以将整个 Access 数据库放在网络服务器或共享文 件夹中这是实现整个 Access 数据库共享的最简单的方法每个用户都能共 享数据,并能使用相同的窗体、报表、查询、宏和模块如果要让每个用户都 以相同的方式使用 Access 数据库,或者您不能支持其他用户创建其自己的对 象,则可以采取这种策略仅共享 Access 数据库中的表 可以只将表放在网络服务器上,而将其他数据库 对象都留在用户的计算机上这种情况下,Access 数据库的性能会有所提高, 因为只有数据是通过网络发送的当将一个数据库拆分为后端(表)和前端时, 用户可以在不影响别人的情况下,对其自己的前端数据库中的窗体、报表和其 他对象进行自定义在 Internet 上共享 Access 数据库对象或数据访问页 可以将一个或多个数据库 对象输出为静态的 HTML 或服务器生成的 HTML 格式,或者创建数据访问页,然后用浏览器(如 Microsoft Internet Explorer)显示它们在万维网上的显示 情况 同步复制 Access 数据库 如果使用两台计算机(如,办公室计算机和便携式计 算机) ,则可用 Microsoft Windows“公文包”来制作 Access 数据库的副本,并 使这些副本保持同步。
另外,在不同地点工作的用户也可以同时使用其自己的 副本,然后通过网络(拨号连接或 Internet)将这些副本同步 创建客户/服务器应用程序 如果工作在客户/服务器环境中,则可以通过创建客 户/服务器应用程序而利用这种环境所提供的显著功能和安全性应该将数据存 储在数据库服务器(如 Microsoft SQL Server)上的表中,而不要存储在 Microsoft Access 中的本地表内Access 应用程序(客户程序)从服务器中检 索它所需要的数据服务器维护数据的完整性并运行任何它可以求解的查询 锁定信息 (.ldb) 文件 以共享方式打开 Access 数据库文件 (.mdb) 时,Microsoft Access 会用同一文 件名(例如,Northwind.ldb)在该数据库文件所在的文件夹中,创建一个锁定 信息文件 (.ldb)该锁定信息文件存储计算机名(如 mypc)和每位数据库共享 用户的安全名称(如 Admin) Microsoft Access 使用该信息来控制并发访问 大多数情况下,在最后一个用户关闭数据库文件时,Microsoft Access 会自动删 除锁定信息文件。
编辑共享数据库中的数据 在多用户环境下,可能会有多个人同时对同一条记录进行操作因为其他人可 以更改,甚至可以删除您正在编辑的数据,所以有时可能会与其他工作用户发 生冲突 Microsoft Access 可以帮助追踪正在编辑的记录的状态,并确保您使用的是最新 数据当两人或多人都要编辑同一条记录时,Microsoft Access 会显示信息来帮 助解决冲突例如,如果试图保存一条由其他用户锁定的记录,则 Microsoft Access 会显示锁定该记录的用户的名称为了帮助追踪记录的状态,Microsoft Access 将在当前记录选定器内显示下列符 号: 符号 含义 这条记录是当前记录并且尚未编辑 您已编辑过这条记录,但尚未保存所做的更改只要显示该符号,其他用户就 看不到对这条记录的更改,而且如果将这个记录锁定,他们也不能编辑这条记 录若要将该记录释放给其他用户使用,请保存或撤消所做的更改 这条记录已由其他用户锁定不能对其进行编辑如果试图在一个锁定的记录 内键入数据,Microsoft Access 将发出警告声 还可以设置以下选项,用以控制共享数据库中数据的锁定和数据的刷新。
默认记录锁定设置不锁定 Microsoft Access 不锁定您正在编辑的记录当试图保存对某条记录的 更改,而其他用户已对该记录作了更改时,Microsoft Access 将显示选择信息: 是覆盖其他用户对该记录所做的更改,将自己的记录版本复制到剪贴板上,还 是放弃所做的更改该策略可以确保记录总可以被编辑,但会造成用户之间的 编辑冲突 已编辑的记录 Microsoft Access 将锁定您正在编辑的记录,因此其他用户不能 更改该记录这样也可能同时锁定存储在您磁盘上的其他相邻记录如果另一 位用户试图编辑您已锁定的记录,则 Microsoft Access 会在那位用户的数据表 中显示锁定记录指示符 该策略可以确保您总能完成已经开始的更改任务如 果不经常有编辑上的冲突,则最好采用该策略 所有记录 对于您已打开进行编辑的窗体或数据表(及基表) ,Microsoft Access 将在打开的整段时间内,锁定其中的所有记录,使其他人不能编辑或锁定这些 记录该策略具有限制性,因此请在确认您是唯一需要编辑记录的人时,才选 用该策略 在使用 ODBC 编辑链接的 SQL 数据库表中的数据时,Microsoft Access 并不 锁定记录;而由该 SQL 数据库的规则来管理锁定。
这种情况下,不论对数据 库选择哪一种锁定记录设置,Microsoft Access 都会按选择“不锁定”设置来处 理页级和记录级锁定可以指定 Access 在共享数据库中使用的锁定级别如果使用页级锁定,则 Access 会锁定 4K 的页(记录所在的内存区域) ,而且编辑记录时可能会导致 附近存储的其他记录也被锁定不过,使用页级锁定时性能往往较好如果使用记录级锁定,Access 将只锁定您正编辑的记录这将成为通过窗体、 数据表访问数据时,以及通过使用记录集对象循环遍历记录的代码来访问数据 时的默认行为,但不是通过操作查询或通过使用 SQL 语句进行大量数据操作 访问数据的默认行为更新重试间隔和刷新间隔设置可以使用“更新重试间隔”和“更新重试次数”设置来指定 Microsoft Access 尝试保存被另一用户锁定的记录的频率和次数也可以使用“ODBC 刷新间隔” 和“刷新间隔”设置来控制 Access 刷新数据的频率刷新只会更新数据表或 窗体中已有的数据,并不将记录重新排序,不显示新记录,也不去除已删除的 记录和已不再满足条件的记录若要查看这些更改,必须重新查询数据表或窗体的基础记录。
保存共享数据库中的设计更改当有其他用户正打开 Access 数据库时,用户不能将设计更改保存到 Microsoft Access 数据库中确保更改保存的唯一途径是以独占 模式打开 Access 数据 库通常,当试图对数据库对象(除了表和查询)或共享模式中的某一项进行设计 更改时,如果当时您是 Access 数据库的唯一用户,则 Access 将临时提升您 以独占模式使用 Access 数据库当保存所有设计更改并关闭所有“设计”视 图窗口时,Access 会将 Access 数据库返回共享模式在此期间,其他用户不 能打开 Access 数据库如果其他用户以共享模式打开了 Access 数据库而您试图做一个主要的设计更 改,如修改窗体,则 Access 会警告您可能不能保存更改但如果其他用户以 共享模式打开 Access 数据库而您试图做一个次要的设计更改,如更改打印机 设置,则 Access 不会警告您不能保存更改在这两种情况下,都要等到成为 Access 数据库的唯一用户时,您才能保存主要设计更改,而 Access 保存次要 设计更改数据访问页的处理方式有所不同尽管创建、重命名、移动和删除数据访问页 仍要求使用独占模式(因为这要更改 Access 数据库中的信息) ,但是编辑数据 访问页不要求提升为独占模式(因为相应的 HTML 文件存在于数据库以外的 文件系统中) 。
主次设计更改之间的差别如果没有以独占模式访问 Access 数据库,则 Access 将在可能无法保存以下 主要设计更改时向您发出警告:在“设计”视图中对数据库对象的更改(除表和查询以外) 在“窗体”视图中对窗体属性表的更改 在“Visual Basic 编辑器”中编译项目、修改项目属性、添加或删除引用 重命名、粘贴或删除数据库对象 将数据库对象另存为其他类型的数据库对象 添加或修改命令栏上的控件 在“数据库”窗口中编辑自定义组 创建、重命名、移动和删除数据访问页 如果没有以独占模式访问 Access 数据库,则在可能无法保存以下次要设计更 改时,Access 不会发出警告:对数据表格式(如线型和字体属性)的更改 冻结、撤消冻结、隐藏和显示数据表列 调整数据表列宽和行高 对窗体或数据表筛选或排序次序的更改 对子数据表状态的更改(展开还是折叠) 对 OLE 对象的 OLE/DDE 链接的更改或对未绑定对象框内容的更改 对打印机设置的更改 对命令栏的更改,如命令栏的位置及其是否可视 对“数据库”窗口布局的更改 共享 Access 数据库设计和开发的策略如果要共享 Access 数据库的设计,不妨考虑使用以下策略:针对特定的开发者指定特定的对象或对象组。
例如,一位开发者设计窗体而另 一位设计报表然后,每位开发者可以在 Access 数据库的私有副本上工作 当开发小组准备测试、组装和生产时,每位开发者从各自的私有数据库副本中 将数据库对象导出到主 Access 数据库中 使用源代码控制程序如果使用 Visual SourceSafe,最好定期运行“性能分析 器” (在“工具”菜单上指向“分析” ,然后单击“性能”即可打开)来保持最 佳性能 有关在共享数据库中保存设计更改的提示如果另一位用户已打开某个表或正在查看基于该表的查询、窗体或报表中的数 据,则不能更改该表的设计Microsoft Access 将告知该表为只读 如果某些对象彼此依赖,请同时将它们全部更新,这样其他用户才不至于打开 不一致的对象版本例如,如果要在某窗体中添加新字段,请在更新该窗体前 确保也在基础查询中添加了新字段 如果更改另一位用户已经打开的查询,则该用户必须在关闭并重新打开更改的 对象后,才能使用最新的版本在使用 Visual Basic for Applications (VBA) 模 块时,其他用户必须先关闭 Access 数据库然后再重新打开,才能运行更新后 的 Function 或 Sub 过程。
设置共享 Access 数据库的选项 (MDB)注释 本主题中的信息仅适用于 M。