<HOME  <お願い事項  <Access2000 TOP   <Access97 TOP   <サイト内検索
 MS-Access2002チョ〜入門部屋>MS-Accessを使いこなすために・・
  (←別ウィンドウでサブメニュー)



7.サブフォームについて

じゃあ、このフォーム、一度閉じましょう。
データベースウィンドウを見ると、フォームがふたつできてることお分かりいただけますよね。



「労働サブフォーム」のほうを開いてみてください。

コンナカンジの、ほっそ長い表形式のフォームになってますね。
こうして開けば普通のフォームなんですけれど、これが、サブフォームとして「社員フォーム」の中に埋め込まれるのです。
普段開くのは「社員フォーム」というフォームだけなんですが、「労働サブフォーム」という方を消したり名前を変えたりしてはいけませんよ。いちおう、この二つのフォームは、独立して存在していながらも関連しあっていますからね。
じゃあ、このフォームは、特に何もいじらないで閉じて・・・。



ではあらためて、「社員フォーム」というフォームをデザインビューであけてみましょう。

ひええ。。。
かなり複雑な構造のフォームになりましたね。でも、基本的な操作方法は同じなんです。
テキストボックスの大きさなどを調節してみてください。



サブフォームのある部分は、これはこれでフォームなんですけれど、メインのフォームから見ると、「サブフォームを表示する部分」ということで、扱い自体はテキストボックスとかと同じになります。
枠のところをクリックすればハンドルが出てくるし、ドラッグすれば移動したり大きさが変わったりします。

慣れないと操作しにくいと思うんですが・・・。
上の図で、ピンク色の枠線で記したところが「メインフォームの中の、サブフォームを表示するための場所」です。
俗に「サブフォームコントロール」と呼んでいます。
で、その中に、「労働サブフォーム」という名前のフォームを呼び出して表示しようっていうわけです。
これが、サブフォームの基本的な仕組みです。

中に表示されるべきサブフォーム自体も、メインフォームのデザインビューでいろいろ編集できるようになってます。
よく見ると、ちゃんとサブフォームがデザインビュー状態で表示されてますよね。
で、このサブフォーム自体の大きさを左右するのが、右端の「サブフォームの境界線」(黄緑色の印をつけたところ)です。
この幅と、サブフォームコントロールのサイズは、自動的に連動してはくれないので、手作業で様子を見ながらサイズ調節していく必要があります。
いくらサブフォーム自体を横に狭く作っても、サブフォームコントロールの横幅も狭まってくれるわけではないのです。
ちょっとここのところが、イラつくとこかもしれないですね。。。


慣れないと扱いが難しいタイプのフォームなんですが、必ず必要になってくると思いますので、じっくり観察してみてくださいね。

いくらなんでもこのままじゃデザイン的にも使いにくいと思うんで、フォームのデザインや、プロパティなどをいろいろと変えてみましょう。
わたしはまず、メインのフォームのほうの各テキストボックスとラベルの大きさを整えてみました。
これがけっこう手間のかかる作業でしたよね。
フォームビューと切り替えながら、ちょうどよい大きさに整えていってみてください。

それと、サブフォームの中のテキストボックスも、ちょうどよさげな大きさに整えてみました。
後々の話になりますが、きちんとサブフォームとして機能していることが確認できれば、サブフォームの中の「社員番号」っていうテキストボックスは、なくてもかまわないんです。デザインがだいたい整ったら後で削除しちゃおうと思うんで、とりあえずそのほかの「労働日」と「労働時間」のテキストボックスのことだけ考えて調節していってください。



フォームビューにしてみると、こんなカンジか・・・。

サブフォーム部分って、実際に表示させたい列は「労働日」と「労働時間」だけなんですよね。
しかも、基本的に1か月分・・・30行くらいです。
細長くして、右側に表示されるようにしてみましょうか。多分そのほうが使い勝手がよくなりそうな気がする。

こんなカンジでどうでしょう。

サブフォームコントロールの移動は、ちょっとそう探しにくいかもわかりませんが、サブフォームコントロールをうまいことクリックするとちゃんとポチポチとハンドルが出ますから、ハンドルをドラッグすればサイズ変更、ハンドル以外のフチのところをドラッグすれば移動(マウスポインタの形が手の形になります)、という法則はテキストボックスとかと同じです。
少しずつゆっくり調節していってみてください。
そしたら、サブフォーム内の「社員番号」のテキストボックスはもういらないので、取っちゃいましょう。
あってもいいんですけど、場所とりますもんね。
Shiftキーを押しながら、ラベルとテキストボックスをクリックすれば、両方いっぺんに選ぶことができますね。
そしたら、Deleteキーを押しちゃえば、消えちゃいます。

あとは、サブフォームの「移動ボタン」とか「水平方向のスクロールバー」とかもいらないと思うんで、それぞれ「なし」「垂直のみ」に変更してみるといいかもしれません。
それから、サブフォームの上にある「労働」っていうラベルも、なんか意味不明なんで、削除しちゃうか、何かもっとわかりやすい標題に変えてみるといいでしょう。