我有一个非常简单的 Access 数据库。它有一个传递查询,仅此而已(没有表)。该查询只是针对 SQL Server 数据库执行存储过程以显示结果。Access 数据库中不会保存任何数据;它仅用于显示存储过程的结果。
我把数据库放在网络共享上。如果我打开 Access 数据库,我的同事都无法打开数据库查看数据。他们会收到错误:“无法锁定文件”。
如何允许多个用户打开Access文件并查看查询结果?
答案1
如何允许多个用户打开网络共享上的访问数据库?
使用网络文件夹共享数据库
共享数据库的最简单方法是将其放在共享网络文件夹中。虽然这是最简单的方法,但也是最受限制的。在考虑此方法之前,应满足以下所有条件:
预计不会有超过几个人同时使用数据库。
数据库中不存在备注字段,或者如果存在,它们不会由不同的用户同时更新。
用户不需要定制数据库的设计。
注意此方法比共享数据库的其他方法安全性较低,因为每个用户都有数据库文件的完整副本,从而增加了未经授权访问的风险。
使用网络文件夹共享数据库
如果尚未可用,请设置一个共享网络文件夹。
有关此步骤的帮助,请参阅您要用于共享数据库的计算机的操作系统的帮助系统。如果共享文件夹位于网络服务器上,您可能需要网络管理员的帮助。
确保 Access 在所有用户的计算机上都设置为以共享模式打开。这是默认设置,但您应该检查以确保 - 如果用户以独占模式打开数据库,它将干扰其他人对数据的使用。在每台计算机上执行以下步骤:
启动 Access。
单击“Microsoft Office 按钮”Office 按钮图像,然后单击“Access 选项”。
在“Access 选项”对话框的左窗格中,单击“高级”。
在“Access 选项”对话框的右窗格中,在“高级”部分的“默认打开模式”下,选择“共享”。
单击“确定”,然后退出 Access。
将数据库文件复制到共享文件夹。复制文件后,请确保文件属性设置为允许对数据库文件进行读/写访问。用户必须具有读/写访问权限才能使用数据库。
在每个用户的计算机上,创建数据库文件的快捷方式。
在快捷方式的目标属性中输入数据库文件的路径时,请使用 UNC 地址而不是映射驱动器号。例如,不要使用 F:\sample.accdb,而要使用 \computername\shared.accdb。
注意此步骤也可以由用户自己执行。
答案2
如果有人问这个问题但使用 OLEDB,似乎“共享模式”总是处于开启状态,因为存在“独占”模式:
独家的 例如,如果您想让应用程序能够重置数据库密码,则用于获取对数据库的独占访问权限。
提供程序=Microsoft.Jet.OLEDB.4.0;数据源=C:\mydatabase.mdb;模式=共享独占;用户 ID=admin;密码=;
https://www.connectionstrings.com/access/
此线程还包含一些有关使用“模式”的有趣信息https://social.msdn.microsoft.com/Forums/en-US/c90b1166-e5ee-43ff-a49b-9efe9f416475/opening-an-ms-access-database-in-exclusive-mode-using-adonet?forum=adodotnetdataproviders