- ACCESS
- 2020-12-03 - 更新:2020-12-09
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行に固定することが出来ました。
複数ページに及ぶ場合はページ数により最大行数を切り替えれば表示する行数を切り替えることが出来ます。
他にも改ページコントロールを使って実装する方法もありますが、コードの記述も複雑で稀に行数がおかしくなることもあるので、今回の方法のほうがコードもすっきり短く、行数がおかしくなることもないのでこちらの方法をおすすめします。