Vba 如何在不启动/打开access数据库的情况下对其进行反编译?

Vba 如何在不启动/打开access数据库的情况下对其进行反编译?,vba,ms-access,decompiling,Vba,Ms Access,Decompiling,在我们的部署链中,我们先压缩access数据库,然后再将其发送给用户 因为有一些麻烦,我们想反编译它了 但不幸的是,反编译(如下所述:)似乎需要启动/打开数据库 由于我们的部署非常频繁,我正在寻找一种方法来反编译数据库而不打开/启动它。不要相信不启动应用程序就可以反编译。(甚至从命令行)。唯一可能的方法是创建一个空白数据库并导入所有内容。我想这可能是自动化的,结果将是一个未编译的数据库。因此,将所有对象导入到一个新的空白数据库是一个“可能”的解决方案,但它将涉及将对象转移到该新的空白数据库的代码

在我们的部署链中,我们先压缩access数据库,然后再将其发送给用户

因为有一些麻烦,我们想反编译它了

但不幸的是,反编译(如下所述:)似乎需要启动/打开数据库


由于我们的部署非常频繁,我正在寻找一种方法来反编译数据库而不打开/启动它。

不要相信不启动应用程序就可以反编译。(甚至从命令行)。唯一可能的方法是创建一个空白数据库并导入所有内容。我想这可能是自动化的,结果将是一个未编译的数据库。因此,将所有对象导入到一个新的空白数据库是一个“可能”的解决方案,但它将涉及将对象转移到该新的空白数据库的代码。可能不值得付出努力,但这是可能的。还可以考虑将保存为文本,将所有对象导出到文本文件中,然后基于这些文本文件重新构建一个新的解决方案(这是源代码控制如何与Access一起工作,因此甚至可以从Git存储库中构建)。p> 恐怕你不能。你可以让它立即执行一个导致数据库关闭的宏。此外,如果你正在反编译,你可能想做的不仅仅是这样。在我们的例行程序中,我们通常1)关闭所有模块窗口,2)编译代码,3)保存VBA项目,4)压缩并修复项目,然后准备分发。我不确定在没有其他步骤的情况下单独反编译是否有多大用处。@this:如前所述,我们还压缩(=压缩并修复)数据库。我想我们也会编译它。关闭由autostart宏完成。只缺少反编译。对,但我建议您设置一个脚本来反编译数据库,然后通过
GetObject
使用Access automation来完成其余步骤。然后,它还可以关闭应用程序,而无需向数据库中添加宏来为您执行此操作。这样,它将在需要时使用主机上的库进行编译,这样可以避免问题。在部署过程中设置编译步骤有助于检查编译时是否存在问题,但通常应在部署之前完成。就我个人而言,我使用一个版本控制脚本进行部署,该脚本将数据库拆分为多个部分(表、查询、表单、引用、模块),然后在安装时集成这些部分。这主要是为了允许用户跨版本集成他们自己的部件,但已经证明是可靠的。