Access 数据库窗体 ActiveX 控件错误

Posted

技术标签:

【中文标题】Access 数据库窗体 ActiveX 控件错误【英文标题】:Access Database Form ActiveX control error 【发布时间】:2011-07-13 16:32:23 【问题描述】:

我正在使用一个带有日期选择器控件的表单。当打开表单并单击日期选择器控件 (MSCOMCT2.OCX) 时,出现以下无用错误:

您作为偶数属性设置输入的表达式更改 产生以下错误:加载 ActiveX 时出错 控制您的表单或报告之一。

*表达式可能不会产生宏名称、用户定义函数的名称或 [事件过程。] *评估函数、事件或宏时可能出现错误。

我可以忽略此消息,但随后会收到同样的抱怨

鼠标移动

我没有在 vba 中指定这些事件,所以我不知道是什么原因造成的。

当我在带有 Access 2007 PC 的 winXP 或带有 Access 2003 PC 的 winXP 上运行它时不会发生此问题,但在所有其他已测试带有 Access 2003 的 winXP 上确实会发生。注册 MSCOMCT2.OCX 无效。

这可能是什么原因造成的,我该如何纠正?

【问题讨论】:

尝试设置断点,以便您可以单步执行代码。这样,您将看到导致错误的行。 @cularis - 我愿意,但我什至没有在我的 vba 中声明这些事件。我应该在哪里设置断点? 不知道你的代码,也许你可以把它粘贴在这里或粘贴到 pastebin 或其他地方。我会尝试将其设置在代码中调用控件的位置。 我刚刚想到的另一件事:您可能没有代码中的例程,但也许您已经在控件的属性窗口中设置了它们? 【参考方案1】:

我的印象是最有经验的 Access 开发人员尽可能避免使用 ActiveX 控件。对于日期选择器,您绝对不需要 ActiveX。

请参阅 Allen Browne 的 Popup Calendar。我已经在 Access 2003 和 2007 上成功使用了他的表单(“Access 2000 及更高版本”的版本)。

如果您不喜欢那个,请访问他提供的链接(在该页面底部)以了解其他方法。

【讨论】:

添加到 HansUp 回复。由于分布、版本和 killbit 问题,我们避免使用 ActiveX 控件。分发问题意味着,例如,如果用户已经拥有 Access、运行时或零售,则安装任何 ActiveX 控件都需要管理员进行安装。没有它们,我们只能为用户提供前端 Access 数据库文件。版本问题是指用户出于某种原因拥有与您不同的版本。此外,如果您更新他们的版本,那么安装在该机器上的另一个应用程序可能会崩溃,而您会受到指责。 Killbit 问题意味着当 MS 在 ActiveX 控件中发现安全漏洞时,下一个 MS 更新会“取消”该特定 ActiveX 控件。基本上没有警告你。如果您从未听说过基本原因,那么您将试图找出很难解决的问题。 说实话,我什至不确定我们能否最终将问题归结为这个控件(尽管我认为问题就在那里)。我如何“确认”这个控件是问题所在?除非必须,否则我不想更换,它工作得很好(当它工作时)。 我不明白你为什么有任何疑问。您的表单是否包含 其他 ActiveX 控件...这可能会触发错误“加载 ActiveX 控件时出错”? 我开玩笑的回答:实际的问题是在表单上使用 ActiveX 控件。你现在不是。因此,问题解决了。 :-)

以上是关于Access 数据库窗体 ActiveX 控件错误的主要内容,如果未能解决你的问题,请参考以下文章

CVI 调用ACtiveX控件出现错误

MFC设计器中的“无法访问ActiveX控件类型库”错误

MS Access 中的 .Net 用户控件

MS Access 2010 宏生成器:父窗体上控件的 SetProperty

使用 .Net Framework 编写的 Microsoft Access 报表 ActiveX 控件

如何使用 vb.net 从 MS Access DB 表单中找出 Activex 控件