访问数据库表单ActiveX控件错误

3
我正在使用一个带有日期选择器控件的表单。当打开表单并单击日期选择器控件(MSCOMCT2.OCX)时,我会收到以下无用的错误提示:
“Change”表达式作为事件属性设置引发了以下错误:在您的表单或报表中加载ActiveX控件时出现错误。 *表达式可能不会产生宏的名称、用户定义函数的名称或[事件过程]。 *可能存在评估函数、事件或宏的错误。
我可以关闭此消息,但然后会遇到同样关于MouseMove的问题。我没有在vba中指定这些事件,所以我不知道是什么原因导致了这个问题。
这个问题在我运行它的WinXP w/ Access 2007 PC或WinXP w/ Access 2003 PC上不会发生,但在所有其他测试的WinXP w/ Access 2003上都会发生。注册MSCOMCT2.OCX没有效果。
这是什么原因导致的,我该如何纠正它?

尝试设置断点,这样你就可以逐步执行代码。这样你就可以看到导致错误的行。 - Jacob
@cularis - 我很想这样做,但是我甚至没有在我的vba中声明这些事件。我应该在哪里设置断点? - MAW74656
不知道你的代码,也许你可以将它粘贴到这里或pastebin或其他地方。我会尝试在代码中调用控件的位置进行设置。 - Jacob
我又想到了一件事:你可能没有在代码中设置该例程,但也许你已经在控件的属性窗口中设置了它们? - Jacob
1个回答

4
我的印象是大多数经验丰富的Access开发人员尽可能避免使用ActiveX控件。对于日期选择器,您绝对不需要ActiveX。
请参见Allen Browne的弹出式日历。我已经成功地使用了他的表格(“Access 2000及更高版本”的版本),并在Access 2003和2007中使用。
如果那个不符合您的口味,请访问他提供的链接(在该页面底部)以获取其他方法。

2
补充一下HansUp的回复。我们避免使用ActiveX控件,因为存在分发、版本和killbit问题。分发问题意味着,例如,如果用户已经安装了Access、运行时或零售版,则任何ActiveX控件都需要管理员进行安装。如果没有这些控件,我们只需将前端Access数据库文件提供给用户即可。版本问题是指当用户由于某种原因拥有不同的版本时。此外,如果您更新他们的版本,那么安装在该计算机上的另一个应用程序可能会出现故障,而您会受到责备。 - Tony Toews
3
Killbit问题意味着当微软在一个ActiveX控件中发现安全漏洞后,下一个微软更新就会“取消”该特定的ActiveX控件。对于你来说,几乎没有任何警告。你会尝试解决这个问题,如果你从未听说过基本原因,那么这可能非常难以进行故障排除。 - Tony Toews
说实话,我甚至不确定我们能否最终将问题归咎于这个控件(尽管我认为问题就在那里)。我该如何“确认”这个控件是问题所在?除非必须更换,否则我不想更换它,因为它在工作时表现得很好。 - MAW74656
我不明白为什么你有任何疑问。你的表单是否包含其他可能会触发错误“加载ActiveX控件时出错”的ActiveX控件? - HansUp
1
我的玩笑回答是:实际问题在于在您的表单上使用了ActiveX控件。现在您已经不再使用它了。因此,问题解决了。 :-) - HansUp
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接