【问题标题】:The database cannot be opened because the VBA project contained in it cannot be read无法打开数据库,因为其中包含的 VBA 项目无法读取
【发布时间】:2012-09-30 00:58:56
【问题描述】:

今天早上,我收到了这个错误

Error accessing file. Network connection may be lost

无论我在任何形式上做什么。所以我打开了一个空白数据库并导入了所有内容。发生了一些错误,但它说导入成功。我能够再次打开我的表格。然后我返回旧副本,然后在尝试打开数据库时出现此错误

The database cannot be opened because the VBA project contained in it cannot be read

即使我在第一个错误之前所做的备份现在也这么说。

我尝试再次导入,但在导入时出现错误。

我现在有点紧张,请告诉我有办法解决这个问题

谢谢

【问题讨论】:

  • 尝试反编译您的 db 文件副本:stackoverflow.com/questions/3266542/…
  • 确保做好备份。我的开发数据库偶尔(尽管很少)变得如此损坏,以至于无论我做什么都无法恢复它们。
  • @HansUp 当它反编译时,我得到了同样的错误
  • 现在哪个错误? (您提到了 2 个不同的错误。)如果这是第一个错误,您是否每次打开数据库时都会立即收到该错误消息?还是只是在之后……当您打开任何表单时?​​span>
  • 编译的 VBA 代码在积极开发期间可能会因为我不明白的原因而损坏。这就是为什么建议在开发过程中将反编译作为常规做法的原因。也许编译后的 VBA 也可能会在以后损坏(在开发之后,在应用程序的生产使用期间)......但我认为自 2005 年开始使用 Access 开发以来,我从未见过这种情况。

标签: ms-access ms-access-2010


【解决方案1】:

当 Access 报错无法读取 VBA 项目代码时,您可以尝试反编译。有关详细说明,请参阅此 SO 问题的两个答案:HOW TO decompile and recompile

如果反编译无法将您的应用程序恢复到良好的工作状态,最快的解决方案可能是恢复到您上次的良好备份副本。

如果您愿意付出额外的努力来恢复自上次备份以来的模块更改,请检查您是否仍然可以访问模块源代码。如果源代码可读,您可以使用未记录的SaveAsText 方法将代码转储到文本文件:

Application.SaveAsText acModule, "Module1", "C:\SomeFolder\Module1.txt"

然后稍后使用LoadFromText 方法将其加载到新的数据库文件中。

Application.LoadFromText acModule, "Module1", "C:\SomeFolder\Module1.txt"

【讨论】:

  • 在旧线程上试试运气...我在 Access 2007 的即时窗口中尝试了此操作,但出现运行时错误:'3021' 没有当前记录。我有一个包含我要检索的代码的表单。这是我使用的:Application.SaveAsText acForm、“App_Form”、“C:\Users\jck112\Module1.txt”
  • 我在尝试打开 vba 时收到“意外错误 (40230)”。我尝试反编译,这就是我发现项目已损坏的原因。无论如何我可以检索我的代码吗?
  • 由于SaveAsText 不起作用,您可能不走运。如果您还没有,您可以尝试将表单导入另一个数据库文件。但是我最好的猜测是在这种情况下也会失败。还是试试吧,以防我猜错了。您唯一的办法可能是从上次备份中恢复表单。
  • 我尝试导入表单,但它不允许我这样做。它允许我从同一个数据库导入表、查询,但它不会让我选择表单,它被禁用了。
  • 你的 db 文件的文件扩展名是什么?一些可能性是: mdb;米德;数据库;同意;通讯录;广告;广告。
【解决方案2】:

对于那些仍然有这个问题的人,这里有一个更新。当 .accde 在比受影响计算机更新的 Access 版本上编译时,会出现此问题。事实证明,有些机器正在使用 Windows 更新进行更新,而有些则没有。通过安装 SP2 和 2016 年 2 月的更新将所有 Office 安装都安装到相同的版本号后,可执行文件现在可以在我的所有计算机上运行。

这是 SP2 的链接(请确保下载正确的文件。) https://www.microsoft.com/en-us/download/details.aspx?id=39667

这里是 2016 年 2 月的更新: https://support.microsoft.com/en-us/kb/3114750

HTH, 帕特里克

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    • 2019-11-08
    • 2015-08-11
    • 1970-01-01
    相关资源
    最近更新 更多