我在创建电子邮件的 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
这是很标准的东西,对吧?并且这段代码在过去的 2 年里一直运行良好,无论给予还是接受。几个月前,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,以便员工在运行时模式下运行该文件。
有谁知道什么可以解决这个问题?
基于 (1)(当 Outlook 未运行时按预期工作),问题在于 Outlook 和您的脚本在不同的安全上下文下运行。确保应用程序或两者都没有在提升的权限下运行(以管理员身份运行)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句