• ベストアンサー

Accessの住所を分割するメリットとデメリットを教えてください。

前任者が作成したAccessをメンテナンスしています。 住所のカテゴリーが3段階で作られています。 住所1.都道府県 住所2.市町村から番地まで 住所3.建物名 「これのフォームの住所2と住所3を一緒にして欲しい。 できれば住所1も一緒にして、ひとつのボックスにして欲しい」と、使用者から言われました。 ひとつのボックスにしたほうがフォーム上スッキリとして見やすいから・・・というのが要望の理由のようです。 全てを一緒にすると抽出の段階でやりにくくなるのではと思って調べているところです。 例えば、都道府県別の抽出等。 住所を分割することによってのメリットとデメリットはどのようなことになるでしょうか? 初歩的な質問だと思われるので、このようなことまで質問してすみません。 どなたかご回答いただける方がいらっしゃいましたら教えてください。 よろしくお願いいたします。

  • 375k
  • お礼率60% (176/289)

質問者が選んだベストアンサー

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.3

<分割のメリット>  ○検索が早くなる   ・都道府県での先頭一致/完全一致の検索、及び市町村での先頭一致検索に対して、    各フィールドに設定したIndexを使用できるため、曖昧検索よりも早い   ・1フィールドの総文字数が減るため、曖昧検索自体も早くなる(はず) <分割のデメリット>  ○入力時の打鍵数の増加(→コントロールの移動分:コンボボックスの自動拡張などで、    ある程度の軽減は可能)  ○フォームのヘッダなどに検索条件の入力欄を設ける場合、通常はフィールドごとに    用意することになるので、プログラムを組む上ではやや煩雑 ・・・といったところではないでしょうか。 (1フィールドに保存した場合のメリット・デメリットは、上記の内容が逆転) 素人考えですが、使用者が検索速度よりも、1コントロールで入力/参照が可能になることを 重視するのであれば、そうしてしまっても致命的なデメリットはないように思えます。 (なお、ファイルサイズに関しては、Indexが増える分と、各フィールド(特に住所2・3)で文字数  の余裕を双方で見る必要が生じる分、分割した方が大きくなると思いますが、これも大きな  問題にはならないかと)

375k
質問者

お礼

いつもわかりやすい回答をいただいて本当に助かります。 都道府県とそれ以外の住所の2分割にさせることにしました。 ありがとうございました。

その他の回答 (5)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.6

メリットデメリットはご自分で書いておられるじゃないですか ひとつにしてあれば例えば都道府県で集計したいときに一手間必要 分割してあればまとめて表示するときに一手間必要 というだけのことです 都道府県別に集計したりしないのならユーザーの言うとおりでいいんじゃないですか

375k
質問者

お礼

都道府県別に集計することはよくあるので、都道府県とそれ以外の住所の二分割にさせることにしました。 ありがとうございました。

noname#140971
noname#140971
回答No.5

Form_Address: *************************************************************** Zip_____________[101-1111] Address1_____[東京都_____] Address2_____[文京区_____] Address3_____[太田町112番地______________] ***************************************************************

noname#140971
noname#140971
回答No.4

Form_Customer: *************************************************************** ID:_____________[____1] KName________[鈴木 一郎________] Zip_____________[101-1111] Address_______[東京都文京区太田町112番地______________] Address1_____[東京都_____] <--------------非表示 Address2_____[文京区_____] <--------------非表示 Address3_____[太田町112番地______________] <-非表示 [住所更新] *************************************************************** Address.コントロールソース=[Address1] & [Address2] & [Address3] Private Sub コマンド_住所更新_Click() On Error Resume Next   DoCmd.OpenForm "Address", , "[ID]=" & Me![ID] End Sub Form_Address: *************************************************************** Zip_____________[101-1111] Address_______[東京都文京区太田町112番地______________] Address1_____[東京都_____] Address2_____[文京区_____] Address3_____[太田町112番地______________] *************************************************************** 見かけ上だけですとは、上述のようにすればOKです。 が、[住所更新]コマンドボタンと更新用フォームを用意して更新作業をサポートする必要があるでしょう。 一旦、住所を統合してから分割するのは至難。 また、ユーザも代替わりすれば意見も異なるでしょう。 一々、それらに追随して基本設計を変更していたらテーブルはグチャグチャに。 テーブル設計の基本は譲らずに妥協点を探るのが宜しいと思います。

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.2

