Access 数据库以只读方式打开

Posted

技术标签:

【中文标题】Access 数据库以只读方式打开【英文标题】:Access Database opens as read only 【发布时间】:2011-05-10 18:57:18 【问题描述】:

我创建了一个 mdb 数据库并保存了它。

现在我想修改它,但它说它是只读的,所以我无法更改任何内容。

这是一个使用 access 2007 打开的 access 2000 文件。

请问我该如何更改?

【问题讨论】:

【参考方案1】:

如果其他人打开了数据库,请让他们关闭它。如果数据库没有完全关闭(Access 或计算机崩溃),那么您可以尝试压缩并修复文件。

我还注意到,如果文件在任何时候被打开或置于只读状态,它可能会像那样“卡住”。所以试试这个:

    开放存取,但没有数据库 打开有问题的文件,但以只读模式显式打开(“打开”按钮实际上是一个下拉按钮。使用该按钮以只读方式打开 关闭文件(但不是 Access) 再次打开文件,但正常打开。

不确定这是错误还是功能,但我看到它让许多用户感到沮丧。

【讨论】:

【参考方案2】:

另一件需要注意的事情是当有人有权读取文件共享但不能写入目录时。可以为某人设置只读数据库,但如果他们曾经读取过它(包括使用 ODBC 连接),他们似乎需要对该目录具有 WRITE 权限,以便他们可以创建锁定文件。

我遇到过数据库在文件共享上被锁定为只读的情况,因为访问它的用户无法写入目录。快速解决此问题的唯一方法是致电存储团队,他们可以查看谁拥有该文件并将其启动。

【讨论】:

【参考方案3】:

创建一个空文件夹并将 .mdb 文件移动到该文件夹​​。并尝试从那里打开它。我尝试过这种方式,它对我有用。

【讨论】:

【参考方案4】:

还检查共享驱动器的访问级别。 如果对共享驱动器的访问是只读的,则文件将以只读格式打开。

【讨论】:

【参考方案5】:

检查没有遗漏的参考资料 - 为此,请转到数据库窗口并点击“模块”,然后点击“设计”,然后选择菜单“工具”,然后选择“参考资料”。或者尝试进行编译并查看它是否完全编译(进入调试菜单然后选择编译) - 它可能会告诉您缺少参考,例如Microsoft Office 11.0 对象库。再次从“工具”菜单中选择“参考”,查看是否有任何参考被勾选并说“MISSING:”。在某些情况下,您可以从列表中选择不同的版本,如果缺少 11.0,请查找版本 12.0 然后重新编译。这通常对我有用。

【讨论】:

【参考方案6】:

在我的情况下,这是因为它正在备份我的后台进程,该进程在我打开 Access 之前启动。如果在备份开始时打开数据库,通常不会有问题。

【讨论】:

【参考方案7】:

虽然 OP 是数据库的原始作者,并且可能创建了一个简单的数据模型,但我在更复杂的系统上遇到了类似的行为。在我的场景中,主 .mdb 文件位于网络共享位置,用户可以进行读/写访问。 .mdb 文件引用了位于不同网络位置的另一个 .mdb 文件中的表 - 用户没有适当的访问权限。

对于查看此帖子以解决类似问题的其他人,请验证链接表路径和访问权限。

验证链接表...(假设 Access 2010)

    打开数据库 单击功能区工具栏选项卡“外部数据” 单击功能区工具栏按钮“链接表管理器” 识别链接表的路径 验证链接表中标识的路径的适当安全许可 manager - 如果访问 ODBC(即 Oracle、DB2、mysql、PostGRES 等)源,请验证数据库凭据和驱动程序

【讨论】:

【参考方案8】:

在我的电脑上我遇到了同样的问题,这是因为在属性 -> 安全性中我没有文件的所有权...

【讨论】:

【参考方案9】:

主要原因是数据库在其他地方打开。

这可能正如许多其他人已经说过的那样:

某处未正确关闭 已经在某处营业了

最近我遇到了同样的问题,虽然版本不同,我开始寻找原因。

在我的例子中,我有一个从数据库中查询数据的 excel 文件。

如果在数据库之前打开excel文件,访问会报此错误。

结论:

检查与数据库相关的所有文件/连接。 excel 中使用的开放式 ODBC 连接或查询(我的情况)打开 mdb 文件并将其设为只读。

【讨论】:

【参考方案10】:

在我们的例子中,它发生在一个共享的远程盒子上。解决方案是更改文件权限,以便每个用户都拥有每个 Access 文件的完全权限。

现在是 21 世纪。这不应该再发生了。难怪微软会使用 Office 365 Power Apps 放弃 Access。

【讨论】:

以上是关于Access 数据库以只读方式打开的主要内容,如果未能解决你的问题,请参考以下文章

用于查询 Access 数据库 (.mdb) 文件的只读方法?

如何以独占的方式打开串口

java + sqlite:如何以只读方式打开数据库?

第二周Access课总结

以独占方式打开Access2016()

在 C# 中以只读方式打开 SQLITE