Я хотел бы заполнить форму Adobe Fillable, используя данные, извлеченные из отчета Access. Я был бы признателен за некоторые советы о том, как заставить этот код работать. Я относительно новичок в VBA, поэтому мой самый большой вопрос возникает из-за того, какая часть кода принадлежит Adobe, а какая — полям доступа.
Вот некоторые из моих имен полей для доступа: Payee Extended_Payee, Check Request Date, Invoice Number и т. д. Некоторые из моих имен полей в форме Adobe: Payee, Today's Date, Invoice Number и т. д.
Это код, который у меня есть до сих пор - я просто хотел бы уточнить, какая часть кода должна отражать поля Adobe, а какая часть должна быть из Access:
Private Sub Export_Click()
Dim FileNm, gApp, avDoc, pdDoc, jso
FileNm = "M:\Check_Requests\2017\PDF_Exports\CheckForm.pdf" 'File location
Set gApp = CreateObject("AcroExch.app")
Set avDoc = CreateObject("AcroExch.AVDoc")
FileCopy FileNm, newFileNm
If avDoc.Open(newFileNm, "") Then
Set pdDoc = avDoc.GetPDDoc()
Set jso = pdDoc.GetJSObject
jso.getField("CheckForm[0].Page1[0].Payee[0]").Value = "Payees_Extended_Payee"
jso.getField("CheckForm[0].Page1[0].Address[0]").Value = "Address"
jso.getField("CheckForm[0].Page1[0].City[0]").Value = "City"
jso.getField("CheckForm[0].Page1[0].State[0]").Value = "State"
jso.getField("CheckForm[0].Page1[0].Zip_Code[0]").Value = "Zip_Code"
jso.getField("CheckForm[0].Page1[0].Comments_to_Include_on_Remittance[0]").Value = "Description_of_Expense"
jso.getField("CheckForm[0].Page1[0].Todays_Date[0]").Value = "Check_Request_Date"
jso.getField("CheckForm[0].Page1[0].Invoice_Number[0]").Value = "Invoice_Number"
jso.getField("CheckForm[0].Page1[0].Invoice_Date[0]").Value = "Invoice_Date"
jso.getField("CheckForm[0].Page1[0].Total_Amount[0]").Value = "Total_Amount"
jso.getField("CheckForm[0].Page1[0].Description_of_Expense[0]").Value = "Description_of_Expense"
jso.getField("CheckForm[0].Page1[0].Other[0]").Value = "Other"
jso.getField("CheckForm[0].Page1[0].GL1[0]").Value = "GL_Company"
jso.getField("CheckForm[0].Page1[0].AU1[0]").Value = "Accounting Unit"
jso.getField("CheckForm[0].Page1[0].A1[0]").Value = "Account"
jso.getField("CheckForm[0].Page1[0].CODE1[0]").Value = "Project_Code"
jso.getField("CheckForm[0].Page1[0].AMOUNT1[0]").Value = "Amount_Split_1"
jso.getField("CheckForm[0].Page1[0].GL2[0]").Value = "GL_Company_2"
jso.getField("CheckForm[0].Page1[0].AU2[0]").Value = "Accounting_Unit_2"
jso.getField("CheckForm[0].Page1[0].A2[0]").Value = "Account_2"
jso.getField("CheckForm[0].Page1[0].CODE2[0]").Value = "Project_Code_2"
jso.getField("CheckForm[0].Page1[0].AMOUNT2[0]").Value = "Amount_Split_2"
jso.getField("CheckForm[0].Page1[0].GL3[0]").Value = "GL_Company_3"
jso.getField("CheckForm[0].Page1[0].AU3[0]").Value = "Accounting_Unit_3"
jso.getField("CheckForm[0].Page1[0].A3[0]").Value = "Account_3"
jso.getField("CheckForm[0].Page1[0].CODE3[0]").Value = "Project_Code_3"
jso.getField("CheckForm[0].Page1[0].AMOUNT3[0]").Value = "Amount_Split_3"
jso.getField("CheckForm[0].Page1[0].Total[0]").Value = "Amount_Total"
jso.getField("CheckForm[0].Page1[0].Requestor[0]").Value = "Requestor"
jso.getField("CheckForm[0].Page1[0].Approving Manager[0]").Value = "Approving_Manager"
jso.getField("CheckForm[0].Page1[0].Extension[0]").Value = "Extension"
jso.getField("CheckForm[0].Page1[0].Email_Address[0]").Value = "Email_Address"
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
FileCopy FileNm, newFileNm
перед Open, а затем открыть новый файл с помощьюIf avDoc.Open(newFileNm, "") Then
09.06.2017jso.getField
в документе PDF должна быть форма с заданным именем и в форме должно быть поле с заданным именем. В вашем случае для первого получения должна быть форма с именемCheckForm
и поле с именемPayee_Extended_Payee
в ней. 09.06.2017