2

我有一些函数可以生成 Word、Excel 或 PDF 文档。例如,我正在处理的是将报告导出为 PDF 文件。关闭报表后,它会打开另一个使用 LiveCycle ES 8.2 创建的 PDF 表单,并用数据库中的数据填充它。在此之后,文档被关闭,但由于某种原因,Acrobat 的实例仍然在前台打开,没有打开任何文档。

这是代码:

DoCmd.OpenReport "myReport", acViewPreview
DoCmd.OutputTo acOutputReport, "", acFormatPDF, "C:\myReport.pdf", False
DoCmd.Close acReport, "myReport"

Dim gApp, avDoc, pdDoc, jso

Set gApp = CreateObject("AcroExch.app")
Set avDoc = CreateObject("AcroExch.AVDoc")
If avDoc.Open(exprPDF, "") Then
    Set pdDoc = avDoc.GetPDDoc()
    Set jso = pdDoc.GetJSObject

    '[...]

    pdDoc.Save PDSaveIncremental, FileNm 'Save changes to the PDF document
    pdDoc.Close 'Close the PDF document
End If

avDoc.Close (True)
Set gApp = Nothing
Set avDoc = Nothing

myReport 从不打开任何 Acrobat 实例。这条线avDoc.Open可以。我希望 Acrobat 在我这样做时关闭avDoc.close。有任何想法吗?

4

3 回答 3

2

我认为你应该补充:

gApp.Exit

之前

Set gApp = Nothing

这似乎可以打勾,但该应用程序仍然存在,隐藏...要实际杀死 Acrobat,请在此处使用“Acrobat.exe”尝试此方法: 如何通过 VBA 代码杀死任务管理器进程? 这种方法有点像大锤,但它确实有效。

于 2017-02-15T11:00:03.957 回答
0

经过更多测试后,我需要关闭和退出所有文档对象,以确保在没有剩余打开文档的情况下退出应用程序。

于 2012-12-06T14:01:03.243 回答
0

我刚刚遇到了同样的问题并找到了以下解决方案:

AVDoc.Close (True)
**AcroApp.Hide**

Set AcroApp = Nothing
Set AVDoc = Nothing
于 2013-06-04T07:14:07.527 回答