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

帳票フォームでウィンドウの高さをレコード数に合わせる

ポップアップフォームや最大化してないフォームの時にレコード件数が少ないとき、最終レコードとフッター間に不必要な空白ができます。これをなくして、フォームウィンドウの高さをレコード件数に合わせてピッタリにしたいという場合のTipsです。

帳票フォームでウィンドウの高さをレコード数に合わせる

難易度:

Docmd.MoveSizeでウィンドウ高さを設定する

やりたいことは、下図のスペースをなくしたいということですね。

スペースをなくしたい

まずは必要な高さの計算ですが、フォームヘッダーの高さ+フォームフッターの高さ+詳細セクションの高さ×レコード数
で求められます。新規行を表示させるなら、レコード数に1加算しておくといいでしょう。

フォームヘッダーの高さ+フォームフッターの高さ+詳細セクションの高さ×(レコード数+1)

フォームの開く時のイベントプロシージャを下記のように記述します。

.MoveLast は正確な件数を取得するためのおまじないです。

これでいいかとフォームを開いてみると

数行表示されない

なぜか、有安さんと高城さん(押され隊)が表示されません。

フォームのタイトルバー、ウィンドウ枠、スクロールバー(レコード移動ボタン)の高さも加算する必要があるからです。

これらの高さを取得するのは結構難しいです。環境で変わる可能性があるので。

ではどうしたらいいでしょう。

InsideHeight で高さを設定する

そうです。実はフォームには InsideHeightプロパティがあるのです。これで、フォームのタイトルバー、ウィンドウ枠、スクロールバーの高さを除いた内側の高さを取得、指定できるのです。

これで最終行とフッターのすきまがなく、ピッタリの表示になります。

ピッタリ表示

あと、レコード件数が多いとデスクトップからはみ出すので、最大値を決めておくといいでしょう。

新規行も表示したい場合は、rcn に 1 を加算しましょう。

新規行も表示


拍手する

Leave a reply






Trackbacks

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