Accessテクニックのホームへ戻る

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

 

レポートの部数、印刷の向き、用紙サイズを設定する

 

レポートの印刷部数、印刷の向き(縦、横)、用紙サイズ(A4,A3,B5,...)を設定します。コンボボックスからレポートを選択すると、レポートに設定されている印刷部数、印刷の向き、用紙サイズが表示されます。さらに、選択したレポートがプレビューモードで表示されます。部数、印刷の向き、用紙サイズを変更したときは、[設定]ボタンをクリックしてレポートに反映します。

 

 

1. 新規データベース作成

Accessを起動したら、ツールバーから新規作成のアイコンをクリックして、作業フォルダworkW173.mdbを作成します。

 

2. レポート、モジュールをインポート

Windowsのエクスプローラから、173.mdb(このページの最後からダウンロードできます)をダブルクリックして開きます。データベースウィンドウのオブジェクトから[レポート]をクリックしたら、レポート(rptSample1, rptSample2, rptSample3)をドラッグしてW173.mdbのデータベースウィンドウにドロップします。同様の手順で、モジュール(basHelper)をドラッグ&ドロップします。レポート、モジュールがインポートされたら、173.mdbを閉じます。

 

 

3. 新規フォーム作成

データベースウィンドウのオブジェクトから[フォーム]をクリックして、右側の新規オブジェクトのショートカットから[デザインビューでフォームを作成する]をダブルクリックします。フォームのデザインビューが表示されたら、ツールボックスのコントロールウィザード無効になっていることを確認します。

 

ツールボックスからコンボボックステキストボックスオプショングループコマンドボタンをクリックしたら、図のようにフォームの詳細セクションに作成します。ツールバーからプロパティのアイコンをクリックして、プロパティウィンドウを表示したら、表のようにプロパティを設定します。

 

フォームにコンボボックス、コマンドボタンを作成する

 

 

フォームとフォームに作成したコントロールのプロパティ

コントロールの種類

プロパティ

フォーム

ポップアップ

はい

コンボボックス(レポート)

名前

cboReports

値集合タイプ

値リスト

テキストボックス(部数)

名前

txtCopies

オプショングループ1(印刷の向き)

名前

fraOrientation

オプションボタン

オプション1

1

オプション2

2

 

 

オプショングループ2(用紙サイズ)

名前

fraPaperSize

オプションボタン

オプション1

A4

9

オプション2

A3

8

オプション3

B5

13

 

 

コマンドボタン

名前

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

 

ダウンロード (173.lzh)