【发布时间】:2013-04-03 17:39:41
【问题描述】:
我有一个旧的 Access 应用程序。前几天它崩溃了,并且在压缩和修复期间崩溃了。谷歌了一大堆,我终于要做的是反编译MDB,然后重新编译它,它会再次运行。
所以我的问题是,反编译 MDB 有什么作用,或者就此而言,编译 MDB 有什么作用?无论哪种方式,我都可以访问该代码,并且它在 VBA 代码编辑器中显示相同。那么它只是 MS Access MDB 内部的东西吗?
【问题讨论】:
-
编译从您的代码文本中创建“p-code”。 VBA 主机运行 p 代码而不是文本。 p 码存储在系统表 BLOB 中。当存储的二进制信息被破坏时,就会发生奇怪的事情。反编译会丢弃所有存储的 p 代码,无论是否损坏。然后当你再次编译时,新的干净 p 代码被存储……希望生活再次美好。经验丰富的 Access 开发人员通常建议在积极开发期间定期进行反编译作为预防措施。
-
反编译不是100%成功的。您可以使用未记录的
Application.SaveAsText方法将您的代码承载对象(模块、类、表单、报告)保存到文本文件中。当反编译无法恢复顺序时,在新的db文件中使用Application.LoadFromText。 -
谢谢。这非常有帮助!
标签: ms-access compilation vba ms-access-2003