![是否可以同时访问/写入数据库 ms access 2003 .mdb?](https://linux22.com/image/1223668/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%90%8C%E6%97%B6%E8%AE%BF%E9%97%AE%2F%E5%86%99%E5%85%A5%E6%95%B0%E6%8D%AE%E5%BA%93%20ms%20access%202003%20.mdb%EF%BC%9F.png)
我有一个用户使用 Access 2003 创建了一个数据库。
问题是,如果他打开数据库并做了一些更改,其他用户可以打开数据库但无法对其进行操作。如果他退出程序,那么用户可以进行一些更改。
我想知道他们是否可以在打开数据库时同时进行这项工作?
附加问题:
我尝试在这里执行“数据库拆分”,单击“拆分”后出现错误:“数据库引擎无法锁定表,因为该表已被其他人或进程使用”...这是什么意思?我锁定表了吗?
答案1
用户是想更改设计还是仅想添加/编辑/删除数据?Access 不允许多个用户同时修改单个对象的设计。如果他们仅想编辑数据,则有几种可能性。1
) 用户在某个时刻打开了数据库以进行独占访问。您需要让每个数据库用户都打开数据库,方法是先打开 Access,选择文件->打开,浏览到文件,然后单击打开按钮旁边的箭头,然后单击打开(应出现的 4 个选项列表中的顶部选项)。2
) 用户正在使用的表单可能设置为锁定整个表而不是仅锁定当前记录。如果您在设计模式下打开表单,则表单的一个属性将告诉您需要多大的锁。
没有必要将数据库拆分为应用程序和数据以允许多个用户同时编辑数据。不过,拆分数据库通常是一个好主意。
答案2
是的,可以,但通常的做法是将 mdb 拆分成几部分。表位于某个共享文件夹中的一个 .mdb 中,查询、表单和报告位于数据库的客户端版本中。客户端版本包含指向“后端”数据库中表的链接。使用文件->获取外部数据->链接...连接到后端表。
每个用户都有一个“前端”的本地副本,但他们都共享一个共同的“后端”。
你可以尝试最简单的方法:工具 -> 选项 -> 高级 -> 默认打开模式并检查是否设置为共享并且两者使用记录级锁定打开数据库和編輯記錄已检查,但我在多用户环境中执行此操作的经验好坏参半。有时有效,有时无效。
更新
看一下您的图片:如果所讨论的表单字段映射到相同的数据库记录,则不行,您不能让两个人同时编辑此记录。如果该字段映射到不同的记录,那么是的,这是可能的。
又一次更新
如果您有 Access 2003 或类似版本,则可以使用数据库实用程序。选择工具 -> 数据库实用程序 -> 数据库拆分器。它会要求您提供一个保存文件的位置。您需要将其设置为共享驱动器。它会自动为您创建链接表并将所有表数据复制到名为的新“后端”数据库whatever your db name is
_be.mdb。