Access / Project VBA - 实例化MS Project Application对象的自动化错误

问题描述 投票:0回答:3

更新 - 2016年1月20日 - 我相信@Alistair发布的答案是正确的,我正在努力验证。

自从我上一篇文章以来,我尝试修复Office 16 64位环境。不工作。

为了让这个回到一个坚实的起点,我已经在我的常规Windows 10机器上降级到Office 2013(32位)。下面的代码按预期工作。接下来,我将为2016年安装构建另一个VM,并查看32位版本的Office 16是否正常工作。

更新 - 2016年1月19日1658 PT - 我将探索使代码了解64位-vs-32位环境。见:https://msdn.microsoft.com/en-us/library/office/gg264421.aspx

如果这解决了问题,我将使用解决方案更新此问题。谢谢!

*****以下原帖**************************

这是在MS Access中运行宏时打开MS Project文件并将数据从MS Project任务导入Access。下面的代码是一个示例。我们得到的错误是在Windows 10和MS Office 2016下。在运行Windows 7和Office 2013的另一台计算机上不会发生此错误; MS Project版本与Office版本一致。

当我尝试实例化MSProject.Application对象时,我们遇到了自动化错误。错误是:

运行时错误'-2147467229(80004023)':

自动化错误遇到Microsoft Software Installer错误

这是代码:

Option Compare Database
Option Explicit

Sub test01()
    Dim appMSProject As MSProject.Application
    On Error GoTo ErrorHandler
    '*** The next line is where we pop the error ***
    Set appMSProject = New MSProject.Application
    appMSProject.FileOpenEx Name:="C:\IMS\Project1.mpp"
    '*** next line is just so I can see if something odd is going on ***
    MsgBox (appMSProject.About())
    appMSProject.Quit SaveChanges:=pjDoNotSave
    Exit Sub
ErrorHandler:
    MsgBox ("Error Number: " & Err.Number & vbCrLf & _
            "Error Desc.: " & vbCrLf & _
            Err.Description)
    Exit Sub   
End Sub

有趣的是,在调试模式下,如果我删除“新”并退回到它,有时,它将运行。

我们尝试关闭提示登录到项目服务器,项目到项目链接,并将宏安全性设置为Access和Project上的最低设置。我们还尝试使用不同的.MPP文件,以防文件损坏或可能不符合MS Project 2016,这是一个很长的镜头,因为文件在对象实例化之后打开了。

我也尝试过这种技术:

Dim appMSProject As Object
...
Set appMSProject = CreateObject("MSProject.Application")

这会产生相同的错误。我甚至从这里复制并粘贴了代码示例:qazxsw poi

这里的开关是参考。我正在使用Microsoft Project 16对象库。 MSDN文章指定Microsoft Project 15对象库。我试图找到一个较新的MSDN文章,规范,对象模型或适用于Project 16的任何其他内容。没有快乐。

虽然我在线发现了一些非常通用的自动化错误建议,但几乎所有这些示例在它们启动Application对象后都遇到了问题,而不是我遇到问题。一般来说,MS Project VBA也有很少的帮助。当然,这是一个较小的社区。只是让你知道我看了。

我能想到的是,我错过了掌握Office 2016 / Project 2016 VBA文档的方法,并且有一种新技术来实例化MSProject.Application对象。如果它很简单,任何人都知道神奇的URL,请传递它。

先感谢您! - jd

vba ms-access access-vba microsoft-project-vba
3个回答
0
投票

我认为这是在您的计算机上安装Microsoft Project 2016的问题。

我刚刚在Access 2016和Project 2016的机器上测试了您的代码,它第一次运行。

我建议在Project上做一个https://msdn.microsoft.com/en-us/library/office/ff865152.aspx,也可能在Access上做。


0
投票

您可以尝试安装KB3114538。显然,添加了一些2016 VBA对象属性,但与旧版本不向后兼容。

确保项目和Office完全更新可能也很好。

Rod Gill项目MVP


0
投票

我将Office 2016 32位升级到64位时遇到了同样的问题。 VBA中的所有Outlook对象都失败,导致出现消息“自动化错误:遇到Microsoft软件安装程序错误”。我重命名了与Outlook关联的注册表项,并在下一次调用它显然已重建,然后一切都开始工作了。更多信息,请访问:repair install在我的案例中不需要重新安装Office。

© www.soinside.com 2019 - 2024. All rights reserved.