• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数ページにまたがるサブレーポートの見出しを印刷したい。)

複数ページにまたがるサブレーポートの見出しを印刷したい

このQ&Aのポイント
  • 印刷時に複数ページにまたがるサブレーポートの見出しを印刷する方法について質問です。
  • 現在の設定では、複数ページにわたる場合、詳細部分の入金伝票や納品伝票の見出しが次のページ以降に印刷されません。
  • Access2000/XPとWin2000/XPの環境での対応策を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#7099
noname#7099
回答No.1

 サブレポート側にページヘッダー、ページフッタがありますが、そこに指定しても無理だったと思います。(ACCESS2000では)  行の少ない(改ページする可能性が小さい方)をサブレポートとして最初に設定し、行の多い方をメインに取り込んで、改ページしてもいいように、メインのページヘッダーに見出しを設定してはどうでしょう。 -------------------------------------------- ページヘッダー [取引先名]-[郵便番号]-[住所]-[電話]-[メール] 納品伝票の見出し(最初のページまで出ます) -------------------------------------------- グループヘッダー [入金伝票レポート(サブレポート、一覧表、ページヘッダに入金伝票の見出しを設定)] 納品伝票の見出し -------------------------------------------- 詳細 [納品伝票レポート(一覧表)] --------------------------------------------- ただ、この方法だと、取引先ごとの最初の1ページ目にも納品伝票の見出しが出てしまいます。 VBAをうまく組めば、取引先ごとの最初の1ページ目だけページヘッダーの納品伝票の見出し部分の可視を「いいえ」にできると思います。 いかがでしょうか。

abcxyz3000
質問者

補足

ページヘッダというのはあくまでもメインレポートのページヘッダであり、サブの方は無効になってしまうんですね。 となると、VBAで可視/不可視を設定しないとダメですか。 今回、レポートが複数にまたがる可能性の少ないサブレポートを先にもってくるというアドバイスをいただいていますが、できれば、どちらも複数ページにまたがることを前提としてできると助かります。 となると、改ページ時に現在、どちらのサブレポートを印刷しているのかを取得しないといけなくなります。この場合、どのいタイミングでどの値が取得可能でしょうか? よろしくお願いします。

すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#7099
noname#7099
回答No.3

相当複雑な帳票のようですね。。。(あとのメンテナンスがタイヘンそう) グループを得意先CDだけでなく、 得意先CD、得意先名、得意先住所。。。(同じだけど)と出力順を指定して、それぞれグループヘッダーとフッターありにすれば、いくつでも、使えますけど。。。(理論上はね)(うまく動くかなー) ただ、サブレポートをたくさん使うと、死にたくなるほど処理が遅いですよ。件数多いと累乗に遅くなります。得意先300件で半日かかりで印刷、なんてこともありました。(いいプリンタに買い換えると早くなりました) ユニオンクエリーに(または、テーブルに出力)して、区分により印刷する項目を変えるほうが早い可能性もあります。(でも、ユニオンクエリーもこれまた遅い。。。) プリンタオブジェクトで記述できるなら、複雑なことしないほうがいいかもしれませんよ。

abcxyz3000
質問者

補足

>相当複雑な帳票のようですね。。。 どうなんでしょうか。。 今のところレコードソースが取引先テーブル、入金テーブル、納品テーブルの3つで、それを1ヶ月ごとに、取引先ごとに印刷したいと思っているわけで、一般的な感じもするんですが。。。 実は、プリンタオブジェクトで作成したもの(入金テーブルはページをまたがないことを前提)が現在あるのですが、作り替えが憂鬱でACCESSに頼ろうと思いました。 OCXでCristal ReportやActive Reportsがありますが、そっちで簡単にできるなら、ちょっと、検討してもいいかと考えています。 >グループを得意先CDだけでなく、 >得意先CD、得意先名、得意先住所。。。(同じだけど)と出力順を指定して、 そうでしたね。 それも試してみたいと思います。 ただ、ACCESSのファイル(レポート)って壊れやすくないですかね?あれこれやっておかしいと思って、元に戻したつもりが、それでも元通り動かないってのを何度か経験しました。

すると、全ての回答が全文表示されます。
noname#7099
noname#7099
回答No.2

うーん。どうでしょうか、うまくいくでしょうか。 私の案にプラスして、 1)グループヘッダー時に、入金伝票フラグを上げ、納品伝票フラグを下げる 詳細時(入金伝票は終わっているので)入金伝票フラグを下げ、納品伝票フラグを上げる。 改ページ印刷時に、フラグが上がっている伝票見出しを印刷する。 ということが、ACCESSがきっちりと判断できるなら可能かもしれません。(すみません、そこまでしたことありません) さもなければ、 2)先に入金伝票の行数を数え、1定数以上ある得意先は取り分けておいて、別プログラムで出力する、方法もありますが、 出力順が変わってしまうので、おすすめできませんね。。。 あとは 3)先に入金伝票の行数を数え、一定数以上ある得意先は「詳細別紙」として入金伝票部分だけを印刷しない。(出力順は変わらない) ただし、別プログラムで入金伝票の部分だけを印刷して、元の得意先の印刷物の中に手作業で差し込んでいく。(まあ、封筒に詰めるときに気をつければどうにかなるかもしれませんが、ミスの可能性がありますね。) 力不足でごめんなさい。なにかのヒントになればよいのですが。

abcxyz3000
質問者

お礼

グループヘッダとグループ詳細にサブレポートを配置し、それぞれのイベントでフラグ操作することによりページヘッダの切り替えは可能な感じです。ただ、最大、グループヘッダ、グループ詳細、グループフッタの3カ所しか利用できないので、サブレポートも最大3までの感じです。 それ以上の場合は、あきらめて、プリンターオブジェクトでシコシコ書こうと思います。 ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A