<HOME  <お願い事項  <Access2000 TOP   <Access97 TOP   <サイト内検索
 倉庫>TreeViewを使う


tree_kensaku2.zip--33kb  解凍後( tree_kensaku2.mdb)244kb 

このMDBを使用するためには前提条件があります。ダウンロードしても使えない可能性があります。
下記の解説をお読みいただき、内容をご理解いただいた後、ダウンロードしてください。


本来、MS-AccessのコントロールではなくVisal Basicのコントロールになると思われる「TreeView」というコントロールを使用するためのサンプルです。
いわゆる、エクスプローラー風の画面を作るためのコントロールです。↓左側のが、TreeViewです。右側は普通のリストボックス。

これは↑「MS-Accessチョー入門部屋_コンボボックスを使った絞込みのしくみの最後」でチラッとご紹介しているフォームです。
といっても、作り方や詳細をお話しているわけではなく、こういうフォームを作るのはとても難しいので、止めた方がいいです、と申し上げております。

いや、マジで、これ難しいです。というか、誰が動作保証するの???っていうくらい、資料が少ない。
まず、MS-Access側のヘルプやその他ドキュメントには、使い方などは一切載ってません。
Visual Basicのヘルプやドキュメント類の説明も非常に難しくわかりにくい。

わたしは、Visual Basicのリファレンスを見て、試行錯誤の上動かせるようになりましたが、あまりお薦めではないと思います。
特に、上の例は、全国の郵便番号を調べるためのデータベースを基にしたものなんですが、データ件数が全部で12万件以上あります。
市区町村は3500くらいなんですが、その3500余をフォームの読み込み時に取り込んで割り当てる処理をやっています。
なので、フォーム開くのにエライ時間がかかる!!!
全然リレーショナルデータベースじゃないし!!!


なので、このページでダウンロードいただける tree_kensaku2.mdbは、上記のような郵便番号一覧ではなく、もちっと小さいテーブルを使った小ぶりなやつです。
だって、MDBのファイルサイズが10MBもあるんですよ・・・。


【前提条件】

TreeViewは、MS-Accessだけインストールされていても使えない場合があります。
そのMDBファイルの中で、「Microsoft Windows Common Controls 6.0」というライブラリを参照設定しておく必要があるのです。

(Visual Basic Editorのウィンドウのメニューバー[ツール]→[参照設定]でこの画面を表示)

根本的に、このコンポーネントがインストールされていないPCでは、TreeViewを使うことができません。
TreeView自体は表示されはしますが・・・TreeViewとしての仕事をしないです。
つまり、TreeViewをクリックしたりツリーを展開したときなどの処理が、Access上から実行できないわけです。

上記のライブラリがある場合は、チェックしておくだけでOKです。
ない場合は・・・あきらめてください。。。。わたしにもどうすることもできない。
Windowsは「借り物競争」みたいなOSなので、いろんなソフトでファイルを共有することが多々あります。
何かをインストールすればこのコンポーネントが使用可能になるのかもしれませんが、それをお調べすることは、とてもとてもできないです。
申し訳ないですが、どうぞご理解とご了承のほど、お願いいたします。


【補足】

ツリー構造をあらわす用語として「ノード」というものがあります。
語源は「接点」とか「接合点」とかいう意味の英単語です。

上のようなツリーの図を書き表したときの、各四角のことを、「ノード」と呼びます。
「各ノードに、テーブルから読み込んだ各フィールドの値を1つ1つ代入する」というのが、処理の概要になります。
しかし、ノードの書き方を載せているドキュメントが非常に少ない!!
コード書いちゃえば簡単なんでしょうが・・・。


ダウンロードいただけるMDBファイルの中には、下のような3つのテーブルがあり、それぞれお互いに関連しあうフィールドを持っています。
まあいわゆる、リレーショナルデータベースのごくごく普通の形です。

上記のテーブルを、フォームのロード時に読み込んで、左側のTreeViewを作っています。
最初に、1階層目まで開いた状態にしてありますので、テーブル1の内容が見えているみたいな感じになってます。

で、ツリーを展開し、第2階層目のノードをどれかクリックすると、右側のリストボックスにテーブル3の内容が出てくるようにしてあります。

ノードの概念がつかめれば、いろいろ応用が利くと思うんですが、あまり、お薦めなコントロールではありません。
でもどうしてもどうしても使ってみたいんだという方は・・・参考にしてください。。。

(以上)




[倉庫入口]