#04 TreeViewコントロール(DB連動3)

TreeViewコントロールをサブフォームのナビゲーションとして使うサンプルです。フォームにTreeViewコントロールとサブフォームを配置し、TreeViewコントロールの選択によってサブフォームに表示する明細データを切り替えるようにします。

ここでは、TreeViewコントロールに都道府県名を表示します。サブフォームは「tbl都道府県HP」テーブルをレコードソースとした単票形式のフォームで、「tbl都道府県HP」テーブルには各都道府県ごとのホームページの画像ファイル名が保存されています。フォームのレコードが移動するタイミング(Currentイベント)でイメージコントロールの"Picture"プロパティをそのレコードの「画像ファイル名」フィールドの値に切り替えています。
サブフォームおよびメイン/サブフォームの関係については、一般的なAccessのフォームの作り方と同じです。


ポイント

NodeClickイベント
あるノードをクリックしたときに発生するイベントです。クリックされたNodeオブジェクトがイベントプロシージャの引数として渡されます。

通常のメイン/サブフォームにおいては、メイン側のコントロールとサブ側のコントロールを「リンクフィールド」として関連付けるだけでデータの結合が可能となります。しかしTreeViewコントロールにはValueプロパティがないため、このような簡単な方法ではリンクはできません。

そこで、リンク用のテキストボックスをメインフォーム上に1ケ配置します。これは非表示のテキストボックスとし、これとサブフォームとを関連付けるようにします。そして、TreeViewコントロールで、あるノードが選択されたら(NodeClickイベントが発生したら)、その情報をそのテキストボックスに代入するようにします。つまり、非表示のテキストボックスを介して、間接的にTreeViewコントロールとサブフォームをリンクさせるわけです。


サンプルフォームの実行例

"青森県"を選択したところ


"栃木県"を選択したところ


"関東"を選択したときは親ノードのキーが"root"なので何も表示しないようにしています



サンプルDBのダウンロード

comctl_04.lzh(comctl_04.mdb)

【注】LZHに含まれるファイルはすべて同じフォルダに解凍してください!

| Index | Prev | Next |

 

Copyright © T'sWare All rights reserved