#395 | 部数を指定して印刷するには? | レポート、VBA | |
DoCmdオブジェクトの「PrintOut」メソッドを使うと、レポートの「印刷部数」をプログラム上から指定して印刷することができます。 次のプログラム例では、"rpt受注"レポートを複数部印刷します。PrintOutメソッドの5番目の引数に数値を指定することで、その数の部数をまとめてプリンタに出力することができます。 この引数には、たとえばフォーム上のテキストボックスで指定された値を設定したいといったこともあると思いますが、ここでは、レポートのレコードソースに含まれる"社員コード"の数を集計し、その数だけ印刷するものとします。つまり、対象社員に同じレポートを一括印刷して配布したいというケースを想定しています。 Public Sub PrintCopies() Dim dbs As Database Dim rst As Recordset Dim strSQL As String Dim strRptName As String Dim lngCopies As Long 'レポート名を設定 strRptName = "rpt受注" 'レコードソースに含まれる社員コードの数を取得 Set dbs = CurrentDb strSQL = "SELECT 社員コード FROM 受注 GROUP BY 社員コード" Set rst = dbs.OpenRecordset(strSQL) 'その数を印刷部数に設定 lngCopies = rst.RecordCount rst.Close 'レポートをプレビューで開く DoCmd.OpenReport strRptName, acViewPreview 'レポートを指定部数出力 DoCmd.PrintOut , , , , lngCopies 'レポートを閉じる DoCmd.Close acReport, strRptName End Sub |
|||
|
Copyright © T'sWare All rights reserved |