8

我正在研究 MS Access 数据库。我对其中一个模块进行了一些更改。我想出去吃午饭,但是当我尝试关闭数据库时,我收到以下消息:

“您没有对数据库的独占访问权限。此时无法保存您的设计更改。您要关闭而不保存更改吗?”

我很确定网络上没有其他人打开数据库文件,我也没有打开任何其他 Access 数据库。我可能遗漏了一些明显的东西,但真的很感激一些帮助!

更新:

最后,我复制了所有代码,关闭了数据库而不保存,重新打开它并将代码粘贴回去。然后我就可以保存数据库了。我不确定这是否是一次关闭,但如果再次发生,我会报告。

4

4 回答 4

6

如果您确定除了您之外没有其他人在数据库中,这是从您自己的 PC 到您的数据库的附加连接。您可以使用 LDB 查看器验证这一点,该查看器可从 Microsoft 下载的免费 JetUtils.exe 下载:

http://support.microsoft.com/kb/176670

查看您的代码并检查默认工作区中是否有两个单独的数据库对象或单独的工作区中是否有另一个数据库对象。这会导致这个问题。

要修复它,请确保数据库对象在超出范围之前设置为空,如果您在代码中打开数据库对象,则还需要在将数据库对象设置为空之前关闭它。

于 2008-10-01T03:58:06.713 回答
1

如果您关闭数据库并确定没有其他人打开它,请检查是否存在 .ldb 文件(它将与您的数据库文件同名)。如果文件在那里,那么它很有可能仍在使用中。它是通过服务访问的,比如网站吗?

您可以将数据库复制到另一个子目录并进行更改。如果这不起作用,我将不得不查一下。当然总是有数据库工具,“修复和压缩数据库......”

文件是否位于文件服务器上?如果是这样,请检查是否有任何用户拥有它的文件句柄。

如果它仍然不起作用,请使用您的新信息更新您的帖子,我们会更进一步。

更新(9/26):当访问包含 vba 代码的数据库出现奇怪问题时,我做的另一件事是反编译。我不知道这是否已记录在案,我已经有好几年没看过了,但它(至少)是一个未记录的到 msaccess 的切换。

从 cmd 行:

将目录更改为 msaccess.exe 所在的位置。
运行以下命令

msaccess \path 访问文件\databasefile.mdb /decompile

通常运行非常快然后打开数据库。打开任何模块并编译。
并不总是有效,但有时可以消除奇怪的事情。

您是否曾经尝试将数据库复制到另一个目录并进行编辑?这应该有效;然后,您可以重命名原始文件并将文件复制回来。
不管怎样,我很高兴你又开始工作了。

于 2008-09-26T01:44:15.963 回答
0

如果即使是文字邮件合并链接到访问数据库,这也算作访问连接。

于 2015-06-15T22:25:25.610 回答
0

很简单。关闭所有 MSaccess 文件。打开任务管理器(通过右键单击任务栏)。在其中选择“进程”选项卡。如果列表有一个msaccess*32进程,请单击结束进程关闭它。

这对我有用。我认为它会关闭我们没有在代码中关闭或强制关闭的所有记录集。

于 2016-04-01T08:09:05.690 回答