Accessでフォームの並べ替え結果をレポートにも反映させる|VBAで実行

フォームで並べ替えしたレコードを、そのまま並べ替えした状態でレポートでも印刷する方法を紹介します。

前回「フォームのフィルター(抽出)結果をレポートにも反映させる」を掲載しましたが、それと同じやり方になりますので、フォームとレポートの作成方法は前回のページを参照してください。

フォームのOrderByプロパティとOrderByOnプロパティをレポートに代入するため、フォームが開いた状態でないとエラーになります。

BackHome Backレポート


■ フォームから開くレポートの作成

フォームヘッダーにコマンドボタンを配置し、クリックするとレポートを開くようにします。
コマンドボタンを配置し、クリックするとレポートを開くようにする

ボタンのクリックイベントでレポートを開くVBAです。
ボタンのクリックイベントでレポートを開くVBA

Private Sub コマンド9_Click()
    DoCmd.OpenReport "R_都道府県人口", acViewPreview
End Sub

レポートのプロパティ[開く時]で、[イベント プロシージャ]を選択します。
レポートのプロパティ[開く時]で、[イベント プロシージャ]を選択

レポートがオープンした時のVBAです。
ここでフォームの並べ替え条件を代入しています。
レポートがオープンした時のVBA

・OrderByには並べ替えるフィールドや、並べ替え順が文字列形式で保存されています。
・OrderByOnがTrueの場合、並べ替えを実行します。

Private Sub Report_Open(Cancel As Integer)
    Me.OrderBy = Forms!F_都道府県人口.OrderBy
    Me.OrderByOn = Forms!F_都道府県人口.OrderByOn
End Sub

■並べ替えてレポートを呼ぶ出す
1.フォームを開き、並べ替えるフィールドに移動します。
2.リボンの[ホーム]~並べ替えとフィルター グループの[昇順]か[降順]をクリックします。
3.[印刷]ボタンをクリックします。
フォームで並べ替えを設定し印刷ボタンをクリックする

レポートが開くと、フォームの並べ替え結果が反映されています。
フォームの並べ替え結果が反映されたレポート


BackHome Backレポート

Copyright(C) FeedSoft