標準モジュールにレポート印刷関数を作成。
--------------------------------------------------------------------
'==================================================
'レポートを印刷orプレビュー
'
'ReportName:レポート名
'PrintKbn:0=印刷 0<>プレビュー
'==================================================
Public Function PrintReport(ReportName As String, PrintKbn As Variant)
Dim prtName As String
Dim setPrt As Printer
Dim rpt As Report
'警告非表示
DoCmd.SetWarnings False
'レポートを開く
DoCmd.OpenReport ReportName, acViewPreview
prtName = "プリンター名"
Set setPrt = Application.Printers(prtName)
Set rpt = Reports(ReportName)
'レポートにプリンターを設定
rpt.Printer = setPrt
'用紙サイズ
rpt.Printer.PaperSize = acPRPSA4
'給紙用法
rpt.Printer.PaperBin = acPRBNAuto
'印刷向き
rpt.Printer.Orientation = acPRORPortrait '縦
rpt.Printer.Orientation = acPRORLandscape '横
'余白
rpt.Printer.TopMargin = Round(10 * 56.7, 2)
rpt.Printer.BottomMargin = Round(20 * 56.7, 2)
rpt.Printer.LeftMargin = Round(30 * 56.7, 2)
rpt.Printer.RightMargin = Round(40 * 56.7, 2)
If PrintKbn = 0 Then
'印刷
DoCmd.PrintOut
'プレビューを閉じる
DoCmd.Close acReport, ReportName, acSaveNo
End If
DoCmd.SetWarnings True
End Function
--------------------------------------------------------------------
Private Sub Button_Click()
'DoCmd.OpenReport "レポート名", PrintKbn
'↑を↓に変更
PrintReport "レポート名", PrintKbn
End Sub
--------------------------------------------------------------------
これでデータベースにプリンター名や印刷設定を登録し、PrintReport内でセットすれば、ユーザー毎に印刷するプリンターを切り替えれる。
プログラムのリリース時もACCESSごと上書きで大丈夫!
用紙サイズ・給紙方法がなかったり文字列で指定したい場合は↓
用意されていない用紙サイズ・給紙方法を文字列で取得
0 件のコメント:
コメントを投稿