单击错误:“Microsoft Access与OLE服务器或ActiveX控件通信时出现”

时间:2015-03-19 05:19:12

标签: vba ms-access ms-access-2013

似乎这已经被问了几次。

在表单上工作几周后,当我点击一个按钮时突然出现错误:“作为事件属性输入的表达式单击”产生以下错误:Microsoft Access与之通信时出现问题OLE服务器或Active X控件。“

对于表单上的任何控件事件(例如,在其他文本字段上更新后)

也会发生这种情况

我尝试重新安装Access无济于事。

不确定这是否相关,但我在表单上也有一个子表单。我有一个“on-click”事件可以在子窗体上工作,但是当代码在以下行中断开时(之前有效):

Me.Parent.orderID = Null

我得到的错误是:“对象'_Form_frmOrderQuery'的方法'父'失败了 (frmOrderQuery是子表单的名称)

无论如何,这一切都有效,直到我通过添加更多字段来更改子窗体的查询。

最后:所有事件处理程序(按钮单击,更新后等)都可以在数据库中的其他表单上运行。

非常感谢任何帮助/建议。

谢谢,

杰夫

4 个答案:

答案 0 :(得分:2)

弄清楚,这很愚蠢。无论表单有问题,只要将其复制并删除旧表单即可。重命名新窗体,使其与上一个相同(这样,所有的vba和东西都可以使用)。完成!

答案 1 :(得分:1)

我使用Access运行时环境遇到了类似的问题。似乎问题可能出在......非Unicode语言设置中。

您添加到查询中的列的名称是否包含一些有问题的字符?

请参阅此文章以供参考:https://support.microsoft.com/en-us/kb/907337。它包含一个帮助我的决议。

一切顺利!

答案 2 :(得分:0)

就我而言,此问题是由于带重音符号而发生的。

我在使用不同于我创建的计算机的非Unicode语言设置的计算机上运行VBA代码 事件处理程序,函数或子例程。注意如果VBA代码包含重音字符或特殊字符,也可能会出现此问题。此外,如果Access数据库中的对象名称包含重音字符或特殊字符,则可能会发生此问题。

最适合我的解决方案:

”如果在基于Microsoft Windows XP的计算机或基于Windows 2000的计算机上运行VBA代码,则可以通过更改所在计算机上的非Unicode语言设置来解决此问题。运行VBA代码。要验证并更改非Unicode语言设置,请按照以下步骤操作。

注意由于存在多个版本的Microsoft Windows,因此以下步骤在您的计算机上可能会有所不同。如果是这样,请参阅您的产品文档以完成这些步骤。

点击开始, 点击运行, 键入Intl.cpl,然后单击“确定”。

在“高级”选项卡上的“非Unicode程序的语言”下,验证该语言与您在其上创建事件处理程序,函数或子例程的计算机上的语言匹配。如果语言不同,请单击所需的语言,然后单击“确定”。 重新启动计算机。

更多https://support.microsoft.com/en-us/help/907337/you-receive-an-error-message-when-you-start-visual-basic-for-applicati

答案 3 :(得分:0)

正如其他用户提到的那样,问题在于元素(表单控件等)名称中使用了非英文符号。 我的解决方法:

  1. (可能不必要)为表单上的任何元素创建事件过程。
  2. 切换到代码编辑器。
  3. 将光标置于任何过程内。
  4. 打开包含元素名称的下拉列表(在代码窗口上方的左侧)。
  5. 检查是否看到一些带有“ ?????”的名称在其中。
  6. 如果5为true,则找出元素是什么,在表单上找到它们并仅使用基本拉丁字母重命名。