■ レポートの印刷部数、印刷の向き、用紙サイズを設定する (2002,2003,2007)

図 レポートの部数、印刷の向き、用紙サイズを設定する
レポートの印刷部数、印刷の向き(縦、横)、用紙サイズ(A4,A3,B5,...)を設定します。コンボボックスからレポートを選択すると、レポートに設定されている印刷部数、印刷の向き、用紙サイズが表示されます。さらに、選択したレポートがプレビューモードで表示されます。部数、印刷の向き、用紙サイズを変更したときは、[設定]ボタンをクリックしてレポートに反映します。
1. 新規データベース作成
Accessを起動したら、ツールバーから新規作成のアイコン
をクリックして、作業フォルダworkにW173.mdbを作成します。
2. レポート、モジュールをインポート
Windowsのエクスプローラから、173.mdb(このページの最後からダウンロードできます)をダブルクリックして開きます。データベースウィンドウのオブジェクトから[レポート]をクリックしたら、レポート(rptSample1, rptSample2, rptSample3)をドラッグしてW173.mdbのデータベースウィンドウにドロップします。同様の手順で、モジュール(basHelper)をドラッグ&ドロップします。レポート、モジュールがインポートされたら、173.mdbを閉じます。
3. 新規フォーム作成
データベースウィンドウのオブジェクトから[フォーム]をクリックして、右側の新規オブジェクトのショートカットから[デザインビューでフォームを作成する]をダブルクリックします。フォームのデザインビューが表示されたら、ツールボックスのコントロールウィザードが無効になっていることを確認します。
ツールボックスからコンボボックス、テキストボックス、オプショングループ、コマンドボタンをクリックしたら、図のようにフォームの詳細セクションに作成します。ツールバーからプロパティのアイコン
をクリックして、プロパティウィンドウを表示したら、表のようにプロパティを設定します。

図 フォームにコンボボックス、コマンドボタンを作成する
表 フォームとフォームに作成したコントロールのプロパティ
|
コントロールの種類 |
プロパティ |
値 |
||||||||
|
フォーム |
ポップアップ |
はい |
||||||||
|
コンボボックス(レポート) |
名前 |
cboReports |
||||||||
|
値集合タイプ |
値リスト |
|||||||||
|
テキストボックス(部数) |
名前 |
txtCopies |
||||||||
|
オプショングループ1(印刷の向き) |
名前 |
fraOrientation |
||||||||
|
オプションボタン
|
||||||||||
|
オプショングループ2(用紙サイズ) |
名前 |
fraPaperSize |
||||||||
|
オプションボタン
|
||||||||||
|
コマンドボタン |
名前 |
cmdSave |
||||||||
|
標題 |
設 定 |
|||||||||
4. コードビューに切り替えてイベント登録
ツールバーからコードのアイコン
をクリックしてVBEを表示します。コードビューが表示されたらOption Explicitの直後に、次のイベントとプロシージャを追加します。(イベントプロシージャは、ドロップダウンリストからオブジェクトとプロシージャを選択すると自動生成されますので、手入力する必要ありません。)
Private mstrReport As String
Private Sub Form_Load()
fsFillReportList Me.cboReports
End Sub
Private Sub Form_Unload(Cancel As Integer)
If Len(mstrReport) Then
DoCmd.Close acReport, mstrReport
End If
End Sub
Private Sub cboReports_AfterUpdate()
If Len(mstrReport) Then
DoCmd.Close acReport, mstrReport
End If
mstrReport = Me.cboReports
DoCmd.OpenReport mstrReport, View:=acViewPreview
With Reports(mstrReport).Printer
Me.txtCopies = .Copies
Me.fraOrientation = .Orientation
Me.fraPaperSize = .PaperSize
End With
End Sub
Private Sub cmdSave_Click()
Dim rpt As Access.Report
With Reports(mstrReport).Printer
.Copies = Me.txtCopies
.Orientation = Me.fraOrientation
.PaperSize = Me.fraPaperSize
End With
End Sub
5. フォームを開く
VBEのツールバーから表示(Access)のアイコン
をクリックして、Accessのウィンドウに切り替えます。Accessのツールバーからフォームビューのアイコン
をクリックしてフォームを開きます。コンボボックスからレポート[rptSample1]を選択すると、レポートの部数、印刷の向き、用紙サイズが表示されます。さらに、レポートがプレビューモードで表示されます。レポートの部数、印刷の向き、用紙サイズを変更したときは、[設定]ボタンをクリックしてレポートに反映します。

図 コンボボックスからレポートを選択して部数、用紙の向き、用紙サイズを変える
●解説
レポートのコンボボックスの更新後処理/AfterUpdateイベントでは、選択したレポートをプレビューモードで開いて、部数(Copies)、印刷の向き(Orientation)、用紙サイズ(PaperSize)を取得してフォームに表示します。
Report.Printer.Copies → 部数
Report.Printer.Orientation → 印刷の向き(縦、横)
Report.Printer.PaperSize → 用紙サイズ(A4,A3,B5,...)
‘ コンボボックスの更新後処理イベント
Private Sub cboReports_AfterUpdate()
‘ コンボボックスからレポート名取得
mstrReport = Me.cboReports
‘ レポートをプレビューモードで開く
DoCmd.OpenReport mstrReport, View:=acViewPreview
‘ レポートの部数、印刷の向き、用紙サイズを取得して表示
With Reports(mstrReport).Printer
Me.txtCopies = .Copies ‘ 部数
Me.fraOrientation = .Orientation ‘ 印刷の向き
Me.fraPaperSize = .PaperSize ‘ 用紙サイズ
End With
End Sub
[設定]ボタンをクリックしたときは、クリック時/OnClickイベントでレポートの部数(Copies)、印刷の向き(Orientation)、用紙サイズ(PaperSize)を書き換えます。
‘ 設定ボタンのクリック時のイベント
Private Sub cmdSave_Click()
‘ レポートの部数、印刷の向き、用紙サイズを書き換える
With Reports(mstrReport).Printer
.Copies = Me.txtCopies ‘ 部数
.Orientation = Me.fraOrientation ‘ 印刷の向き
.PaperSize = Me.fraPaperSize ‘ 用紙サイズ
End With
End Sub