Microsoft Access 掲示板

レポートについて

5 コメント
views
4 フォロー

現在レポートを作成しております.
出力時、1ページに5行に分けてデータを出力しており、
縦に1行12個のデータを表示し計70個のデータが1ページに表示されます.
印刷時の上下余白は各10mmとなっております.
この状態で別PCで開くとなぜか1行11個のデータしか表示されておりませんでした.
その別PCは自分のPCとの違いはほぼないのですが、画面の表示スケールが異なっていました.
(自分のPC100%、別PC125%)
試しに自分PCを125%に変えたのですが1行12個のデータを表示しました.
原因不明なのでお解かりの方いらしゃいましたら、お返事いただければ幸いです.

セブン
作成: 2022/07/07 (木) 13:34:21
通報 ...
1

出力時、1ページに5行に分けてデータを出力しており、

1行1レコードということですか。
そして、5レコード毎に改ページしているということですか。

5レコード毎に改ページは、どのように実現してますか。

その別PCは自分のPCとの違いはほぼないのですが、

使用するプリンターは同じですか。

2
セブン 2022/07/08 (金) 10:07:32 修正 da640@b49ca

すいません自分の知識と説明のしかたを間違えてました.
画像添付しますので確認お願いします.

使用プリンターも同じです

印刷プレビュー(アクセス内の)ですでに違いが発生しています.

添付画像は普段のPCでのプレビューです.
この縦の一行のレコードが一つ減っている状況です?

追記 添付画像変更しました.
あくまでイメージになります画像1

3

この縦の一行のレコードが一つ減っている状況です?

この1行は次ページに表示されてますか。

VBAなどて改ページを制御しているわけではなく、自然に改ページされているのでしょうか。

だとしたら、下余白を少し減らしてみたらどうなりますか。
現状、10mmとのことですので、9mmにしてみるとか。
それでだめなら、少しずつ減らしてみてください。

4
セブン 2022/07/08 (金) 13:44:44 修正 da640@b49ca

自動的に改ページされます
一応今7.8mmに設定して各環境とも1ページに同じレコードが入っている状況です.
ただ自分的にはどの環境においても1ページあたりのレコード数が変わらないように
したいと考えております.
理由としては
1ページに50レコードが入るします.
テーブルを元にこのレポートを作っており、このテーブルの中には60レコードあります.
そうすると改ページし10レコードだけ2ページ目に表示されます.
この2ページ目はレコードがある部分だけ罫線が入り他は何もない空白になります.
この状態があまり見栄えがよろしくないのと、手書きに追記出来るように
レポート出力時空データを作り罫線を作っています.
この空データを作る際 テーブルのレコード数からレポートの1ページの最大レコード数を割りそこから足りない数だけ空データを作る処理を行っています.
この1ページの最大レコード数をコードで決め打ちしているため変わってしまうと、
3ページ目に空白のデータだけが表示されるようになります.

以上の理由によりどの環境においても1ページあたりのレコード数が変わらないように
したいと考えております.
長くなりましたがお力添えいただけると幸いです.

5

レポートの詳細セクションのフォーマット時のイベントプロシージャに下記のようなコードを記述することで、強制的に10レコード毎に改ページします。


'詳細のフォーマット時イベント
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
    If Me.CurrentRecord Mod 10 = 0 Then
        Me.詳細.ForceNewPage = 2  'カレントセクションの後で改ページ
    Else
        Me.詳細.ForceNewPage = 0  '改ページしない
    End If
End Sub

下余白はなるべく小さくしておいて、自動改ページしないようにしておきます。

この2ページ目はレコードがある部分だけ罫線が入り他は何もない空白になります.
この状態があまり見栄えがよろしくないのと、手書きに追記出来るように
レポート出力時空データを作り罫線を作っています.

そういう目的なら、下記で紹介している方法で空データを作成することなくご希望のことか可能です。

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

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

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