MS Access Tips/Sample and VBA and Blog customize etc...

ページヘッダー付き複数列レポートのバグ?

下図をみてください。

列数2 でページヘッダーを表示させてつつ、2×5のラベルをページにきっちりと表示させようと設計したレポートのプレビューです。

2ページ目は想定通り、きっちり収まっているのですが、1ページ目は上余白がなぜか設定よりおおきくなって、そのため1行分すくなくなってしまいました。

レポートのプレビュー

(レイアウトが分かりやすいようにセクションに背景色をつけています。セクション間の空白は行間隔、列間隔を設定しているからです。)

レポートヘッダーがあるからでは、と思われるかも知れませんが、レポートヘッダーは非表示になってます。

AC2003、AC2007、AC2010 で確認しましたが、どのバージョンでも同じ結果です。どうも限りなくバグに近い仕様のようです。

再現条件と解決策を検証してみます。

難易度:

再現条件

実は、このような症状がでるのはかなりレアケースです。レアケース故にあまり認知されていなくて、また症状が出たときにどのように対策すればいいのかとまどうことになりそうです。

  1. [ページ設定]-[レイアウト]の「列数」が2以上に設定してある。
  2. [ページ設定]-[レイアウト]の「行間隔」が0より大きい数値が設定してある。
  3. [ページ設定]-[レイアウト]の「印刷方向」が「上から下へ」に設定してある。
  4. レポートヘッダーは非表示で、ページヘッダーが表示されている。

以上の設定だと、1ページ目の上部に、上余白+行間隔 分の余白が発生します。2ページ目以降は想定通り上余白のみになります。

原因の考察

ちょっと実験をしてみました。試しにレポートヘッダーを表示させてみます。するとレポートヘッダーとページヘッダーの間にレイアウトで設定した行間隔の隙間でできます。
レポートヘッダーとページヘッダーの隙間のプレビュー

しかし、「印刷方向」を「左から右へ」に設定変更するとレポートヘッダーとページヘッダーの行間隔の隙間はなくなります。
レポートヘッダーとページヘッダーの隙間なしのプレビュー

「上から下へ」への時は、レポートヘッダーとページヘッダーの間に行間隔を空けて、「左から右へ」の時は、空けないのは、何か理由があって実装した仕様なのか、単なるバグなのか、理解に苦しみます。納得できる理由が思いついた人はぜひコメントしてください。

もし万が一納得できる理由があったとしても、レポートヘッダーを非表示にした場合でも、この行間隔の隙間が残るというのは、バグとしか思えませんね。

解決策

レポートヘッダーとページヘッダーの間の行間隔が原因と分かれば、そこから解決策を探れます。

ページヘッダーを最初のページだけ表示させないようにする。その代わりにレポートヘッダーを表示させて、ページヘッダーと同じ表示になるように設定する。

具体的には、レポートの「書式」タブの「ページヘッダー」プロパティを「レポートヘッダー以外」と設定します。これで、最初のページにはページヘッダーは表示されません。

レポートヘッダーを表示させて、高さをページヘッダーと同じに設定して、ページヘッダーのコントロールを全て選択してコピーし、レポートヘッダーに貼り付けます。

これで下図のように1ページ目と2ページ目以降の上余白の差はなくなりました。

対策済みレポートのプレビュー

拍手する

Leave a reply






Trackbacks

trackback URL
http://hatenachips.blog34.fc2.com/tb.php/291-66f49b50
該当の記事は見つかりませんでした。