【问题标题】:Runtime 429 ActiveX component error occurs when Access calls an open OutlookAccess 调用打开的 Outlook 时出现运行时 429 ActiveX 组件错误
【发布时间】:2021-06-16 21:12:40
【问题描述】:

我在创建电子邮件的 MS Access 应用程序中有 VBA 代码。相关的代码行是:

Dim objOutlook As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem

Set objOutlook = CreateObject("Outlook.Application")

Set objOutlookMsg = objOutlook.CreateItem(olMailItem)

'...
'code in here to set the "To" address, subject and body
'...

 objOutlookMsg.Display

这段代码在过去的二十年里一直有效,不管是给予还是接受。几个月前,100 多个用户中约有 10 个无法再从我的应用程序中生成电子邮件。这是他们得到的错误:

错误 #429:“ActiveX 组件无法创建对象。”

我们认为问题可能与权限有关,因为我们的 IT 人员当时正在使用 UAC(用户帐户控制)。 IT 人员恢复了所有 UAC 更改,而这 10 名左右的员工仍然存在电子邮件生成问题。

有一个关于此问题开始时间的 Windows 更新,因此该问题可能与 MS Access 如何与 Windows 和/或 Outlook 交互有关。

需要注意的一些因素:

  1. 如果 Outlook 已关闭,代码运行没有错误。只有当 Outlook 已经打开时才会失败。

  2. 我们尝试重新构建配置文件、更改 PC 甚至更改操作系统和 Office 版本。我们还尝试提升运行我的应用程序的权限。有时,这些步骤中的一个似乎可以解决问题,而有时却不能。

  3. 我们的大多数员工使用 Windows 7 和 Office 2010,但我们正在升级到 Windows 10 和 Office 365。一些升级的员工也遇到了电子邮件问题。有些没有。

  4. 我在一台正常工作的机器上查看了 Office 365 的版本和内部版本号,并与出现错误的机器进行了比较。内部版本号和版本号相同。 (版本 1906。内部版本 11727.20244)

  5. 所有有问题的机器都是 64 位的(至少,这是我被告知的)

  6. 在向员工发布应用程序之前,我创建了文件的 .accde 版本,然后将扩展名重命名为 .accdr,以便员工在运行时模式下运行文件。

【问题讨论】:

    标签: vba ms-access outlook


    【解决方案1】:

    基于 (1)(在 Outlook 未运行时按预期工作),问题在于 Outlook 和您的脚本在不同的安全上下文下运行。 确保没有一个应用程序或两者都在提升的权限下运行(以管理员身份运行)。

    【讨论】:

    • 感谢您的回复德米特里!我将请我们的帮助台/Active Directory 工作人员对此进行调查。我想知道这个原因是否有意义,因为有些员工可以运行相同的代码而有些则不能?我认为我们为员工设置相同的计算机...?某些员工拥有不同 Outlook 权限与应用程序权限的可能性有多大?我会调查的。只是看看你是否仍然认为这可能是问题所在。再次感谢。
    • 不一定是 Outlook - 您确定 Access(执行脚本的位置)没有以提升的权限运行吗?
    • 德米特里:你摇滚!你的回答是我们需要的线索。 Access 应用程序正在通过提升的启动批处理文件以提升的权限运行。显然 Outlook 权限需要提升才能匹配。这就是答案,我们的权限人员说。我会将您的回复标记为答案。我只是想给你一些细节和衷心的感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 2011-02-08
    • 2015-04-24
    • 2016-04-24
    • 2021-08-04
    • 1970-01-01
    相关资源
    最近更新 更多