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



テーブルを分ける−−−都道府県テーブルを作る

んじゃ、まずはじめに、都道府県のテーブルを作りますよ。
テーブルからテーブルを作るときは「テーブル作成クエリ」ってやつが便利です。

クエリを新規に作成します。

「デザインビュー」でクエリを作ります。


今しがたインポートしたテーブルを選びます。いっこしかないから、迷うこともないですよね。


フィールド名を変えてないからめんどくさいんですけど・・・。

フィールド1 :市区町村の番号(たぶん、このデータを作成した人が割り振った番号だと思う)
フィールド2 :旧郵便番号(3桁〜5桁のやつ)
フィールド3 :新郵便番号(7桁のやつ)
フィールド4 :都道府県のカタカナ読み
フィールド5 :市区町村名のカタカナ読み
フィールド6 :地区名のカタカナ読み

フィールド7 :都道府県
フィールド8 :市区町村名
フィールド9 :地区名(これが、郵便番号に対応している感じらしい)
フィールド10〜 :なんか、フラグっぽいフィールド。0とか1とか入ってる。

まず、この↑ふたつを選びます。


そんで、データシートビューに切り替えて見てみましょう。

なんと・・・。

ソレっぽいもんが出てはいますが・・・。
これ、どういう状態だかわかりますよね。このテーブルには121081件のデータが入ってるので、2列だけにしたとしても、121081件出てくるわけです。

こういうときはどうするかというと・・・「重複した値を出さないようにする」のです。
これは、クエリのプロパティで設定します。

プロパティは、クエリのデザインビューの中のどこかを右クリックして(フィールドリストの右横当たりがいいかも)、ショートカットメニューから出すといいでしょう。

「固有の値(Distinct)」を はい にすればOkです。

もう一回、データシートビューにしてみると???

ん???
今度は・・・3357件あるぞ???
そうか。市区町村のコードがあるからだな。1列目のほうは重複してないですもんね。

この[フィールド1]の値って、どうやら、 最初の1桁が都道府県の番号、後ろの3桁が市区町村の番号 っていうふうになってるみたいなんですよね。北海道は1だけど、青森は2になってるもん。
なので、左の1桁を取り出して、都道府県の並べ替えにも使っちゃおうかなと思います。

「左から1桁だけ」という場合は、Left関数ってやつが便利です。詳しい使い方はヘルプをご覧になってくださいね。

left(フィールド1,1)

です。半角のカギカッコは勝手につきますから入力はいらないです。

入力するときは、ちょっと幅を広げたほうがいいでしょう。
上の図の、ピンク色のところをそっとドラッグすると、列幅を変えられます。


と・・・。ありー???
今度は、47都道府県になってるけど、なんで群馬も埼玉も山梨も1なんだ???

ここで、インポートしてくるとき確認いただいたことを思い出してみてください。
フィールド1は、テキスト型で持ってきたかった、って申しましたよね。
数値型だと、「01101 の、先頭の 0 」、消えちゃうんです。っていうか、数値って、そういうもんですよね。
「ゼロイチイチゼロイチ」ではなく、「せんひゃくいち」になってるわけです。

要するに・・・2桁+3桁=5桁で、それぞれの桁に意味があるコードだったのに、数値で取ってきたがために、4桁のものと5桁のものができちゃったわけです。

うーむ・・・失敗か。

でも、こういうことって、よくあるんじゃないかと思うんですよね。
失敗を糧に、この状況をがんばって克服してみましょう。

要は、5桁にそろえればいいんですよね。そこで、ちょっと実験です。
[フィールド1]をもう一回、どこか適当なグリッドに持ってきます。


こういうときよく登場する format関数っていう関数を使って、桁をそろえます。


format(フィールド1,"00000")

です。

すると、↓こんな感じになります。5桁になってますでしょ?

ここから、左から2桁取れればOKなはずなんです。


そしたら、仕上げは↓こうです。

left(format(フィールド1,"00000"),2)

式1とかいうのが勝手に付いちゃうので、入力しにくかったら一度全部式を消してから再度入力してみてください。
今日は練習ですからね・・・コピーペーストしないで、入力してみてくださいよ。ね。ね。

ふいー・・・。
これで、都道府県を識別し、かつ、ソレっぽい順番で表示することができるフィールドができた・・・。


そしたら、最初に作ったほうの列はいらないので、消しちゃいましょう。

グレーの部分(フィールドセレクタ)をクリックして1列黒く反転させ、Deleteキーで消しちゃってください。


改めて確認・・・。こういう形のテーブルが出来上がれば、OKなのです。


そしたら、このクエリを「テーブル作成クエリ」に変更します。
メニューバーの[クエリ]→[テーブル作成クエリ](またはツールバーの[クエリの種類]→[テーブル作成クエリ])を選びます。


このクエリの実行時に、作成されるテーブルの名前を付けます。
[都道府県テーブル]にしようかな。


で、このクエリを実行すると、テーブルができます。クエリ作っただけじゃできませんよ。実行したら、です。

実行するには、ビックリマークツールボタンをクリックします。


こんなメッセージが出るので、はいボタンをクリックです。


できたー。
クエリは、保存しないで閉じちゃってください。
繰り返し後で何度も使うなら、名前を付けて残しておいたほうがいいですが・・・たぶん、残しておくとかえってややこしいことになりそうなので、今回は思い切って保存せずに閉じてください。

テーブル、できてます?


こんな感じ。↓


式2 じゃ、なんやわからんので、フィールド名を付けときましょう。
データシートビューの状態でもフィールド名の変更はできるので、現在のフィールド名のところをダブルクリックして、書き換えちゃってください。

MS-Accessは、デフォルトの設定で、「コード」「番号」「ID」という感じの名前をつけると、自動的にインデックスが設定されます。
(メニューバー[ツール]→[オプション]→[テーブル/クエリ]の中で設定されているだけなので、いやならとっぱらっちゃってもよい)