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



テーブルを分ける−−−テキストファイルをインポートする

このコーナーのはじめでダウンロードして使っていただけるようご用意しているMDBファイルの中には、全部で4つのテーブルが入ってます。
この4つのテーブルはもともと、ひとつのテーブルだったものを分けたものなんです。
(ひとつは手作りなので、正確には3つに分けた)

元ネタは、↓ここにあります。

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


(2008/05/05 追記)
上記のページは場所が変わっていると思います。民営化されましたもんね。以下のページを見てみてください。
http://www.post.japanpost.jp/zipcode/download.html
でも、このページも、この先、URLが変わる可能性はあると思うんで、その場合はYahooやグーグルで ”郵便番号 ダウンロード” をキーワードに検索してみてください。
(追記終)


ここは、郵便番号の一覧を検索したり、テキストファイル形式になったファイルをダウンロードしたりできるサイトです。
こうしたサイトは他にもいろいろありますが、わたしはここをよく利用しています。

今回は、平成14 5月1日現在のデータを平成14 6月21日に掲載されたデータを使ってます。
新しい市区町村が誕生したりすると郵便番号が増えることもありますし、たまに、更新されているみたいですね。
といってもそんなに頻繁に変わってるわけじゃないみたいですけど・・・。

で、このサイトから取ってきた「全国一括」のテキストファイルを、「都道府県」「市区町村」「地区名」の3つに分けて、それぞれコンボボックスで絞込みができるようなテーブルに作り変えてみました。
以下は、そのプロセスを解説しています。
郵便番号のテーブルでなくても、似たような操作をしなきゃならなそうだな・・・という方は、ぜひとも練習台に挑戦してみてください。

まず、テキストファイルをMDBファイルの中に取りこまにゃなりません。

ダウンロードしてきたファイルを解凍すると、KEN_・・・という名前のついたテキストファイルになってます。
CSVっていう拡張子が付いてるんですけどね。「カンマ区切りテキストファイル」ってやつなんです。
Excelがインストールされているパソコンなら、下のようなアイコンになります。
Excelで開いて見ることができるファイルなんですけどね。でも、全国一括でダウンロードしてきた人はダブルクリックしちゃダメですよ。ダメです!

このファイル、12万件以上のデータが入ってます。
Excelって、1シートに表示できるデータ量は65535件までですよね。
開くことはできません。だからダブルクリックしちゃダメです。

私は普段、「秀丸」っていうエディタを使ってます。
これは、100万行まで入力できるエディタらしい。とりあえずこれを使って開いてみました。

横を150行にしているので、もしかしたら長い住所の地名の行が、折り返しちゃってるかな・・・京都の当たりとか、とっても長い地名があるんですよね。
実際には、121801件のデータが入ってます。

で、よく見ると、ダブルコーテーションやカンマで区切られて、いろいろなデータが入ってることがわかりますよね。
これを、Accessのテーブルとして使えるようにします。
部分的に取り込むこともできるんですが、今回はいったん全データ取り込んでから、その後の身の振り方を考えたいと思います。



何か、適当な名前のデータベースを新規にこしらえてください。

で、データベースウィンドウ内を右クリックすると、「インポート」というメニューが出てきます。
(メニューバー[ファイル]→[外部データの取り込み]→[インポート]でもOKです)

何を取り込むのか、ファイルを指定します。
さっきダウンロードしたテキストファイルを指定したいので、一番下の「ファイルの種類」をテキストファイルに変更し、ファイル名を指定してインポートしましょう。


ウィザードが自動的に起動してきます。
ちゃんと作られているCSVファイルですので、特に何もする必要はないんですが、いちおう、内容を確認しながら[次へ]ボタンをクリックしていきましょう。

CSVファイルなので、カンマで区切られてるかと思います。
こういうのも自動的にウィザードがやってくれるので、[次へ]ボタンをクリックします。


新規にテーブルを作成することにして、[次へ]進みます。


ここも、とりあえずこのままでOKです。
ほんとうは、「フィールド1」はテキスト型で取り込んだほうがよいのですけれど・・・数字だけで構成されているので、ウィザードは数値型で取り込もうとします。
なぜテキスト型のほうがよいのか、は、後でお話していきます。たぶん、ここは、変更せずに取り込んで「うえーめんどくせぇ。なんでこんなめんどいの?」ってパターンをお話したほうが後々役に立つんじゃないかと思うんで・・・。このまま進みましょう。

一番左端のフィールド、 01101 ってなってますよね。これ、ちょっとの間だけ記憶しておいてください。

フィールド名を変えたり、型を変えたり、インポートしないフィールドを指定したり・・・いろいろできるんですけど、もうこのままうっかり全部「次へ次へ」ってやっちゃったと仮定して、次へ進んじゃいましょう。

主キーの設定に移ります。
このデータ、テキストファイルだし、「便番号の一覧」という都合上、主キーにふさわしいフィールドはありません。残念ながら・・・。
何度かお話をしていることではありますが、主キーは「意味もなくわざわざつける」ものではありません。
データベース側としては、主キーに値するフィールドがテーブルには必ずあるべきなのです。
でも、人間様側で、どうしても主キーの必要性が見出せない場合は、無理にオートナンバー型のフィールドなんか作らずに、主キーなしで取り込みましょう。
自動的につけた主キーなんて、実際には・・・意味がないと、わたしは思いますよ。

主キーを自動で付けてインポートしてもいいですけどね。使う予定ないからさ。


これでおわりです。
テーブル名は、元のファイル名にちなんだものがつきますが、変更してもOKです。


12万件以上ありますからね・・・。[完了ボタン]をクリックした後、しばーらくじわじわと作業が続きます。
画面の左下に、状況が出ますので、見守りましょう。


終わると、メッセージボックスが出ます。これでインポート完了です。


テーブル、開いて見てみましょう。


どひゃひゃ・・・。
すごいテーブルですね、しかし。

フィールド1 :市区町村の番号(たぶん、このデータを作成した人が割り振った番号だと思う)
フィールド2 :旧郵便番号(3桁〜5桁のやつ)
フィールド3 :新郵便番号(7桁のやつ)
フィールド4 :都道府県のカタカナ読み
フィールド5 :市区町村名のカタカナ読み
フィールド6 :地区名のカタカナ読み
フィールド7 :都道府県
フィールド8 :市区町村名
フィールド9 :地区名(これが、郵便番号に対応している感じらしい)
フィールド10〜 :なんか、フラグっぽいフィールド。0とか1とか入ってる。

こんな感じになってますね。

これをこのまま使ってもいいんですけど、これを今回は、「都道府県名の入ったテーブル」「市区町村名と、都道府県を結びつけるテーブル」「地区名と、市区町村を結びつけるテーブル」の3つに分けて、コンボボックスでの絞込みをより作りやすくしようと思います。