我有一个正在工作的MS-Access项目。所有事件和vba代码在作为.accdb存在时都会按预期运行
当我编译成.accde时,所有与更新文本框、组合框或单击按钮相关的vba事件都不再运行。我尝试了文件的不同位置,但它仍然运行相同。
编辑:我仔细检查了我的可信位置,文件位于可信位置。我甚至勾选了允许vba代码运行的选项,而不管安全性如何。
还可以确认onLoad()事件是否正常工作。
发布于 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
复制相似问题