VBA没有将对象分配给变量

时间:2019-07-30 10:05:24

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

我可能是在愚蠢地运行一个旧的,复杂的MDB(最初是在Access 2003中编写的,在使用良好的旧XP的情况下,一切正常运行了大约十年)在Access 2013的WINE下运行了许多VBA(好吧,Crossover Linux) 。令人惊讶的是,大多数事情都能正常工作,但是自动化存在一个奇怪的问题。以下代码启动可以在任务管理器中看到的Word实例,但未将任何对象分配给oWord。它在oWord.Visible = True失败,错误为91,而oWord为Nothing。

Dim oWord As Word.Application
Set oWord = CreateObject("Word.Application")
oWord.Visible = True

我尝试了早期绑定和后期绑定,或多或少可以用于启动Word的每一行代码。使用New Word.Application(或New)可以立即使Access崩溃,而WiNE的崩溃报告超出了我的范围。我在自动化Adobe Acrobat Pro时遇到了完全相同的问题,所以这与Office无关:Acrobat启动,但是没有分配对象,并且出现错误91。这两个程序都从Shell中愉快地启动。 CreateObject也不总是失败:奇怪的是,我在数据库的其他地方

Dim HttpReq As Object
Set HttpReq = CreateObject("MSXML2.XMLHTTP.6.0")

(但是如果没有版本号,它将失败)。

我也不认为这与引用有关,但是如果有人认为值得的话我可以列出它们。

很抱歉,这个帖子无处不在,但总而言之。

我认为我的问题可能与WINE使用的dll之一有关,我想要的建议是,如果该dll损坏或不正确,则可能导致这些特定问题。然后,我可以尝试不同的版本,也许可以从Win 7 ISO中提取干净的副本(我尝试过oleaut32.dll的多个副本,这对WINE可能是一个痛苦的话题,但没有任何效果,除非您不能在以下位置运行VBA全部带有WINE的内置版本)。我不想重新安装Office 2013,因为它在WINE下的激活方面非常棘手。我不想冒用新的wineprefix /瓶测试完美有效的许可证的风险。我在另一台工作站上进行了完全独立的安装,它的功能完全相同。我正在使用WINE 3.0.5和Crossover Linux 18运行Lubuntu 18.04 LTS; wineprefixs模仿Win 7。

我们将非常非常感谢您的帮助。我知道这是一个古怪的项目,但是很多工作都完美完成,这实在令人沮丧。谢谢。

0 个答案:

没有答案