カテゴリー
SugiBlog ホームページ制作・システム開発|大阪

Access レポートの罫線を指定した行まで表示する

Accessで納品書や各種明細、伝票などのレポートを作成した場合、ページ下部まで空行が表示されるようにしたいことがあります。
今回は経理で使う振替伝票を例にその方法をご紹介します。

まずは作成したいレイアウトをデザインしてください。

Accessの「グループ化と並べ替え」機能を使います。
振替伝票なので伝票番号でグループ化します。
ここでポイントは伝票番号のグループ化を二重にすることです。

二重にしたグループ化の設定を見ていきましょう。
下にあるほうが外側になりますので、上段が内側になります。

内側のグループはヘッダーなし、フッターありで設定します。

下段の外側グループにはヘッダー・フッター共にありで設定します。

上記のように設定するとこのようになります。

内側のグループのフッターがダミーのフッター、外側のフッターが本来のフッターになります。

本体のフッターにはセクションの後で改行するように設定しておきます。

例えば伝票の行数は12行に固定したい。データは6行分しかない。
この場合、詳細セクションを6行分、ダミーフッターを6行分表示してから本来のフッターを表示するという形になります。

次にVisualBasicのコードを記述していきます。

まず最初にカウント用と最大行数の変数を宣言します。

Dim intCount As Integer
Dim intLimit As Integer

次にヘッダーのフォーマット時にイベントを追加

Private Sub 伝票番号ヘッダー_Format(Cancel As Integer, FormatCount As Integer)
    intCount = 0 ‘カウントを初期化
    intLimit = 12 ‘最大行数を設定
End Sub

詳細のフォーマット時にイベントを追加

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
    intCount = intCount + 1
End Sub

最後にダミーのフッターのフォーマット時にイベントを追加

Private Sub ダミーフッター_Format(Cancel As Integer, FormatCount As Integer)
    intCount = intCount + 1

    ‘行数が最大に満たない間はダミーフッターを表示する
    ‘最大行数に達したら本来のフッターへ移行する
    If intCount <= intLimit Then
        Me.NextRecord = False
        Me.MoveLayout = True
    Else
        Me.NextRecord = True
        Me.MoveLayout = False
    End If
End Sub

以上で完了です。
実際に表示してみると以下のようになります。
フッター全体の背景に色を付けているのではみ出ていますが、オレンジになっているところがダミーのフッターです。

これで行数を12行に固定することが出来ました。
複数ページに及ぶ場合はページ数により最大行数を切り替えれば表示する行数を切り替えることが出来ます。

他にも改ページコントロールを使って実装する方法もありますが、コードの記述も複雑で稀に行数がおかしくなることもあるので、今回の方法のほうがコードもすっきり短く、行数がおかしくなることもないのでこちらの方法をおすすめします。

この記事がお役に立ちましたらシェアお願いします
312 views

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です