我正在处理的数据库(在MS-ACCESS XP中)似乎已经以某种方式损坏了。它不再支持任何事件 - 点击,更改,更新事件,似乎无效。这是我遇到的错误:

当事件属性设置产生以下错误时,您输入的更改表达式:对象或类不支持事件集。

我该怎么做才能使事件重新开始工作?我努力了 工具 - >数据库实用程序 - >紧凑和维修数据库..., ,但这根本没有帮助。另外,整个时间都不是这样 - 事件最初是在起作用,但现在没有任何可行,甚至没有自动生成的命令按钮。

有帮助吗?

解决方案

紧凑和维修通常无法解决表和索引以外的对象中发生的问题。导入通常可以修复这些方法,但可能会尝试反编译,然后尝试导入。 反编译或如何减少Microsoft访问MDB/MDE尺寸并减少启动时间

我曾经遇到过同样的问题,并记录了我在这里的故障拍摄步骤。 单击您输入的表达式...

也看 损坏的Microsoft访问MDB中的对象损坏

长期讨论总结。

一个可能有帮助的解决方案的页面是 使用Vista/Windows 7下的多个版本的访问权限发生错误 这基本上是注册表中的权限问题。

另一个建议是修复控制面板中的2003年办公室安装。然后,A2003恢复为使用库的版本11,但只有在再次使用A2007之前,问题才重新出现。

原始海报说:“好的,经过几次重新启动,删除2007年运行时似乎确实解决了问题。”

其他提示

托尼(Tony)在他的一系列评论中暗示了这一点,但这听起来完全像决斗访问注册问题。我直到最近才使用A2007(我已经安装了运行时来测试是否可以在A2003中开发的数据库 - 它可以 - 可以 - 但由于该测试完全是完全使用的),当我运行时A2007使用A2003后,它必须重新配置本身。前几天,在A2003重新配置(上次运行A2007之后)期间出了问题,我的错误与您的错误相似。运行A2007(以将所有内容重新注册为A2007),然后运行A2003(以A2003为A2003)解决了问题。

关键是,当重新注册失败时,访问并不一定会在下次运行时知道它,因此您最终会在A2003部分注册的环境中运行,部分是在A2007中。还原的方法是运行其他版本的访问。也就是说,如果A2003在没有重新配置通知的情况下启动,则将其关闭并运行A2007,以便重新配置自己并将其重新注册为真正的访问权限。然后,当您接下来运行A2003时,它将作为权威版本的访问版本重新注册,并且您的A2003应用程序应具有适当形状的所有参考。

是的,这很烦人。

和耗时。

我不知道为什么MS似乎认为这是不需要修复的东西。虽然我知道他们不给老鼠屁股,因为需要并排运行A2003和A2007的开发人员,但有很多最终用户可能安装了A2007运行时应用程序,但也安装了A2003作为基础办公室安装的一部分。

这一直在继续,所以我怀疑它是否会被修复。

在2013年的Access。从MS网站上的一个页面上,我发现了解决我的问题的答案。我在这里分享。

  1. 在记事本++中,我安全地将代码安全地复制在访问之外的其他地方。
  2. 然后,我用它的代码删除了整个排气过程,但没有启动。
  3. 创建了新的事件过程,并将代码从记事本++还原为新创建的事件过程。
  4. 事件早些时候没有开火,没有任何故障。问题解决了。

我不知道为什么出现问题。这个问题已经出现了很多次,每次使用相同的解决方案解决。

试试看。

尝试对数据库进行反编译并重新编译。

如果那不起作用,我通常会创建一个新的数据库,并导入从该数据库到新数据库。如果某事损坏,那时我会遇到问题,并能够解决问题。

您可以在代码模块中看到代码吗?如果是这样,请将其切割并粘贴在安全的地方。然后将每种表单的Hasmodule设置翻转为false,修复数据库,然后将代码还原为新创建的代码模块。

您可以通过将标志 /反编译添加到启动选项IE来编译数据库IE

msaccess.exe“ c: my_folder mydb.mdb” /epcompile

我发现这解决了我的大多数问题。如果不是这样,则另一个是通过运行安全向导重新确定数据库。这基本上是一个新的DB,并为您导入所有对象

我也有类似的问题。启动时,我通过复制数据库创建了代码的新版本。这无济于事。但是,从新数据库中删除表单并从原始数据中导入该表格解决了问题。我没有收到任何损坏的代码或其他警告。它只是在没有任何更改VBA等的情况下工作了。

我将数据库(Access 2010)压缩为新数据库。没有快乐。删除了无法正常工作的表单,并从旧数据库中导入它。没有快乐。重新编译。 喜悦! 不确定为什么它退出以及为什么现在起作用。我怀疑表单上的链接文本框中有大量文本的问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top