2017-09-11 9 views
0

現在、Accessデータベースを使用してレポートをたくさん作成しています。レポートはクエリをソースとして使用していますが、クエリではフォームを基準として使用してフォームはレポートで使用されるデータです。 次に、レポートをPDFとして保存し、フォーム内をクリックして次のデータセットを実行します。 これは、500件を超えるレポートを作成すると非常に時間がかかります。では、フォーム内のすべてのページを実行し、各レポートをPDFとして保存するための関数、VBAまたはマクロを作成する方法はありますか?フォームからアクセスレポートを作成してPDFとして保存

私のフォームがNorwF命名され、クエリがNorwQあると報告書は、私はそれが理にかなっていると、このPROJEKTがスムーズに実行させるためのより高速な方法があることを願っていNorwRap

です。

+1

はい、 'DoCmd.OutputTo'と' acFormatPDF'に 'OutputFormat'の設定を使用して、そこにあります。しかし、私はあなたのために関数全体を書くつもりはありません。あなたはあなた自身でそれを書いてみたり、あなたのためにそれをする人を払わなければなりません。 –

答えて

0

フォーム上のボタンを配置した場合、背後にあるこのコードは動作するはずです:

Dim rst  As DAO.Recordset 

Dim strReport  As String 
Dim strReportFile As String 

strReport = "NorwRap" 
'Set rst = Me.RecordsetClone 
Set rst = CurrentDB.OpenRecordSet("NorwQ") 'use the query 
Do While rst.EOF = False 

    strReportFile = rst!ID & ".pdf" ' give report name based on field name 
    DoCmd.OpenReport strReport,acViewPreview , , "id = " & rst!ID 
    DoCmd.OutputTo acOutputReport, strReport, acFormatPDF, strOutFile 
    DoCmd.Close acReport, strReport 

    rst.MoveNext 

Loop 
+0

これを今実行するよう試しましたが、st strReportFileをstrReportFile = rst!Property_no_& ".pdf"に変更しました。フィールド名に基づいてレポート名を付けてください DoCmd.OpenReport strReport、acViewPreview、 "id ="&first !Property_no_!しかし、ボタンをクリックすると、保存したいPDFがNorwRap.pdfであり、プロパティーが追加されていないので、空のレポートになります。レポートのフィールド名としてProperty_no_を使用しています。 –

+0

コード設定フォーム内の現在のreocrdを使用する - クエリーからすべてのreocrdが必要な場合は、modにコードを見てください –

+0

レポートに1つのpk "ID"を指定するか、property_noを使用できますレコードセットループに供給するリストが "some"値を持っていれば、レポートを1つのIDまたはProperty_noに制限することができます。Property_noが文字列/テキスト列の場合、値を囲む必要がありますeを引用符で囲みます(一重引用符は大丈夫です)。 –

関連する問題