Microsoft Access 掲示板

レポートでページが分かれての合計表記??

4 コメント
views
4 フォロー

Access初心者で申し訳ありません。

Accessのレポート作成で、罫線を最後まで罫線を出力し、ページ数が1ページの場合は
フッター部分で設定し下部分に表記する事は、こちらの下記のページを参考に作成はできたのですが
件数が多くなった場合、合計が1ページ目にも2ページ目にも表記されてしまいます。
合計値を1ページ目には表記せずに最終のページのみ表記する方法がないでしょうか。

参考ページ:https://hatenachips.blog.fc2.com/blog-entry-47.html

説明がへたくそで申し訳ありません。

何かいい方法があれば教えてください。

yossi
作成: 2020/02/22 (土) 17:06:33
最終更新: 2020/02/22 (土) 19:38:37
通報 ...
1

件数が多くなった場合、合計が1ページ目にも2ページ目にも表記されてしまいます。
合計値を1ページ目には表記せずに最終のページのみ表記する方法がないでしょうか。

yossiさんが参考にしたコンテンツの現象 及び 要望を正確に申し上げるなら

  グループ毎のページ数が、( 1ページに収まらず )複数ページに及ぶ場合でも
  合計金額が全てのページに表示されてしまうため、
  グループ毎の最終ページにのみ、合計金額を表示する方法が知りたい

ではないでしょうか。

だとすると
参考になさるのは、こちらのほうがいいでしょう。
 

用紙の最後まで罫線を出力し、グループ毎に Page/Pages を表示する
掲示板で下記のような質問がありました。 hatena の Microsoft Access 掲示板|レポート背景にPDFを使用しデータを1行ずつ印刷する帳票作成|ツリー表示 > スレッドNo.2075 ここで問題になったのが、下記の2つを同時に設定すると、ページ数がグループ毎にならずに、すべて「1/1、1/1・・・」となってしまうという症状が発生するということです。 レコードがない場合も用紙の最後まで罫線を出力する - hatena chips ...
fc2

 
上記のコンテンツでダウンロードできる RptFixRowPagePages.accdb
のレポート R_納品書 を例にして説明すると

■ 手順1

 
受注コード のグループヘッダーへ、テキストボックスを新たに1つ配置します。
このテキストボックスの各プロパティを

  名前:        txtGC
  コントロールソース: =Count(1)
  可視:        いいえ

とします。


■ 手順2

 
このレポートは、ページ毎に最大15レコード表示できるようですから
ページヘッダーに配置されている
合計金額を表示するためのテキストボックス( 担当者氏名の直下にある )
のコントロールソースを

=IIf([Page] = 1, [合計], Null)

から

=IIf([Page] = -Int(-[txtGC] / 15), [合計], Null)

に変更します。


以上です。

3

ちなみに、yossiさんが参考にした レコードがない場合も用紙の最後まで罫線を出力する関数
のレポートに対して、ご希望の表示にする場合は

受注コード ヘッダーのフォーマット時イベントに

Private Sub グループヘッダー0_Format(Cancel As Integer, FormatCount As Integer)
    Me.Page = 1
End Sub

と記述すれば、あとは 先の回答と同じ手順で出来るでしょう。

 
※ テキストボックス txtGC は、受注コードのグループフッターに配置すればいいでしょう。

RptFixRowFunc_07.accdbのレポートは
  関数の引数により、20行分の罫線を出力していますが、
  ページフッター( の高さ )で、2行分を消費するため、
  1ページに表示可能なデータの最大行数は 実質 18 となっています。
 
  したがって、合計金額表示用テキストボックスのコントロールソースは
   =IIf([Page] = -Int(-[txtGC] / 18), [合計], Null)

 
※ 今回は、[印刷時拡張] プロパティが「 いいえ 」のため、
  簡単にグループ毎のページ数が算出可能ですが、
 「 はい 」だと、この方法は使えず、難易度は高くなります。

4
yossi 2020/02/24 (月) 10:25:50 a8ff4@e5a99

mayuさん、ありがとうございます。

最初に教えて頂いた内容で何とか形になることができました。

適切なアドバイスありがとうございました😆