0
IDごとにAccess 2010レポートを印刷したいとします。VBAを使用してID別に印刷する
私のレポート構造は次のようであると言うことができます:
ID1, Name1, phone1, address1,
ID1, Name2, phone2, address2,
ID2, Name, phone, address,
ID3, Name1, phone1, address1,
ID3, Name2, phone2, address2,
各IDは、このような個別の.pdfファイルに書き込まれるようにするために私がしたいことは次のとおりです。
ID1.pdfは含まれています
をID1, Name1, phone1, address1,
ID1, Name2, phone2, address2,
ID2.pdfは含まれています
ID2, Name, phone, address,
ID3.pdfは含まれています
ID3, Name1, phone1, address1,
ID3, Name2, phone2, address2,
は、私は、次のコードを作成しました:
Private Sub PrintPDF_Click()
Dim rst As DAO.Recordset
Dim OutputFile As String
Dim FileSavePath As String
FileSavePath = "C:\Test\"
Set rst = CurrentDb.OpenRecordset("SELECT distinct ID FROM Report_Query ORDER BY _ID")
With rst
Do Until .EOF
DoCmd.OutputTo acOutputReport, Bericht1, acFormatPDF, FileSavePath & ![ID] & ".pdf", True
.MoveNext
Loop
End With
End Sub
ネーミングはよく働いているが、それはすべてのレコードを出力します。 ID1.pdf、ID2.pdf、ID3.pdfがありますが、各ファイルにはすべてのレコードが含まれています。
IDごとに1つのファイルを作成するにはどうすればよいですか?
レコードセットループの内側 - 単一IDにフィルタリングされたレポートを開いてレポートを閉じる、レポートを閉じる、次のレコードに移動する、単一IDにフィルタリングされたレポートを開く、レポートを出力する、レポートを閉じる、移動する... – June7
idごとにクエリを実行できます。 'SELECT distinct ID FROM Report_Query ID =' ID1 'ORDER BY _ID' – Maddy
のように、すべてのIDを繰り返し処理する外部ループがあります。 'DoCmd.OutputTo ...'行の前に、もう1つのクエリを入れてください。 '私は、ID = rst.ID'のreport_queryから欲しいデータを選択する....のようなもので、' With First ... End With'を取り除き、 'Do Until rst.EOF'と' rst.MoveNext'を使います。 – jsotola