有没有办法从损坏的数据库导出代码?

Jer*_*rry 1 ms-access vba ms-access-2007 access-vba ms-access-2010

上周我在程序崩溃时修改了访问2010 db中的两个模块的部分,并且每次我尝试打开db时都会崩溃.我能够创建一个新数据库并从损坏的数据库中导入表和查询,但是当我尝试导入表单/宏/模块时,新数据库也会开始崩溃.我保留每日备份,但最终失去了几个小时的工作量.这种情况上周发生了两次,每次MS Access都会在没有警告的情况下崩溃并且VBA无法恢复.

该功能按预期工作,直到db崩溃似乎在某个未知点.我的VBA代码一定存在某种问题,因为这只是在我上周开始修改模块时才开始发生,但我无法确定它,因为在没有执行任何操作时实际发生了崩溃.即在保存期间.

有没有人知道是否可以将VBA导出而无需将其导出到另一个数据库?即导出它而不必使用MS Access这样做.在相关的说明中,是否有人创建了一个库,将查询定义,表模式和所有VBA导出到文本文件中,我可以将它们放入源代码管理中?

谢谢.

Han*_*sUp 5

除了@Remou建议的方法之外,您还可以尝试使用SaveAsText方法将代码模块保存到文本文件中.

Application.SaveAsText acModule, "Module1", "D:\Access\Module1.txt"
Run Code Online (Sandbox Code Playgroud)

但是,如果不使用Access,则无法满足您的需求.

尝试对项目包含已损坏的已编译代码的机会进行反编译操作.您可以在此Stack Overflow问题的2个答案中找到有关反编译的详细说明:ms-access:如何反编译和重新编译

反编译后,请确保所有模块都包含Option Explicit在其声明部分中.检查项目的引用,并修复任何损坏(缺失).然后从VB编辑器的主菜单运行Debug-> Compile,验证代码编译没有错误.

这些步骤是我能提供的最好的措施,以减少持续腐败问题的可能性.

要将源代码控制与Access集成,请从选择的相关Stack Overflow线程开始:site:stackoverflow.com ms-access版本控制