我打算把表单和数据库我的Microsoft Access应用程序在共享驱动器周边的10+的人使用。 然而,有并发的问题。 有什么办法来设置,如允许的Microsoft Access数据库中由1个人在任何一个时间才会更新,让别人看,而是不更新呢? 目前,访问数据库只能更新由一个人阅读,而别人无法甚至打开该文件。 非常感谢你作出的任何帮助!
Answer 1:
我想要做的是只允许1人能够对数据库进行更新,而有些则是只读的。
是的,这是可以做到的,你不需要更改应用程序代码来做到这一点。 它可以通过调整上的共享文件夹和共享文件的权限来实现。
在文件夹权限
每当一个或多个用户需要读取一个ACE / Jet数据库文件(.ACCDB或.mdb)中, 所有用户必须创建文件/写文件所在的文件夹中的数据的权限/写访问。 这是因为他们的Access数据库引擎的副本需要能够创建锁定文件(.laccdb或.LDB),如果他们是第一人到数据库中。
请注意,即使谁将会只具有只读用户访问该文件仍然需要在文件夹上的“创建文件”的权限。 这是至关重要的。
在文件权限(.ACCDB或.mdb)中
这是你的用户谁可以更新数据库,与用户之间的区别只只读访问。 只需使用该文件在Windows权限给他们读+写,或根据需要只读权限。
常见错误#1:设置用户/组权限(读写或只读)的文件夹,并让数据库文件(.ACCDB或.mdb)中继承它们
在这种情况下,“读+写”的用户可以创建锁文件,但“只读”用户不能。
•方案A:如果“读+写”用户首先打开数据库,然后锁定文件被创建,一切都如预期运行。 附加“读+写”的用户可以打开数据库,并进行更新,和额外的“只读”的用户只读方式打开数据库。
•方案B:如果“只读”的用户第一次打开数据库文件,然后他们访问的副本打开该文件为只读,符合市场预期。 但是,如果“读+写”的用户(根据其文件的权限),然后尝试打开数据库文件,他们将打开它只读了。 每个人都可以得到的,但没有人可以做出改变。
常见错误#2:禁止“创建文件”为每个人的文件夹
在这种情况下,没有人因此大家打开数据库的只读,无论他们的权限对数据库文件本身可以创建锁定文件。
补充说明:
上述结果用Access_2010和Access_2013客户端连接到共享.ACCDB后端的Windows Server 2012上。在早期版本的Access,如果没有人能够创建锁文件,然后第一人“在”将打开混合确认在“独占模式”的数据库文件,并得到任何访问他们的文件权限允许的,而所有后来的用户将被拒绝,并显示错误消息,指出访问“文件已被其他用户以独占方式打开。”
Answer 2:
号你可以做一些程序,但它肯定是相当脆弱的,每个人都锁定每奇日。 访问是一个很好的前端,但不是一个很好的后端多用户。 使用另一个数据库作为后端。 原则上的SQL Server Express是最简单的选择。 当然,你必须拆分数据库为前端和后端,如果你已经这样做了,目前还不清楚。 如果你没有,你可以试试它的工作原理与接入两个部分,但我与多用户网络访问体验后端并不好。