う~ん? 私も分割するほうが良いと思います 表示上の問題であれば、結合は簡単に出来ますから、問題ありませんが・・・分割するとすれば、膨大な処理の上に別途DBを必要とします しかし、質問の様に、 > 住所1.都道府県 > 住所2.市町村から番地まで > 住所3.建物名 だけの分割では、例えば、郵便番号を割り当て等、活用する範囲が狭いため、都道府県別に抽出くらいでしか用途的に使い様が無いと言う、問題があるような気がします 都道府県ぐらいなら、モジュールで分割しても問題ないような気がします その先の、区市郡、町村、番地の分割の処理を考えると、モジュールの労力が酷いことになります あと、入力上の問題も多々あります 1つにすると、都道府県から入力したものと、区市郡から入力したもの (政令指定都市だと、都道府県を書かないこともあるため・・・) 但し、使用用途上問題なければ、いいんじゃないで終わるんですがね 表示を1テキストボックス、入力時にポップアップで複数のコンボボックス等で、うまく調整して見たほうが良いと思いますけどね 私の場合、国土地理院の住所コードで保管、入力はコンボボックスで絞込み、印刷・表示などは、1テキストボックスと言う感じです

375k
質問者

お礼

ニ分割で食い止めることにしました。 ありがとうございました。

noname#140971
noname#140971
回答No.1

>「できれば住所1も一緒にして、ひとつのボックスにして欲しい」とは? 見かけ上、それともテーブル設計として? 見かけ上なら、住所1、2、3を非表示にして「ハイ!できました!」もありかなと思います。

375k
質問者

補足

見かけ上です。 使用者はフォーム画面での要望を出しています。 パッと見て一目でわかる画面を望んでいるのです。 住所が何故、3フィールドに分かれるのか理解できないのです。 テーブル設計などは頭の中にありません。 >住所1、2、3を非表示にして「ハイ!できました!」もありかなと思います。 この方法をとると住所全てが表示されなくなってしまうと思うのですが、そういうことではないのでしょうか?

