【发布时间】:2012-11-22 05:41:57
【问题描述】:
我有一些函数可以生成 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 行。我希望在执行 avDoc.close 时关闭 Acrobat。有什么想法吗?
【问题讨论】:
-
我注意到有两件事我会尝试...
gApp.Close并在avDoc之后将gApp设置为空,因此您不会试图通过打开/关闭项目来混淆事物顺序 -
听起来你有不合理的期望。通常关闭文档不应关闭正在显示该文档的应用程序。是否有
gApp.Quit方法或类似的方法? -
@SeanCheshire 已经尝试将所有内容设置为空,但变化不大。至于 gApp.Close 和 gApp.Quit,这两个方法都存在并且什么都不做。我的脚本会填写 PDF 表单,然后保存。它必须对用户完全透明。
标签: excel vba ms-access ms-word acrobat