![]() |
||
<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の内容が出てくるようにしてあります。
ノードの概念がつかめれば、いろいろ応用が利くと思うんですが、あまり、お薦めなコントロールではありません。
でもどうしてもどうしても使ってみたいんだという方は・・・参考にしてください。。。
[倉庫入口] |