概要
宛名ラベルの印刷の際に、複数部数を設定するとページ単位での複数印刷になります。 ここでは、1 つのレコードを連続して複数印刷する操作を、レポートのイベントプロ シージャで行う方法を紹介します。 - レポートのデザインビューで、ツールボックスからテキストボックスのツールを クリックし、詳細 セクションに非連結のテキストボックスを追加作成しま す。非連結のテキストボックスのプロパティを下記のように設定してください。 プロパティシートを表示するには、テキストボックスを選択して [表示] メニュー の [プロパティ] をクリックするか、ツールバーの <プロパティ> ボタンを クリックします。
┌──────┬──────┐
│ プロパティ │ 設定値 │
├──────┼──────┤
│ 名前 │ CNT │
├──────┼──────┤
│ 可視 │ いいえ │
└──────┴──────┘
- レポートの"詳細" セクションのプロパティにイベントプロシージャを設定しま す。[OnFormat/ フォーマット時] プロパティにフォーカスを移動し、右側の [ビルド] ボタンをクリックします。[ビルダの選択] ダイアログが表示されます ので、[コードビルダ] を選択します。
- モジュールウィンドウで、下記のコードを入力します。
------------------------------------------------------------------------
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
Dim 指定枚数 As Integer
指定枚数 = 4 '出力する回数を設定
If IsNull([cnt]) Then [cnt] = 1
If [cnt] <> 指定枚数 Then
Me.NextRecord = False
Me.MoveLayout = True
Me.PrintSection = True
End If
End Sub
------------------------------------------------------------------------
- [デバッグ] メニューの [ロード済みモジュールのコンパイル] をクリックする か、ツールバーから [ロード済みモジュールのコンパイル] ボタンをクリック します。エラーが表示されなければ、モジュールウィンドウを閉じてください。 エラーが表示された場合は、入力ミスがないかどうか再度チェックしてください。
- [OnPrint/印刷時] プロパティにフォーカスを移動し、右側の [ビルド] ボタンを クリックします。[ビルダの選択] ダイアログが表示されますので [コードビル ダ] を選択します。
- モジュールウィンドウで、下記のコードを入力します。
------------------------------------------------------------------------
Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer)
Dim 指定枚数 As Integer
指定枚数 = 4 '出力する回数を設定
If [cnt] <> 指定枚数 Then
[cnt] = [cnt] + 1
Else
[cnt] = 1
End If
End Sub
------------------------------------------------------------------------
- [デバッグ] メニューの [ロード済みモジュールのコンパイル] をクリックする か、ツールバーから [ロード済みモジュールのコンパイル] ボタンをクリック します。エラーが表示されなければ、モジュールウィンドウを閉じてくださ い。エラーが表示された場合は、入力ミスがないかどうか再度チェックして ください。
- レポート名を "ラベル 得意先" として保存し、デザインビューを閉じます。
- "ラベル 得意先" レポートを印刷プレビューで表示します。同じレコードが 連続して 4 回表示されます。
解説サンプルプロシージャでは、[指定枚数] 変数に 4 を代入していますが、フォームの テキストボックスを参照して枚数を指定する方法もあります。 例)指定枚数 = Forms![フォーム名]![コントロール名]
注意 詳細" セクションの [KeepTogether/同一ページ印刷] プロパティの値が [はい] に 設定されていないと、正しく印刷されない場合があります。
|