- ベストアンサー
ACCESSのレポートで改行や合計のやり方
ACCESS2002のレポートで3行目の後、改行させて最終ページに合計を表示させたい。 また、最終ページの合計欄の表示場所をデータが増えても固定させたい場合はどのようにしたら良いのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 罫線を最後まで表示 http://support.microsoft.com/kb/404909/ja の応用になりそうですね。 簡単な方法だと、 レポートフッターが詳細と同じ高さである、という限定条件はありますが、 こんな方法があります。 レポートフッターに合計欄を配置し、 詳細の最下に改ページコントロールを配置します。 (詳細の高さの数値と、改ページコントロールの上位置の数値を同じにしてください。) ページヘッダー、詳細、レポートフッターのそれぞれに、 フォーマット時のイベントを書きます。 イベントプロシージャ全部で -------------------------------------------------------------- Option Compare Database Option Explicit 'これはなくてもよい Dim lngRow As Long Private Const lngPageRows As Long = 10 '1ページのレコード数 Private Sub ページヘッダーセクション_Format(Cancel As Integer, FormatCount As Integer) lngRow = 0 End Sub Private Sub レポートフッター_Format(Cancel As Integer, FormatCount As Integer) lngRow = lngRow + 1 If lngRow = lngPageRows Then Me.ラベル5.Visible = True 'このへんはレポートフッターのコントロールを書いてください。 Me.テキスト4.Visible = True Me.NextRecord = True Else Me.ラベル5.Visible = False Me.テキスト4.Visible = False Me.NextRecord = False End If End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) lngRow = lngRow + 1 If lngRow = lngPageRows Then Me.改ページ.Visible = True Else Me.改ページ.Visible = False End If End Sub -------------------------------------------------------------- レポートフッターの高さが詳細と違う場合は、 全レコード数を数えて比較したり、もう少し違う書き方をしないといけないです。
その他の回答 (1)
- mumu_bb
- ベストアンサー率50% (5/10)
合計は必ず最終ページに表示させる、ということであれば、 レポートフッターに合計を配置してください。 レポートフッターは、 レポートをデザインビューで開いて、 レポート上で右クリックし、「レポート ヘッダー/フッター(H)」を選択すると追加できます。 また、 このときできた、「レポートフッター」の上で右クリックし、 「プロパティ(P)」を開いて、 「改ページ」(書式タブの中にあります)で「カレントセクションの前」を指定すると、 合計は最終ページに出ます。
補足
すみません。質問の仕方が悪かったですね。 最終ページにはデータも表記させたいのです。 普通は、レポートフッターに合計を配置すればデータの数が変動しても最終ページに表示されますが、その位置がデータのすぐ下に配置されるのでそれをデータが変動し(1行表示されても3行表示されても)合計はいつも最終ページの一番下に表示させたいのです。 よろしくお願いいたします。
お礼
いろいろ試したら合計だけ別に計算させて表記したらなんとか思い通りの表記ができました。 でも、上記のやり方も大変勉強になりました。 ありがとうございました。
補足
上記のやり方でイメージ通りの結果が得られました。 それで、最後に記載されたとおり、合計の欄をもう少し下にずらして (フッターの高さと詳細が違くなってしまう?) 詳細欄と合計欄の位置が重ならないようにするにはどうしたらよいのでしょうか?