電子書籍の厳選無料作品が豊富!

お世話になっております。
Access2003のレポートで下記のようなコードで価格の合計を求めようとしています。

1ページですとこれで合計は表示されるのですが、レポートが2ページ以降になると最終ページの合計が表示されます。

最終ページの最後にすべての合計を出したいと思っています。
ご教授いただければ幸いです。よろしくお願いいたします。


Option Compare Database
Dim a As Variant
Private Sub ページヘッダーセクション_Format(Cancel As Integer, FormatCount As Integer)
a = 0
End Sub

Private Sub グループヘッダー3_Print(Cancel As Integer, PrintCount As Integer)

a = a + Me.価格

End Sub

Private Sub レポートフッター_Print(Cancel As Integer, PrintCount As Integer)

Me.合計 = a

End Sub

A 回答 (1件)

コードの2行目以降、つまり、自分で追加したすべてのコードを削除し、それぞれのセクションのイベントプロシージャの設定も解除して下さい。



つまり
Option Compare Database
のみにします。

そうしたらレポートフッターにある「合計」と名前の付いたテキストボックスが「非連結」と表示されている筈なので、そのテキストボックスをクリックして、編集モードにします。

テキストボックスの中にカーソルが出たら
=Sum([価格])
と入力します。

あとは、何もしなくて良いです。勝手に合計が計算されて、一番最後の最終ページの最後にすべての合計が1つだけ出ます。

なお、
ページヘッダーセクション_Format
のプロシージャは、ページが変わるたびに呼ばれるので「1ページ目の最初でaが0になり、2ページ目の最初でまたaが0になり、3ページ目の最初でまたaが0になり、最終ページの最初でまたaが0になり」と言う事になります。

結果「Me.合計」は「最終ページのみの合計だけ」になります。

なお「=Sum([価格])」と書いたテキストを置く場所により、印字結果は以下のように異なります。
・レポートの「詳細」に置いた場合
「価格」と同じものが印字される
・グループヘッダーに置いた場合
グループの先頭の「価格」と同じものが印字される
・グループフッターに置いた場合
グループごとの価格の合計が印字される。
・ページヘッダーに置いた場合
各ページの先頭の「価格」と同じものが印字される
・ページフッターに置いた場合
ページごとの価格の合計が印字される。
・レポートヘッダーに置いた場合
先頭、1件目の「価格」と同じものが印字される
・レポートフッターに置いた場合
すべての価格の合計が印字される。

このように「グループ毎の合計」「ページ毎の合計」「全体の合計」が簡単に印字出来るので、小細工は一切要りません。書いたコードは全部削除しましょう。
    • good
    • 1
この回答へのお礼

早々のご回答ありがとうございました。
非常にアホなひとり芝居をしていました。(汗)
解説までしていただきましてよくわかりました。
ありがとうございました。

お礼日時:2006/11/30 18:40

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

関連するカテゴリからQ&Aを探す