MS Access

Accessの複雑な処理のレポート帳票で1ページのみ出力されるはずが2ページ目になぜかページヘッダーが出るトラブルに見舞われ

投稿日:

レポートのデザインビューでいうと上から、レポートヘッダー、ページヘッダー、グループヘッダー、詳細、グループフッター、ページフッター、レポートフッター・・・というような、結構細かいレポートを作っている。

以下を参考に、出力対象が1件であろうが10件であろうが、罫線を10本分引いてくれるレポートにしようとしているのだが。

レコードがない場合も用紙の最後まで罫線を出力する NextRecord版 – hatena chips

しかし、客先の環境のせいなのかわからないが、出力対象が1件であっても、ページヘッダーが2ページ以降に出てしまう。

ものすごくはまった。
数日間、悩んだ。

で、最終的にはやっとわかったのだが、

1.グループフッターの改ページが「カレントセクションの前」にしていた。これを「しない」に変更。

2.参考サイトで公開しているコードの「Private Sub グループフッター1_Format」イベントの「Me.グループフッター1.ForceNewPage = 2  ‘カレントセクションの後で改ページ」の行を削除した。
改ページのコントロールはこの場面では不要な気がするんだけど、どうなんだろうなあ(参考WEBの管理人さんはあまりにも凄腕なので、なにか思惑があってこうしたのだろうが)。

自分の場合は、これで解決した。。。他の人はどうなのかわからんけど、参考になればしてください。

ちなみに、今回のトラブルは原因を見つけるのに大分苦労した。こちらも私の苦労をせずに済む人がいれば、参考になればとメモ。

 

トラブル 原因の見つけ方の検討:

・ページヘッダーや詳細に背景色(赤とか青とか目立つ色)を設定してプレビュー時の色を見てどこが影響しているのかあたりをつける。

・余白調整(余白が原因のことも)

・客先のプリンタのドライバーをインストールしてみる(機種により余白がちがったりすることも)。

・NoData時に、どのように表示されるかをチェック。

・ページ幅を広げてみる。又は狭めてみる(A4用紙の幅をはみ出していることが)。

・コードをすべてコメントまたは削除してみる(プログラムとそれ以外の切り分け)。

・印刷時に自動拡張されるコントロールは無いかチェック(はみ出る一因になっていないか)。

・プロパティの改ページ設定(セクションの前後)チェック(一番怪しい?)。

-MS Access

執筆者:

関連記事

no image

VBAで英字混じりの引数から数字のみを取り出す関数

たとえば、abcABC123456XYGという引数から、123456のみを取り出したい。 VBAの組み込み関数で、適当なのがありそうだけど、無いみたい。 カスタム関数を作るにも、これはという情報がググ …

no image

サブフォームで苦労

Access覚書。 サブフォームつきのフォームからダイアログ・フォームを呼び出す。 ダイアログフォームのリスト形式のレコードをクリックしたら、呼び出し元のフォームのサブフォームに値を追加して、次のため …

no image

Accessクエリでのフィールド名は同じので重複できる

Accessではクエリの中で同じフィールド名を使えない! ・・・とずっと思っていた。 なので、テーブルで使っているフィールド名でクエリの結果を出す必要があった際には、クエリを二つ作ってそれぞれ前処理 …

no image

AccessからExcelフォーマットでファイルに出力するサンプルコード

Excelから外部データの接続の際に,ユーザー定義関数を含んだクエリを指定するとエラーになったので、こんなやり方で対処。 Private Sub btnB2_Click() DoCmd.OutputT …

no image

ExcelブックをAccessで読みたいときにリンクテーブルを使わない方法があったとは・・・知らなかった

とある業務で、Access内でExcelブックをリンクテーブルで読む・・・という使い方をしてきた。 (AccessのmdbはNASにおいて共有している。Excelのxlsも同じく) これはこれで便利な …