【问题标题】:VBA modules have been saved with errorsVBA 模块已保存但有错误
【发布时间】:2016-06-16 20:31:51
【问题描述】:

我有一个数据库,其中的表链接到网络驱动器中的不同数据库。 (另一个数据库在另一台机器上,我机器上的一个网络驱动器映射到它。)

当我运行一些 VBA 代码时,与网络驱动器的连接断开,并且我收到一条错误消息。 当我尝试访问数据库中的任何 local 表时,或者当我尝试关闭 Access 时,我收到了错误消息。 我通过任务管理器关闭了访问,现在当我打开它时,我收到以下消息:

此数据库中的 VBA 模块似乎在保存时出现错误。 Access可以恢复模块,但你应该先备份数据库...

我备份然后单击确定,但模块已完全清除。 在备份中我无法访问模块,我只是再次收到该消息。

请帮忙!遗憾的是我没有以前的备份,我需要这些模块。有没有办法至少恢复模块?即使在文本文件中?

我尝试将模块导入不同的数据库,但收到相同的错误消息。

编辑:当我尝试恢复时,我收到以下消息:

无法打开数据库''。它可能不是您的应用程序识别的数据库,或者您的文件可能已损坏。

这是什么意思?似乎 Access 正在尝试访问一个空字符串。

【问题讨论】:

    标签: vba ms-access data-recovery


    【解决方案1】:

    哦……那个疼!我也遇到过类似的情况,但不完全一样。好消息是,您几乎总能从这些情况中恢复过来。试试这个:创建一个新的空白数据库并将所有表、查询、表单、报表、宏和模块导入新数据库...

    如果这不可能,您可能必须反编译数据库。见:https://www.fmsinc.com/microsoftaccess/errors/Bad_DLL_Calling_Convention.asp

    【讨论】:

    • 我对导入不太乐观,但值得一试。如需完整的反编译运行,请参阅:Decompile@MJH
    • 我尝试了你的反编译链接,但我在命令提示符下输入了:C:\Program Files\Microsoft Office 15\root\office15\msaccess.exe/decompile,我得到 'C:\Program' is not known as an internal or external command, operable program or batch file.
    • 我尝试反编译,但得到的错误与我的问题中的第一个错误相同。
    • 数据库是否默认打开表单?如果是这样,请尝试在反编译时按住 Shift 键。
    • @MJH:回复。 “'C:\Program' 不被识别为内部或外部命令、可运行程序或批处理文件”:这可能是因为您没有将整个文件路径用双引号 (") 括起来。在窗口命令提示符中,任何文件夹包含空格的路径或文件路径必须用双引号引起来。另外,我相信您需要在“msaccess.exe”和“/decompile”之间至少有一个空格(即在命令及其参数之间) (s),如果有的话)。
    【解决方案2】:

    请仔细检查路径。很可能是:

    "C:\Program Files (x86)\Microsoft Office\root\Office16\MSACCESS.EXE"
    

    并且缺少一个空格:

    "C:\Program Files (x86)\Microsoft Office\root\Office16\MSACCESS.EXE" /decompile
    

    这是 2016 年的。它是 A2013 的 Office15

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-16
      • 2021-04-15
      • 1970-01-01
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多