関連するQ&A

  • Access 住所 コンボボックス

    こんにちは、 Access2003で質問があります。 コンボボックス?が2つあり、 1つ目:都道府県 2つ目:市町村 で 1つ目のコンボボックスを東京都にすると 2つ目に東京都の市町村が抽出されて、そこから該当する市町村を選択できるようにしたいと考えています。 どのようにすればよいのでしょうか? 何かお分かりの方がいましたら教えてください。よろしくお願いします。

  • 住所の分割方法

    顧客データで、住所フィールドが1,2,3とあり、本来であれば、 1・・・都道府県 2・・・市区町村から番地 3・・・マンション、アパート名 としなければいけないのですが、郵便番号辞典から入力したため、住所2のフィールドに1と2がくっついて入力されています。 これを都道府県で切って、都道府県名を住所1のフィールドに、市区町村から番地までを住所2のフィールドに分割したいのですが、関数もしくはマクロがあれば教えてください。 住所1には、「東京都」などの「都」に相当する都道府県名まで入れたいのですが。 (データが5000件くらいあります)

  • Accessについて。フォームでデータ入力

    超基本的な質問ですみません。 仮に下記のような構造のデータベースがあったとします。 テーブル 都道府県名 フィールド 都道府県 テーブル 住所    フィールド 都道府県 市町村 テーブル 顧客    フィールド 都道府県 市町村 顧客にデータを入れていくために"顧客情報入力"というフォームを作ります。 "都道府県"をコンボボックスで選択しました。 市町村のコンボボックスに上の"都道府県"で選択した都道府県の"市町村"だけを表示させるためにはどうしたら良いのでしょうか。 クエリについてはある程度理解していたつもりなのですが、頭が真っ白になってしまいました。

  • Excel2010 住所5分割

    東京都豊島区東池袋3丁目1番1号 東京都八王子市子安町4丁目10番15号 神奈川県川崎市高津区明津12番地メゾン美鈴 とある住所を「都道府県」「市区町村郡」「通称名」「○丁目」「番地ビル」 のように分割したいです。  M列     N列      O列     P列      Q列    都道府県  市区町村郡    通称名    丁目      番地 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 「東京都」 「豊島区」   「東池袋」  「3丁目」  「1番1号」 「東京都」 「八王子市子安町」      「4丁目」  「10番15号」 「神奈川県」 「川崎市高津区」 「明津」      「12番地メゾン美鈴」 5万近く件数があり手作業では無理なので、関数かVBAで出来れば助かります。 都道府県とそれ以降の分割しかわかりません。 宜しくお願いします。

  • accessの住所入力支援

    ACCESS2000を使っています。最近、市町村合併などで郵便番号は変わらずに市町村名だけ変更になる、ということが多いのですが、 フォームで住所入力支援を設定した郵便番号[ ]に旧郵便番号を入れると旧住所がでてくるので、新住所になるようにしたいのですが、何か良い方法はないでしょうか? ちなみに 郵便番号[ ]→市町村[ ]に住所入力支援を実行し、番地[ ]にそれ以下の住所を入力するようにしています。

  • 【Access】住所を分割して抽出したい

    Accessで住所から都道府県と市区町村を抽出 はじめまして、Access初心者です。 右も左もわかっていないので 質問がおかしかったら申し訳ございません。 Accessのクエリを使って 住所録テーブルのデータにある住所から 都道府県、市区町村、それ以降 で分けて表示したいと思っています。 元のデータは、都道府県名が入っていないものや、都道府県名から始まっていない物、そもそも入力されていないものもあります。 都道府県一覧のテーブル(テーブル名: T_都道府県)と 市区町村一覧のテーブル(テーブル名: T_市区町村) は準備しました。 色々調べたのですが、Access不慣れな為 正しい式が書けておりません。 現在はサブクエリに 都道府県:(select[都道府県名] from T_都道府県 where [住所] like [都道府県名]&"*") 市区町村:(select[市区町村名] from T_市区町村 where [住所] like "*"& [市区町村名]&"*") それ以降:Replace (Nz([住所]," "),Nz([都道府県]," "),Nz([市区町村]," ")," ") と入力して実行したら このサブクエリでは1つのレコードしか返せません。 のエラーが出てしまいました。 (ですよね、、、) 都道府県と市区町村のテーブルを利用して どう直せば、うまく表示ができるのか わかる方教えていただけると幸いです。 どうか、よろしくお願いいたします。

  • 郵便番号を書いて、きちんと住所も書きますか?

    郵便番号を書けば、基本的に番地だけで相手に届くシステムですが、それでも住所をきちんと書いていますか? 例えば都道府県とか市町村から、とか。 またそれはどうしてでしょうか。 相手に対して失礼になるからですか、それとも万一届かないかも知れないからですか、慣れているからつい書いてしまう?。

  • 郵便番号と住所について。

    Access2000で住所録をつくっています。 郵便番号を入力して変換すると住所になる、というIMEの機能はわかったのですが、郵便番号と住所を別の欄につくったので、郵便番号を入力したら自動で住所欄に住所が入るようにしようと思い、郵政省のところから住所録(全国版)を持ってきました。 これを「住所録」というテーブルにしました。 フィールドとしては ・郵便番号 ・都道府県 ・市町村 ・町名 の4つです。 これを使い自動で入力を行うような状態にしたいのです。 郵便番号を入れると自動で入力されるようにする、というのはなんとかできそうなのですが、逆のパターンの場合にどうしたらいいか考えています。 (例えば同じ町名でも番地によって郵便番号が違うのはどうしたらいいか・・・など。) また、「北海道」と都道府県に入力したら市町村のところには北海道の市町村しか出ないようにするにはどうしたらよいでしょうか?(町名もおなじく。) やはり都道府県別にテーブルを作ったりする必要が出てきますか? よろしくお願いします。

  • iPod nanoアドレスデータ・・・

    お聞きしたいんですが、Ipodのアドレスデータの住所のところが 外国式(番地、市町村、都道府県、郵便番号)になっているんですがこれを標準の(都道府県、市町村、番地)にしたい場合どうすればいいのでしょうか。教えてください。お願いしますm(_ _)m

  • アクセスで住所の番地を縦書きに煮したい 

    初心者です。 アクセスで、フォームを作り、封筒に住所を書き込もうと思います。 フォームでは横書きに住所を入力し、レポートで縦書きにしようと思います。 レポートのテキストBOXのプロパティを開き、『縦書き』を『はい』にしましたが、 文字列は縦になるのですが、番地が縦になりません。フォームで4-4-4などと入力すると、レポートでは 4 - 4 - 4 といった具合に縦になります。 また、二桁の数字、たとえば10も 1 0 となります。イチイチ変換せずに、入力したものが縦書きになる解決策はあるのでしょうか? よろしくお願いします。

専門家に質問してみよう