【发布时间】: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 交互有关。
需要注意的一些因素:
-
如果 Outlook 已关闭,代码运行没有错误。只有当 Outlook 已经打开时才会失败。
-
我们尝试重新构建配置文件、更改 PC 甚至更改操作系统和 Office 版本。我们还尝试提升运行我的应用程序的权限。有时,这些步骤中的一个似乎可以解决问题,而有时却不能。
-
我们的大多数员工使用 Windows 7 和 Office 2010,但我们正在升级到 Windows 10 和 Office 365。一些升级的员工也遇到了电子邮件问题。有些没有。
-
我在一台正常工作的机器上查看了 Office 365 的版本和内部版本号,并与出现错误的机器进行了比较。内部版本号和版本号相同。 (版本 1906。内部版本 11727.20244)
-
所有有问题的机器都是 64 位的(至少,这是我被告知的)
-
在向员工发布应用程序之前,我创建了文件的 .accde 版本,然后将扩展名重命名为 .accdr,以便员工在运行时模式下运行文件。
【问题讨论】: