首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将我的.accdb设为.accde后,窗体事件将不会触发

将我的.accdb设为.accde后,窗体事件将不会触发
EN

Stack Overflow用户
提问于 2016-01-28 01:13:17
回答 5查看 3.3K关注 0票数 3

我有一个正在工作的MS-Access项目。所有事件和vba代码在作为.accdb存在时都会按预期运行

当我编译成.accde时,所有与更新文本框、组合框或单击按钮相关的vba事件都不再运行。我尝试了文件的不同位置,但它仍然运行相同。

编辑:我仔细检查了我的可信位置,文件位于可信位置。我甚至勾选了允许vba代码运行的选项,而不管安全性如何。

还可以确认onLoad()事件是否正常工作。

EN

回答 5

Stack Overflow用户

发布于 2016-01-29 23:27:56

带有.accdb文件的

尝试手动运行“Compile”命令(VBA编辑器-->调试-->编译)以确保没有警告/问题,因为任何编译器错误都会导致编译的.accde文件无法触发事件

这解决了我的问题

票数 3
EN

Stack Overflow用户

发布于 2019-12-12 03:11:33

我和上面的Chris Chevalier有同样的问题,如果我还有头发的话,我会把头发拔出来的。

删除了大量描述-它只显示了我尝试过的不起作用的内容

这里是我所做的工作:

我在中经历的步骤

  1. 创建了一个新数据库;导入了所有本地表(2),重新链接了所有链接表(9),导入了模块(1)和查询(大量)。导入了在其模块中具有最少VBA代码的所有表单(大约8个)。
  2. 到目前为止测试了操作。
  3. 创建了.accde文件并对其进行了测试。因此,到目前为止,它运行良好。
  4. 开始导入更复杂的VBA代码模块表单,一次导入一个。在每次导入之后,我将测试该表单及其代码的功能,然后创建.accde文件(按顺序编号,以便我可以跟踪我正在做什么)并对其进行测试。对于前几个表单,它工作得很好,然后在一个表单导入时,它crashed.
  5. Went回到原始的.accdb文件,并查看导致.accde文件崩溃的表单的代码(而不是运行VBA代码)。幸运的是,在该表单的代码模块中只有3个过程,其中两个是简单的代码,一个是(临界点) EMPTY ONCLOSE事件PROCEDURE.
  6. I删除了空事件过程,重新创建了.accde文件,并且它起作用了!!

解决方案

我返回到原始的.accdb文件-完整的程序,它可以很好地作为.accdb文件运行,但不能将VBA代码作为.accde文件运行-我从有问题的窗体的代码模块中删除了空的OnClose事件过程,重新创建了完整程序的.accde文件,现在它可以工作了!

通过删除该单个令人不快的空事件过程,.accde文件现在将运行我的所有VBA代码。

这就是我发现的对我有效的方法。这将需要更多的实验(我现在没有时间)来确定这是否是大多数类似的VBA代码实例不能从.accde文件运行的原因。

票数 2
EN

Stack Overflow用户

发布于 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。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35043784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档