从MS Access填写PDF表单

时间:2013-07-26 08:29:34

标签: access-vba

我在here上发现了一条关于如何从MS Access填写可填写PDF的帖子。

这是一个用于填写可填写PDF的Visual Basic代码。我一直在使用Excel来执行此功能,并希望将我的数据库迁移到Access并仍然保持相同的功能。我已经弄清楚如何将我的VB代码添加到按钮,但是当我点击它给我和错误。任何可以给予的帮助都将不胜感激。

我有Adobe Acrobat X Pro和MS Access 2010.我的PDF文件是用word创建的,然后转换为PDF文件,我知道所有的字段名称,因为我创建了它们。 PDF文档保存为c:\ CX.pdf,它有9页,文档上的一些字段名称示例为:“工厂名称”,“工作站位置”,“安装者或所有者”。我的MS Access数据库字段的名称相同。

Option Compare Database

Private Sub Command105_Click()

Dim FileNm, gApp, avDoc, pdDoc, jso

FileNm = "c:\CX.pdf" 'File location
Set gApp = CreateObject("AcroExch.app")

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

    jso.getField("CX[0].Page1[0].Plant_Name[0]").Value = "Plant_Name"
    jso.getField("CX[0].Page1[0].Station_Location[0]").Value = "Station_Location"
    jso.getField("CX[0].Page1[0].Installer_or_Owner[0]").Value = "Installer_or_Owner"
    pdDoc.Save PDSaveIncremental, FileNm 'Save changes to the PDF document
    pdDoc.Close
    End If
'Close the PDF; the True parameter prevents the Save As dialog from showing
avDoc.Close (True)

'Some cleaning
Set gApp = Nothing
Set avDoc = Nothing
Set pdDoc = Nothing
Set jso = Nothing

End Sub

它给了我错误“找不到对象”,现在它没有给我错误,但它仍然没有写入PDF。

1 个答案:

答案 0 :(得分:0)

这有点旧,但从长远来看它对我有所帮助。我确实搞清楚了什么是错的。 “找不到对象”表示代码无法找到PDF字段,因此您无法为“getFeild()”返回的对象分配任何内容。最可能的罪魁祸首是该领域的“路径”是不正确的。尝试只输入字段名称,您可能需要将数据导出到FTF文件并在记事本中读取文件以查找字段名称。

字段名称将如下所示

T/(FeildName)v/(FeildValue)

实际返回对象后,您将能够为其分配值。