2017-06-09 10 views
0

IDは、アクセスレポートから取得したデータを使用してAdobe Fillableフォームに入力するのが好きです。このコードをどのように動作させるかについてのアドバイスをいただければ幸いです。私はVBAには比較的新しいので、私の最大の疑問は、コードのどの部分がAdobeであり、どの部分がAccessの部分であるのだろうか。アクセスのための私のフィールド名のアクセスレポートのPDFへの書き出し可能なフォーム

いくつかある:受取人Extended_Payee、依頼日を確認し、請求書番号などのAdobe形で私のフィールド名の いくつかは:などの受取人、今日の日付、請求書番号、

これは私がこれまで持っている符号化である - 私はちょうど明確化のようなコードのどの部分に日干しフィールドを反映しなければならないだろうし、どの部分がアクセス からする必要があります:あなたのコードが作成する機能がある

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 

答えて

0

とAcroExch.appのインスタンスを実行し、変数によって参照されるPDFドキュメントを開きます、フォームを検索し、値で塗りつぶして保存します。すべてのコードはAccessによって実行されます。

それはAcroExch.AVDocのAPIに依存しますので、これは「アドビ特有の」コードです:フィールドで

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

    jso.getField("CheckForm[0].Page1[0].Payee_Extended_Payee[0]").Value = "Payee Extended_Payee" 
    jso.getField("CheckForm[0].Page1[0].Address[0]").Value = "Mailing Address" 
    jso.getField("CheckForm[0].Page1[0].City[0]").Value = "Mailing Address" 
    jso.getField("CheckForm[0].Page1[0].State[0]").Value = "Mailing Address" 
    jso.getField("CheckForm[0].Page1[0].Zip_Code[0]").Value = "Mailing Address" 
    jso.getField("CheckForm[0].Page1[0].Description_of_Expense[0]").Value = "Comments to Include on Remin" 
    jso.getField("CheckForm[0].Page1[0].Check_Request_Date[0]").Value = "Installer_or_Owner" 
    jso.getField("CheckForm[0].Page1[0].Invoice_Number[0]").Value = "Installer_or_Owner" 
    jso.getField("CheckForm[0].Page1[0].Invoice_Date[0]").Value = "Installer_or_Owner" 
    jso.getField("CheckForm[0].Page1[0].Total_Amount[0]").Value = "Installer_or_Owner" 
    jso.getField("CheckForm[0].Page1[0].Other[0]").Value = "Installer_or_Owner" 
    jso.getField("CheckForm[0].Page1[0].GL1[0]").Value = "Installer_or_Owner" 
    jso.getField("CheckForm[0].Page1[0].AU1[0]").Value = "Installer_or_Owner" 
    jso.getField("CheckForm[0].Page1[0].A1[0]").Value = "Installer_or_Owner" 
    jso.getField("CheckForm[0].Page1[0].AMOUNT1[0]").Value = "Installer_or_Owner" 
    jso.getField("CheckForm[0].Page1[0].GL2[0]").Value = "Installer_or_Owner" 
    jso.getField("CheckForm[0].Page1[0].AU2[0]").Value = "Installer_or_Owner" 
    jso.getField("CheckForm[0].Page1[0].A2[0]").Value = "Installer_or_Owner" 
    jso.getField("CheckForm[0].Page1[0].AMOUNT2[0]").Value = "Installer_or_Owner" 
    jso.getField("CheckForm[0].Page1[0].GL3[0]").Value = "Installer_or_Owner" 
    jso.getField("CheckForm[0].Page1[0].AU3[0]").Value = "Installer_or_Owner" 
    jso.getField("CheckForm[0].Page1[0].A3[0]").Value = "Installer_or_Owner" 
    jso.getField("CheckForm[0].Page1[0].AMOUNT3[0]").Value = "Installer_or_Owner" 
    jso.getField("CheckForm[0].Page1[0].Amount_Total[0]").Value = "Installer_or_Owner" 
    jso.getField("CheckForm[0].Page1[0].Requestor[0]").Value = "Installer_or_Owner" 
    jso.getField("CheckForm[0].Page1[0].Approving Manager[0]").Value = "Installer_or_Owner" 
    jso.getField("CheckForm[0].Page1[0].Extension[0]").Value = "Installer_or_Owner" 
    jso.getField("CheckForm[0].Page1[0].Email_Address[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) 

値は式によって設定されます。

FormNameは、フォームの名前である
jso.getField("FormName[0].Page1[0].FieldName[0]").Value = NewValue 

PDF文書FieldName - フォーム内のフィールド名とNewValue - このフィールドに入力する値。

+0

アレクサンダーに感謝してくれてありがとう!私はお詫びしますが、私は明確であることを確認したいだけです。当初はコードで何かを変更する必要がありますか? Accessレポートのボタンをクリックして、PDFフォームテンプレートを開き、レポートのすべてのデータを入力し、その請求書に固有のファイルとして保存したいと思っています[Payee Payee_Extended] + [Invoice_Number] + [Check_Request_Date] – pthomas

+0

私は次のようにコードを更新しました: – pthomas

+0

あなたはあなたがそれを記入し、同じpdfファイルを保存するたびにそれを除いて私のためにやっているようです。新しいファイルを編集するには、ファイルを新しい場所/名前にコピーし、そこから開く必要があります。開いてから新しいファイルを開くときは、 'FileCopy FileNm、newFileNm'を追加するだけです。If avDoc.Open(newFileNm、" ")Then' –

関連する問題