没有对数据库的独占访问权,因此无法保存更改

时间:2020-03-06 14:45:32  来源:igfitidea点击:

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

"我们没有对该数据库的独占访问权。目前无法保存设计更改。是否要在不保存更改的情况下关闭?"

我很确定网络上没有其他人打开数据库文件,而且我也没有打开任何其他Access数据库。我可能缺少明显的东西,但是真的很感谢帮助!

更新:

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

解决方案

如果关闭数据库并确保没有其他人打开它,请检查是否存在.ldb文件(该文件将与数据库文件具有相同的名称)。如果文件在那里,则很有可能仍在使用它。
它是否正在被诸如网站之类的服务访问?

我们可以将数据库复制到另一个子目录并进行更改。如果那行不通,我将不得不查一下。当然,总会有数据库工具"修复并压缩数据库..."

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

如果仍然无法解决问题,请使用新信息更新信息,我们将继续进行。

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

从cmd行:

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

msaccess \path to access file\databasefile.mdb /decompile

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

我们是否曾经尝试将数据库复制到另一个目录并进行编辑?那应该行得通;然后,我们可以重命名原始文件并将其复制回。
无论如何,我很高兴我们能再次工作。

如果我们确定除了数据库中没有其他人,那是从我们自己的PC到数据库的另一条连接。我们可以使用LDB查看器进行验证,该查看器可从Microsoft免费下载的JetUtils.exe中下载:

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

查看代码,检查默认工作空间中是否有两个单独的数据库对象,或者在单独的工作空间中是否有另一个数据库对象。那会引起这个问题。

要对其进行修复,请确保在数据库对象超出范围之前将其设置为nothing,并且如果用代码打开了数据库对象,则还需要在将数据库对象设置为nothing之前将其关闭。