このエントリーをはてなブックマークに追加

データの無い所にも罫線を引く~其の弐 (Accessレポート)

Access 2010バージョンのレポートを使って、データの一覧表を表形式で作成しています。ここでは、サンプルとして都道府県と県庁所在地の一覧表を作っています。

都道府県一覧表こちらの表では、一行ごとに罫線を引くようにしています。しかし、最終ページでは、データが最後まで終わると、その後は、空白となり罫線も引かれなくなります。今回は、この真っ白な部分(データの無い空白部分)にも罫線を引いていきたいと思います。そうすることにより、ページ上に真っ白な部分を無くし、見栄え良く整えるようにしていきます。まずは、データの無い所にも罫線を引く~其の壱(ページリンク)でいくつかあるポイントを順にみていきます。

「データの無い所にも罫線を引く~其の壱」のポイント

まず大きなポイントのひとつが、詳細セクションに「改ページ」を入れることです。これを正しく配置しないと、レポートは正しく表示されません。

次のポイントは、「Mod演算子」を使って、「改ページ」の有効と無効を制御することです。

NextRecordプロパティ

では、ここからが、「データの無い所にも罫線を引く~其の壱」の記事の続きの内容となります。これまでに「改ページ」の制御ができましたので、次にデータの表示を設定していきます。今回のサンプルでは、レコード数は47都道府県の47件、レポートの1ページ当たりの表示件数は20件です。このふたつの数値を比較しながら、VBAを記述していきます。そこで、レポートの「詳細セクション」にレコードが最初から順番に一件ずつ表示されていくことを想定して順に考えていきます。まず、最初の1ページ目の表示は、普通に表示させます。そして、20件目が表示されると、「GYO Mod 20 =0」となり、ここで「改ページ」が「True」となり、2ページ目に移ります。同じように40件目で改ページとなり、3ページ目に移ります。ここで、この3ページ目では、最後のレコード、つまり47件目のデータが表示されてデータ表示はここで終わるのですが、この47件目を表示させるときに特殊な設定をしていきます。

ではまず、1件目から46件目までの設定を次のようにコードを書きます。変数「DAT」には「47」が格納されているので、条件分岐で、「GYO」が「DAT」よりも少ないときのコードを書きます。「Me.NextRecord = True」は通常通り次のレコードを表示させます。レコードの内容を表す三つのテキストボックスも「Me.テキストボックス.Visible = True」で普通に表示させます。


このコードを「詳細_Format」イベントの16行目から21行目に記述します。


そして、最後のレコード(47件目)が表示されたとき、つまり、「GYO = DAT」になったときに、「Me.NextRecord = False」と記述します。そうすることで、同じレコードつまり47件目のレコードをもう一度繰り返して表示させるのです。ただし、同じ内容を繰り返して表示させることになるので、三つのテキストボックスを「Visible = False」にして表示させないようにします。ただし、罫線だけは、引き続き表示させるので、結果としてデータの無くなった行は罫線だけが表示させることができるのです。では、「詳細_Format」イベントの22行目から32行目に次のコードを書きます。変数「GYO」が変数「DAT」の数を超えたときの処理は条件分岐の「Else」以下のコードで処理をしています。

では、最後のポイントを

「データの無い所にも罫線を引く~其の参」(ページリンク)

の記事で見ていきたいと思います。

Report.NextRecordプロパティ(Microsoftサポートページ)

 

このエントリーをはてなブックマークに追加

コメントを残す

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

コメントフィード

トラックバックURL : http://gyoumuka.work/wp-trackback.php?p=1354

PAGE TOPへ戻る