このエントリーをはてなブックマークに追加

複数のレポートを連続印刷する。

こちらのAccessで作成したフォームサンプルは、コンボボックスに地域番号を入力して、「都道府県(地域別)」ボタンをクリックすると、その地域の都道府県を載せたレポートが表示されるようになっています。

フォーム

都道府県のデータが入っているテーブルには、47都道府県すべてのデータが入っていますが、「都道府県(地域別)」ボタンのクリック時にイベントプロシージャを記述することで、指定した地域のみの都道府県データをレポートに表示させるようにしています。ここでは、「1」から「10」までの地域番号をつけた、10の地域に分けており、こちらはその中の地域番号「7」の「近畿地方」のデータを表示したものです。このイベントプロシージャについては、「条件を指定して、レポートを開く。」のページに載せています。

レポート

指定した地域の都道府県データを印刷するには、このプレビューから印刷できますが、今回は、10ある地域を1ページに1地域という形で、全ての地域を1クリックで、連続して印刷できるように設定していきます。

では、このフォームにコマンドボタンをひとつ追加します。プロパティシートの「書式」タブの「標題」を「印字(全地域)」としています。

フォーム

このコマンドボタンのクリック時イベントに次のコードを記述します。

Private Sub コマンド0_Click()
Dim tID As Integer
Dim dCT As Integer
Dim msg As String
dim ttl as String

msg = "都道府県(地域別)をすべて印刷します。"
ttl = "地域別都道府県印刷"

If MsgBox(msg, vbOKCancel, ttl) = vbOK Then
    For tID = 1 To 10
    dCT = dCount("都道府県", "Q_都道府県", "地域ID =" & tID)
        If dCT = 0 Then
        Else
            DoCmd.OpenReport "R_都道府県", , , "地域ID=" & tID
        End If
    Next
Else
    Exit Sub
End If
End Sub

まず、最初に変数を4つ宣言しています。それぞれ、「tID」は、地域IDを格納する変数、「dCT」は、地域IDごとのレコードの件数を格納する変数、「msg」は、メッセージボックスに表示する文章を格納する変数、「ttl」は、メッセージボックスのタイトルを格納する変数です。

Dim tID As Integer
Dim dCT As Integer
Dim msg As String
dim ttl as String

次に、変数「msg」と「ttl」にそれぞれ、メッセージボックスに表示する文章とタイトルを代入しています。

msg = "都道府県(地域別)をすべて印刷します。"
ttl = "地域別都道府県印刷"

次に、「都道府県(地域別)をすべて印刷します。」という、メッセージボックスを表示させ、「OK」ボタンが押されたときに、印刷し、それ以外のときは、プロシージャを抜けるというコードを「If~Elseステートメント」で記述します。

If MsgBox(msg, vbOKCancel, ttl) = vbOK Then
'印刷する指示を出すコード'
Else
   Exit Sub
End If

印刷する指示を出すコードを、「For~Nextステートメント」を使って、地域IDが「1」~「10」のときまで、繰り返し処理を実行します。まず、「DCount関数」で、該当する地域IDのレコード数を、変数「dCT」に入れます。

For tID = 1 To 10
dCT = dCount("都道府県", "Q_都道府県", "地域ID =" & tID)
Next

そして、該当する地域IDのレコード数が「0」の時は、なにもせず、それ以外の時は、該当する地域IDの都道府県を載せたレポートを印刷します。

If dCT = 0 Then
Else
    DoCmd.OpenReport "R_都道府県", , , "地域ID=" & tID
End If

あらかじめ、レポートの「ページ設定」から、印刷するプリンタを選択しておきます。これで、「印字(全地域)」ボタンをクリックすると、「地域ID」「1」~「10」までのレポートを順に印刷していくことができます。

このエントリーをはてなブックマークに追加

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

コメントフィード

トラックバックURL : http://gyoumuka.work/wp-trackback.php?p=2333

PAGE TOPへ戻る