1

我计划将我的 microsoft access 应用程序与表单和数据库放到一个共享驱动器上,供大约 10 多人使用。但是,存在并发问题。有没有什么办法可以设置,比如允许microsoft access数据库在任何时候只被1个人更新,同时允许其他人阅读但不更新?目前,访问数据库只能由一个人更新和读取,而其他人甚至无法打开文件。非常感谢您提供的任何帮助!

4

2 回答 2

6

我想要做的是只允许 1 人能够更新数据库,而其他人将是只读的。

是的,它可以做到,而且您无需更改应用程序代码即可。可以通过调整共享文件夹和共享文件的权限来实现。

文件夹权限

每当一个或多个用户需要对 ACE/Jet 数据库文件(.accdb 或 .mdb)进行读/写访问时,所有用户都必须对文件所在的文件夹具有创建文件/写数据权限。这是因为如果他们是第一个进入数据库的人,他们的 Access 数据库引擎副本需要能够创建锁定文件(.laccdb 或 .ldb)。

请注意,即使对文件只有只读访问权限的用户仍然需要对文件夹具有“创建文件”权限。这是必不可少的。

文件的权限(.accdb 或 .mdb)

这是您区分可以更新数据库的用户和仅具有只读访问权限的用户的地方。只需使用文件上的 Windows 权限,即可根据需要为其提供读+写或只读权限。

常见错误 #1:在文件夹上设置用户/组权限(读写或只读)并让数据库文件(.accdb 或 .mdb)继承它们

在这种情况下,“读+写”用户可以创建锁定文件,但“只读”用户不能。

• 场景A:如果“读+写”用户首先打开数据库,则创建锁定文件并且一切都按预期运行。其他“读+写”用户可以打开数据库并进行更新,而其他“只读”用户可以只读方式打开数据库。

• 方案B:如果“只读”用户首先打开数据库文件,则他们的Access 副本按预期以只读方式打开该文件。但是,如果“读+写”用户(根据他们的文件权限)然后尝试打开数据库文件,他们也会以只读方式打开它。每个人都可以进入,但没有人可以做出改变。

常见错误#2:禁止所有人在文件夹上“创建文件”

在这种情况下,没有人可以创建锁定文件,因此每个人都以只读方式打开数据库,而不管他们对数据库文件本身的权限如何。

补充说明:

上面的结果通过混合使用 Access_2010 和 Access_2013 客户端连接到 Windows Server 2012 上的共享 .accdb 后端得到证实。在早期版本的 Access 中,如果没有人可以创建锁定文件,那么“进入”的第一个人将打开数据库文件处于“独占模式”,并获得其文件权限允许的任何访问权限,而所有后续用户将被拒绝访问,并显示一条错误消息,指出“该文件已被另一个用户以独占方式打开”。

于 2013-03-31T22:35:38.283 回答
-4

不。你可以通过编程来做一些事情,但它肯定是相当脆弱的,每天都会把每个人都锁在外面。Access 是一个好的前端,但对于多用户来说不是一个好的后端。使用另一个数据库作为后端。原则上,SQL Server Express 是最简单的选择。当然,你必须将数据库拆分为前端和后端,不清楚你是否已经这样做了。如果您还没有,您可以尝试它如何与 Access 中的两个部分一起工作,但我在多用户网络 Access 后端方面的经验并不好。

于 2013-03-06T08:51:46.440 回答