<HOME  <お願い事項   <Access2002 TOP   <Access2000 TOP   <サイト内検索
 MS-Access97超入門>サブレポートとサブレポート
 サブフォーム     サブレポート 



■サブフォームを作る#2

[注文でーす]を基にしたフォームをメインフォームと呼ぶとすると、[明細でーす]を基にしたフォームの方はサブフォームという呼び方になります。

で、このふたつのテーブルは一対多の結びつきになるので、メインフォームからサブフォームを眺めたとき、同じ注文番号のレコードが[明細でーす]の方には複数存在する可能性があるわけですね。さっきの見積書、思い出してください。商品を3つ見積依頼したとしたら、行番号が1,2,3...。同じ見積番号のレコードが、明細の方に3レコード存在することになるんです。

え?意味がぜんぜんわかんない?ものぐさしないで、もっと想像力働かせてくださいよ〜。

で、多レコードを表示するわけですから、この場合、サブフォームの方は表形式のフォームが望ましいわけなんですが、表形式のフォームが面倒くさかったら、データシートでもいいんだよ、という意味ですね。上の画面は。

え・・・データシートって何かって???・・・データシートビューってう表示モードあったじゃないですか。
あれですよあれ。表形式ってなんだか忘れちゃったって?んー・・・あとでおさらいしておいてくださいね。


後は、ふつうのフォームウィザードで出てくる画面と同じです。まあ、お好きなようにしてください。

最後に名前付ける画面になります。そのままでもいいですが、この動作でふたつのフォームをいっぺんに作ることになります。
できれば、サブフォームの方はサブフォーム用のフォームだってわかるような名前にするとよいと思います。。

サブフォームの名前を後で変更しようとすると、あちこち影響が出て結構めんどうですんで、後悔しない名前を選んでくださいね。
[アリ]と[キリギリス]とか付けちゃうと、わけわかんなくなってきっと後悔しますよ・・・。


と、なんかじわじわ動きがあって、下のようなフォームがどどーんとできあがりました。

まずはじっくり観察してください。フォームの中にフォームが埋まっている様子、おわかりいただけますか?
上の図でいうところのオレンジ色で囲んだところが、サブフォームです。
この部分は表形式のフォームで、注文する品数が多いほど、縦にどんどん伸びていく性質を持つわけですね。


じゃあ、ひっくり返してデザインを見てみましょうか。まさか、どうやるのか忘れちゃったとか言わないですよね・・・。
左上の、青し三角定規のツールボタンですよ。ぜひ歌いながらクリックしてください。

あれ・・。サブフォームがあったところ、真っ白ですね。
いちおうこれは、メインフォームのデザインビューなんで、メインフォームから見るとサブフォームの埋まっているところはフォームじゃなくて、サブフォームコントロールという名前の、テキストボックスとかラベルとかとおんなじ扱いの部品に過ぎないんです。だからこんな風に、「この辺にフォームが埋まってるみたいよ」というつつましい表示になってるんですね。

メインフォームとサブフォームは一対で働きますが、実際には独立したふつうのフォームがふたつあることになります。
でも、開くのはメインフォーム[注文フォームでーす]の方だけです。[明細サブフォームでーす]の方を単独で開くことはありません。
[注文フォームでーす]を開くと、[明細サブフォームでーす]の方も中身がみえるようになっています。

開くのが[注文フォームでーす]の方だけだからって、[明細サブフォームでーす]を削除しちゃったり名前を変更したりすると、明細部分表示されなくなっちゃいますからね。


じゃ、まずはメインフォームの方、少し手を入れて体裁整えましょう。覚えているプロパティや書式機能があったら、いろいろ使ってみてください。

例えば[注文日]の書式欄にyyyy/mm/ddと入力すると、西暦が4桁表示になります。

その他、いろいろプロパティを設定して工夫してみてください。色を変えてみたり、テキストボックスの配置や大きさ、文字の大きさなどを変えてみるのもいいでしょう。


メインフォームの方がだいたいよければ、次にサブフォームの方にいきましょう。デザインビューの状態になってますか?
メインフォームの中の、サブフォームコントロールの部分をダブルクリックします。と、サブフォームの方がデザインビューで開いてくることになってます。

出てこないですか?もしかしたら、サブフォームコントロールの中にカーソルが入っちゃってて、ダブルクリックがきかないのかもしれないですね。
どっかサブフォームコントロールの外側をクリックして一呼吸置いてから、改めて白いところをダブルクリックしてみてください。

出ました?

こっちは表形式のフォームですからね。

テキストボックスの長さとか調節して、閉じましょう。閉じるとき「保存するかどうか」というメッセージが出てきたら、[はい]の方をクリックします。
まあ、ふつうのフォーム編集作業と同じです。

だいたいデザインはよさそうですか?
よければ、メインフォームを保存しましょう。
左上にフロッピーディスクの模様のツールボタンありますよね。これクリックすることで、作成途中のオブジェクトの保存ができましたよね。
お、思い出してくださいよう。

保存ができたら、フォームビューにひっくり返します。どうやってやるのかって???むっ・・・。
一番左上のツールボタンですよ。


いかがでしょう。少しイメージ変わりましたね。でも、なんか不格好ですねぇ。

サブフォームのデザインを整えて、横幅を少し縮めたんですけど、メインフォームから見たサブフォームコントロール自体も小さくしないと、自動的にサイズ調整を行ってくれるわけじゃなさそうですね。

サブフォームコントロール、ちょっと縮めましょうか。