我有一个正在工作的MS-Access项目。所有事件和vba代码在作为.accdb存在时都会按预期运行
当我编译成.accde时,所有与更新文本框、组合框或单击按钮相关的vba事件都不再运行。我尝试了文件的不同位置,但它仍然运行相同。
编辑:我仔细检查了我的可信位置,文件位于可信位置。我甚至勾选了允许vba代码运行的选项,而不管安全性如何。
还可以确认onLoad()事件是否正常工作。
发布于 2016-01-29 23:27:56
带有.accdb文件的
尝试手动运行“Compile”命令(VBA编辑器-->调试-->编译)以确保没有警告/问题,因为任何编译器错误都会导致编译的.accde文件无法触发事件
这解决了我的问题
发布于 2019-12-12 03:11:33
我和上面的Chris Chevalier有同样的问题,如果我还有头发的话,我会把头发拔出来的。
删除了大量描述-它只显示了我尝试过的不起作用的内容
这里是我所做的工作:
我在中经历的步骤
解决方案
我返回到原始的.accdb文件-完整的程序,它可以很好地作为.accdb文件运行,但不能将VBA代码作为.accde文件运行-我从有问题的窗体的代码模块中删除了空的OnClose事件过程,重新创建了完整程序的.accde文件,现在它可以工作了!
通过删除该单个令人不快的空事件过程,.accde文件现在将运行我的所有VBA代码。
这就是我发现的对我有效的方法。这将需要更多的实验(我现在没有时间)来确定这是否是大多数类似的VBA代码实例不能从.accde文件运行的原因。
发布于 2019-07-06 13:09:15
好了,在Access 2013上使用一个快速的小数据库应用程序,我遇到了这个问题。我在像这样的多个支持网站上找到了几种不同的解释,但每个网站都没有解决方案,或者至少没有一个对我有效的解决方案。可信位置解决方案没有效果,重新编译代码,删除表单中的VB -saving表单(sans代码),然后替换表单中的代码和编译都不起作用。
因此,让我们直截了当地说: accdb已经通过了多次测试,调试编译完成,没有任何注释,并且已经投入使用半年了。然而,当我决定硬化数据库,使前端和后端的accde文件,后端编译(有锁定代码在后端)和accde工作良好,前端编译没有错误,但accde文件没有它的VBA工作。默认的启动窗体打开了,但似乎没有一个vb sub被执行- form_load sub没有做任何事情,当按钮被按下时什么也没有发生(除了执行嵌入式宏的按钮-那个按钮起作用了)。
在尝试了所有不同的解决方案并将头撞在墙上一段时间后,我决定它必须是原始accbd文件中的某个东西。因此,我创建了一个新的空白accdb,并将所有的Table链接、表单、查询和模块导入到新的db中。测试了accdb,一切都正常;编译并生成了accde -它不工作。同样的问题。嗯?这不是Access安装,因为后端编译,它的accde运行良好。我以为我通过删除代码并保存不带代码的表单,然后添加(从记事本粘贴)代码并再次保存表单来重新建立表单与VB之间的链接,但这并不起作用。所以我做了一个实验。我创建了一个带有按钮的新表单,该按钮运行代码以弹出一条消息,编译DB并使accde和新表单工作(其他所有表单仍然不能工作)。我需要重新制作每个表单吗?好吧,让我们尝试一个快捷方式,我复制并粘贴每个表单到其原始名称,并附加一个2,然后删除每个原始表单并重命名所有副本。一些快速测试和所有的DB函数都很好,编译也很好,Accde -它工作了!没有代码更改;没有错误的发现-只是重新复制的形式(S)一些如何重新连接的VB的形式,一旦数据库成为一个ACCDE。
https://stackoverflow.com/questions/35043784
复制相似问题