<HOME  <お願い事項  <Access2000 TOP   <Access97 TOP   <サイト内検索
 MS-Access2002チョ〜入門部屋>コンボボックスを使った絞込みのしくみ
   



インデックスについて

さてさて、こんな感じで、コンボボックスを複数使うことで、大量のデータから必要なデータだけに絞り込んでいく様子、見ていただきました。
これは基本形なので、細かいところで変更/工夫が必要になる場合もあるかもしれませんが、ここまでのところスムーズに操作できた方は、きっと応用範囲が広がると思いますよ。

お使いのPCのパワーとか、リソースやディスクがどれくらい空いているか、などにもよるんですが・・・。
市区町村や地区名のコンボボックスを開くとき、時間がかかったり、しませんでした?ちょっと待たされるというか、すぐに市区町村の一覧が出てこないというか。。。
もし、なんか一瞬待たされるな・・・と思った方がおられたら、インデックスの設定を行ってみてください。

ダウンロードしていただいたMDBファイルを使っていただいている方は、インデックスの設定をはずしたテーブルを使っていることになるんです。
(わたしはインデックスの設定をしていないので)

インデックスというのは、本とかの巻末の索引と同じようなものです。
本には、第1章から順番に内容が書かれてます。最初から順番に読めばいいんですけど、時にはキーワードとかで、必要なところだけ先に読みたい、ってこと、ありますよね。これと同じように、テーブルも、主キー以外のフィールドでデータを探したい場合に、予めインデックスってモノを作っておくと、検索のスピードが速くなるんです。

今回も、「市区町村」のコンボを開くときって、都道府県コードで絞込みをしてますよね。
だから、[市区町村テーブル]の[都道府県コード]にインデックスを作っておけば、コンボボックスを開くときの処理が、より速くなるはずなんです。

インデックスの設定は、テーブルのデザインビューで行います。
インデックスの設定があったほうがよさげなフィールドをクリックし、「インデックス」プロパティで、「はい(重複あり)」を選ぶのです。

「はい(重複なし)」にしちゃだめですよ。
要は、ダブった値が入らないフィールドになっちゃいますからね。この設定をができるフィールドは、主キーだけ、って考えといてください。
ふつうは、「はい(重複あり)」を選びます。

コンボの絞込みで使うフィールドに対してこの設定をしておけば、コンボボックスを開くときのスピードは多少改善されると思います。

ただし、インデックスをひとつ設定するということは、その分、MDBのファイルサイズが大きくなります。
本の巻末の索引だって、キーワードで検索しやすいようにとわざわざページを設けてありますよね。新しい内容が増えてるわけじゃないのに、索引の分だけページ数がかさむわけです。
テーブルの場合も同じです。
インデックスを作るということは、予め[都道府県コード]順に並んだレコードのイメージを持っておくことになるんです。
なので、やたらめったらつけるのではなくて、必要と思われるフィールドに対してだけ、つけるようにしましょう。

このMDB、インデックスをつける前は、7.9MBだったんですけどね。
[市区町村テーブル]と[地区テーブル]の中に、ひとつずつインデックスの設定を行ったところ、ファイルサイズが9.1MBになりました。
インデックスつけただけで、1MB以上もファイルサイズが大きくなってるんです。
というのも、[市区町村テーブル]は3357件、[地区テーブル]に至っては121081件のレコードが入っているので、インデックスのサイズも大きくなるわけです。
インデックスをつけるとファイルサイズが大きくなる、という意味ではないんですよ。
インデックスをつけたテーブルのレコード件数が多ければ多いほど、インデックスのサイズも大きくなるのです。



余談ですが・・・、インデックスは削除することもできます。
テーブルのデザインビューで、インデックスを「なし」にしてやればいいわけです(主キーのインデックスを削除することはできません)。
でも、削除したからといって、ファイルサイズは変わらないですよ。
「データベースの最適化」をしないと、削除したインデックスの分は、まだ場所をとっちゃってるんです。これは、レコードやオブジェクトを削除した後と同じですからネ。



ここまで、いかがでしょう。コンボボックスを使った2段階、3段階の仕組み。。。
ややこしいですが、要点を掴めば、さほど難しいこともないはずです。

いろいろなところで活躍すると思いますんで、ぜひとも応用してください。

いちおう、操作としてはここで終わりです。
でも・・・今まで作ってきたテーブル、あれ、どうやって作ったか・・・。それをこの後でお話しようかなと思ってます。
あれは、

http://www.post.yusei.go.jp/index.htm ゆうびんホームページ(新郵便番号検索)

このサイトからダウンロードしたテキストファイルで、もともとはひとつのテーブルだったんです。
それを、小分けしたんですよ。

コンボボックスを作る操作とは関係ないですが、この手順について、次のページに掲載してますので、もしよかったら覗いて言ってください。