我正在研究MS Access数据库。我对其中一个模块进行了一些更改。我想出去吃午饭,但是当我尝试关闭数据库时,我收到以下消息:
“您没有对数据库的独占访问权限。此时无法保存您的设计更改。是否要在不保存更改的情况下关闭?”
我很确定网络上没有其他人打开数据库文件,而且我没有打开任何其他Access数据库。我可能错过了一些明显的东西,但我真的很感激一些帮助!
更新
最后我复制了所有代码,关闭了数据库而没有保存,重新打开并重新粘贴代码。然后我就可以保存数据库了。我不确定这是不是一次性的,但如果再次发生,我会报告。
答案 0 :(得分:5)
如果您确定数据库中没有其他人,那么您可以通过自己的电脑与数据库建立额外的连接。您可以使用LDB查看器验证这一点,可以从Microsoft的免费JetUtils.exe下载中下载:
http://support.microsoft.com/kb/176670
查看代码并检查默认工作空间中是否有两个单独的数据库对象,另一个工作空间中是否有另一个数据库对象。这将导致这个问题。
要修复它,请确保数据库对象在超出范围之前设置为空,如果在代码中打开数据库对象,则还需要在将数据库对象设置为空之前将其关闭。
答案 1 :(得分:1)
如果您关闭数据库并确定没有人打开它,请检查是否有.ldb文件(它将与您的数据库文件同名)。如果文件在那里,那么它很可能仍在使用中。 是否可以通过服务访问,例如网站?
您可以将数据库复制到另一个子目录并进行更改。如果这不起作用,我将不得不重新审视。当然总有数据库工具“修复和压缩数据库......”
文件是否位于文件服务器上?如果是,请检查是否有任何用户拥有文件句柄。
如果仍然无效,请使用您的新信息更新您的信息,我们会更进一步。
更新(9/26): 当我遇到包含vba代码的访问数据库的奇怪问题时,我所做的另一件事就是反编译。我不知道这是否已被记录,我多年没看过,但它(至少)是msaccess的无证转换。
从cmd行:
将目录更改为msaccess.exe所在的位置 运行以下命令
msaccess \ path访问文件\ databasefile.mdb / decompile
通常运行得非常快,然后打开数据库。打开任何模块并编译 并不总是有效,但有时可以删除奇怪的事情。
您是否曾尝试将数据库复制到另一个目录并进行编辑?这应该有效;然后,您可以重命名原件并将文件复制回来 无论如何,我很高兴你再次工作。
答案 2 :(得分:0)
如果即使单词邮件合并链接到访问数据库,也会将其视为访问连接。
答案 3 :(得分:0)
很简单。 关闭所有MSaccess文件。 打开任务管理器(右键单击任务栏)。 选择“进程”选项卡。 如果列表中有一个 msaccess * 32 进程,请点击“结束进程”。
这对我有用。我认为它会关闭我们尚未在代码中关闭的所有记录集,或者强制关闭的记录集。