次の方法で共有


[Access2013] レポートのページフッターを1ページ目だけ表示したとき、総ページ数も表示できるようにしたい

質問

2015年6月15日月曜日 4:00

こんにちは。お世話になります。

 【環境】
 ・Windows7 64ビット
 ・Access2013
 
 【現状】
   レポートのページフッターを1ページ目だけ表示するために、
 下記のURLの情報を参考にしましたが、
 レポート上で、[Pages] を使用するとページフッターが表示されなくなってしまいました。
 
 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12116461337

 Private Sub ページヘッダーセクション_Format(Cancel As Integer, FormatCount As Integer)

    If Me.Page = 1 Then
        Me.ページフッターセクション.Visible = True
    Else
        Me.ページフッターセクション.Visible = False
    End If
    
End Sub

 

【質問】
 レポートのページフッターを1ページ目だけ表示しつつ、
 総ページ数も表示する方法を教えてください。
 よろしくお願いします。

すべての返信 (8)

2015年6月15日月曜日 8:18 ✅回答済み | 1 票

こんにちは

残念ですが、これはあきらめたほうがいいかと思います。
Accessのレポートは、Pagesを使用するか否かで内部処理が変わるようです。
テキストボックスの自動拡張などの機能があるため、内部的に一度すべてフォーマッティングしてページ数を出しているようです。
また、Pagesを使っていないと Screen.ActiveReport.Pagesに値が入ってくれません

どうしてもやるとなると、
・総ページ数は外部変数として自分で渡す
・そのページ数は、プレビューを非表示で表示させ、プログラミングで総ページ数を取得して一度閉じ、
 それを外部変数として渡してもう一度表示する
という方法が考えられます

内部的にはレポートを2度開くことになるので、重い処理だと利用に耐えないことも考えられます
もし、テキストボックスの自動拡張などなく、レコード件数からページ数が計算できる というのであれば、その値を最初から計算して外部変数として渡してやればよいと思います。

どなたか他によい解決策をお持ちだといいのですが・・・


2015年6月15日月曜日 8:03

直接の回答ではありませんが、以下のような考え方ではダメなのでしょうか?

■1ページ目
レポートフッター:表示、ページフッター:非表示

■2ページ目以降
レポートフッター:非表示、ページフッター:表示(ページ番号が表示される)

★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/


2015年6月16日火曜日 7:26

trapemiyaさんこんにちは。
 
返信ありがとうございます。

レポートフッターを使用するということですが、
レポートフッターは確かレポートの最終ページに1回だけ印刷されるものだったと思うのですが、
1ページ目に表示するのは具体的にどのイベントで記述すればよろしいでしょうか。

試しに、レポートにレポートフッターを追加すると、
2ページ目のサブレポートのデータ描写が終了した時点でレポートフッターが表示されてしまい、
ページ下部に表示できませんでした。

詳しい内容を教えていただけないでしょうか。
よろしくお願い致します。


2015年6月16日火曜日 7:27

SIMOZさんこんにちは。

返信ありがとうございました。

やはり諦めたほうがよさそうですね・・・。
どうしてもの場合は、
教えていただいたレポートを2度開く方法で行いたいと思います。

ありがとうございました!


2015年6月16日火曜日 7:48

レポートフッターを使用するということですが、
レポートフッターは確かレポートの最終ページに1回だけ印刷されるものだったと思うのですが、
1ページ目に表示するのは具体的にどのイベントで記述すればよろしいでしょうか。

すみません。何か頭の思考がおかしくなっていたようです。レポートフッターってその通りですね。ごめんなさい。
代替案として、ページフッターの部分全体を白い四角で覆っておいて、1ページ目はそれを非可視にし、2ページ目以降は可視にして隠してしまうというのはいかがでしょうか? クリスタルレポートで私が良く使う手ですが(ただしページフッター部分で実装した経験はない)、Accessでそれが実現できるかどうかは試していません。同じような方法として、文字色を白と黒で切り替えるという方法も考えられます。

★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/


2015年6月17日水曜日 7:24

trapemiyaさんこんにちは。

返信ありがとうございます。

ご提案していただいた方法ですが
2ページ目の表示させていない部分が空白になり詳細部分が少なくなると思うのですが・・・。
上記でも大丈夫な時はご提案していただいた方法を試してみたいと思います。

ありがとうございました!


2015年6月17日水曜日 7:42

なるほど。ページフッターを表示させたくない目的は詳細部分を多く印刷したいということなんですね。
その場合に思い付くのはページフッターの高さを0にしてしまう方法です。検索しただけですが、以下の情報を見つけました。

No40598.レポートのページフッターの高さ
http://www.accessclub.jp/bbs3/0115/superbeg40598.html

#実際に試してなくてごめんなさい。

★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/


2015年6月18日木曜日 2:25

trapemiyaさんこんにちは。

返信ありがとうございました。

ご提案していただいた方法を元に、
レポートのページヘッダーイベント内で
ページフッターセクションの高さを変化させると
全ページでページフッターが表示されなくなってしまいました。

Pagesは使う方向で、
2ページ目以降ページフッターを表示させず、
詳細部分を多く印刷するという目的に変えたほうがいい気がしてきました。

#とはいっても、この案もいろいろ試行錯誤してるのですが実現できていないです・・・。

もう少し、皆様からのご意見をお待ちしたいと思います。

ありがとうございました!