3

只是一点背景:我正在使用 Access 2010 在 Access 2003 格式的数据库中创建表单和 VBA 代码。出于某种原因,当我进行更改并将它们与特定的对象组一起保存时,Access 2007 格式数据库总是会损坏我,但这是另一个讨论。

在此 Access 2003 数据库中编写 VBA 代码时,每当我的代码中断(通过断点或未处理的错误)并且我进行更正时,Access 都会告诉我它无法保存回数据库,因为另一个用户已打开它。但是,我是唯一使用数据库的用户;这是数据库的本地副本,它位于我的桌面上。

无法删除 LDB 文件,因为 Access 正在使用它。当我第一次加载数据库时,在文本或十六进制编辑器中打开 LDB 时,我会看到我的机器名称和“Admin”。休息后,我看到了一个重复的条目,但这次“admin”有一个小写的“A”。

关闭数据库并重新打开它可以解决问题,但会使调试我的代码变得不必要的麻烦。还有其他人遇到这个问题和/或有解决办法吗?

4

4 回答 4

2

发生这种情况时,了解您的代码在做什么可能会有所帮助。这当然不是正常的行为。例如,您是否正在打开另一个数据库New Access.Application?您是否使用 ADO 或 DAO 通过连接字符串访问数据库中的记录?

根本没有到数据库的外部连接。

如果您使用连接字符串连接到打开的数据库,则是否存在与数据库的外部连接可能无关紧要;不确定,但这可能被视为外部连接......您可能希望将其CurrentDB用于 DAO,或CurrentProject.Connection用作任何 ADO 查询的 ActiveConnection。

我假设这个问题在重新启动后仍然存在;但为了争论,请尝试关闭 Access 并转到任务管理器以确保您没有其他 MSAccess.exe 实例正在运行。您甚至可以尝试关闭所有 Office 产品和/或确保 Access 是唯一运行的 Office 产品。我在 Microsoft Communicator 和 Outlook 之间看到了一些奇怪的冲突;因此,Access 与其他 MS 产品存在问题并非完全不可能。

您可能还想检查数据库的大小以确保它不超过 2GB。这会导致臭名昭著的“无效参数”错误;也许它也可能导致这种情况。

由于没有关于您的程序如何工作的其他详细信息,我们可能只能提供这样的通用建议。

于 2011-08-18T18:07:25.813 回答
1

我发现了一种导致上述问题的方法(从而纠正它)。事实证明,如果您创建一个数据库对象并将其设置为当前数据库,您就会遇到这个问题。那是,

暗淡 cdb 作为数据库

设置 cdb = currentdb

从这一点开始,你就熟了。相反,通过可能直接使用 currentdb 或根本不使用它来解决这个问题。这对我有用。

于 2013-08-12T18:21:36.037 回答
0

在您的 VBA 中尝试检查所有打开的数据库连接是否已关闭。在连接打开之前,LDB 填充将在那里。

于 2011-08-18T14:29:27.250 回答
-1

解决方案:

options > current database > click enable -track name auto correct info
于 2018-01-26T14:11:56.357 回答