dポイントプレゼントキャンペーン実施中!

ACCESS2002のレポートで3行目の後、改行させて最終ページに合計を表示させたい。
また、最終ページの合計欄の表示場所をデータが増えても固定させたい場合はどのようにしたら良いのでしょうか?

A 回答 (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
--------------------------------------------------------------

レポートフッターの高さが詳細と違う場合は、
全レコード数を数えて比較したり、もう少し違う書き方をしないといけないです。

この回答への補足

上記のやり方でイメージ通りの結果が得られました。
それで、最後に記載されたとおり、合計の欄をもう少し下にずらして
(フッターの高さと詳細が違くなってしまう?)
詳細欄と合計欄の位置が重ならないようにするにはどうしたらよいのでしょうか?

補足日時:2009/09/16 13:21
    • good
    • 0
この回答へのお礼

いろいろ試したら合計だけ別に計算させて表記したらなんとか思い通りの表記ができました。
でも、上記のやり方も大変勉強になりました。
ありがとうございました。

お礼日時:2009/09/17 11:54

合計は必ず最終ページに表示させる、ということであれば、


レポートフッターに合計を配置してください。

レポートフッターは、
レポートをデザインビューで開いて、
レポート上で右クリックし、「レポート ヘッダー/フッター(H)」を選択すると追加できます。

また、
このときできた、「レポートフッター」の上で右クリックし、
「プロパティ(P)」を開いて、
「改ページ」(書式タブの中にあります)で「カレントセクションの前」を指定すると、
合計は最終ページに出ます。

この回答への補足

すみません。質問の仕方が悪かったですね。
最終ページにはデータも表記させたいのです。
普通は、レポートフッターに合計を配置すればデータの数が変動しても最終ページに表示されますが、その位置がデータのすぐ下に配置されるのでそれをデータが変動し(1行表示されても3行表示されても)合計はいつも最終ページの一番下に表示させたいのです。
よろしくお願いいたします。

補足日時:2009/09/16 09:15
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!