如何调试已编译的访问数据库(accde)



我有一个访问前端,它连接到SQL Server表,工作正常。然而,当我将其编译成accde文件时,在关闭DB时会出现各种错误。这些错误似乎表明程序仍在查找表或全局变量的值。隐藏窗体的Form_Close((事件中有一个例程,用于删除到SQL Server后端的所有链接。那么,如何调试已编译的访问数据库呢?为什么编译后的DB与未编译(accdb(版本的行为不同?

您需要使用On error goto LabelName捕获错误,或者如果您不关心错误,则应在代码顶部使用On error resume next。您仍然应该发布您的代码以获得更准确的帮助。

你说的是同一台电脑,还是不同的电脑?

编译后的accDE对在不同的机器(甚至是同一版本(上执行非常敏感。原因是编译后的accDE采用了您当前的office发布版本。在全局变量和错误处理方面?accDE是最好的选择,因为未处理的错误不会重新设置局部变量,甚至全局变量。实际上,accDE就像一列无法停靠的货运列车一样运行。

如果你的accDB(未编译(在你的计算机上运行良好,那么我从未见过accDE不运行的情况,事实上运行得更好,行为也更糟糕。

所以,不,你不能调试accDE,但你可以在同一台计算机上调试accDB。

如果你在另一台计算机上运行accDE,那么你在帖子中遗漏了大量、巨大和特殊的信息。

如果你在同一台计算机上运行accDE(与你创建它的计算机相同(,那么唯一可能的情况是accDE文件扩展名使用不同版本的访问权限来运行。这是罕见的——因此,我会从控制面板、应用程序和功能中找到您的访问版本,然后右键单击并修复您的办公室安装。

office/access的补丁版本问题在这里非常重要。当然,原因是如果您部署accDB,它通常会工作,因为access可以(而且确实(检测到当前版本(甚至SP/patch/update(的access级别不同,然后它可以动态重新编译代码(因为accDB有源代码(。accDE没有,因此无法重新编译。然而,我仍然强烈建议您部署accDE并解决SP/补丁级别的问题,因为与未编译的accDB相比,accDE的操作更加可靠。

如果你在运行accDB的同一台计算机上遇到这个问题,并且该计算机被用来创建accDE,我会感到非常震惊。如果是实际情况,那么我会创建一个新的空白accDB,并从旧的accDB导入所有内容,然后确保它可以编译代码(从IDE debug->compile(。如果应用程序编译,那么创建accDE,它应该可以正常工作。所以,若这是同一台机器,那个么你们的accDB就被损坏了。正如我所说的,创建一个新的,从旧的导入所有内容,并从中创建您的accDE。它会起作用,我从未见过accDB起作用,而accDE不起作用的情况(在同一台机器上(。

首先要做的是反编译应用程序。。。只需谷歌MsAccess解压缩。当你执行解压缩并尝试编译时,几乎可以肯定的是,你会发现一些"被遗忘"的错误
2nd如果1st失败是时候实现一个强大的日志记录系统了。。。基于文本文件编写,为了避免依赖性,只需低工作:https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/freefile-function.
如果仍然失败,请返回更多信息。

最新更新