Access初心者です。
このたび、社内のシステムが使えなくなってしまったため、急遽accessでシステムを作ることになりました。
データは各市町村から各市町村の距離(キロ数)で検索のみ使えればOKです。
例えば、大田区から水戸市までの距離とか、
千代田区からさいたま市までの距離とか、そういうデータが恐らく1万件近くあります。
都道府県、市区町村のコード化するテーブルと
各市町村から各市町村までの距離を格納するテーブル
そういう構造しかないでしょうか?
そうすると各市町村毎テーブル作らなくてはならないと思うのでテーブル数が膨大になってしまいます。
フォームの構造としては、
例えばテキストボックスに千代田区と入力すると
千代田区から各市町村のキロ数一覧が出るようにしたいのですが
テーブル構造としてはどういうテーブル構造がいいでしょうか?
よろしくお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
>そういうデータが恐らく1万件近くあります。
↑このデータ次第のように思えます。
#1 さんの方法の他に、
たとえば、
Address1 Address2 Distance
Tokyo Oosaka 10
Tokyo Chiba 1
Tokyo Kanagawa 2
Oosaka Chiba 5
の様ならパラメータクエリで
図のようにしておけば、データが
Tokyo Oosaka 10 でも
Oosaka Tokyo 10 でも問題ありません。
また起点/終点どちらかを未入力なら、
入力した方の一覧が出て来るかと。
で、パラメータ部分([起点は?]、[終点は?])を
フォームのテキストボックスに変更すれば・・・。
なにはともあれ、元データ次第のような気がします。
No.2
- 回答日時:
何か勘違いがあるようなので
各市町村から各市町村までの距離を格納するテーブル
フィールド名
出発地コード
到着地コード
距離
のひとつのテーブルです。例えば、出発地コードに 千代田区のコードを入れると
条件の一致したデータの一覧が出るように絞り込みのクエリーを作成します。
テーブルは、2つで済むはず。
>データは各市町村から各市町村の距離(キロ数)で検索のみ使えればOKです。
ネット上のMapか何かで調べた方が楽で早くないですか。
http://www.mapfan.com/routemap/routeset.cgi
などで
No.1
- 回答日時:
>各市町村から各市町村までの距離を格納するテーブル
>そういう構造しかないでしょうか?
私がつくるならそうします。でも、
>そうすると各市町村毎テーブル作らなくてはならないと思うのでテーブル数が膨大になってしまいます。
これがよくわからないんですが、なんでそう思うのですか?
その距離を格納するテーブルにその1万件近くのレコードをただ放り込めばいいじゃないですか。
ところで余計な話になるかもしれませんが・・・・
テーブルはどうしても「AからBへの距離」というレコードの集まりになりますが、検索するときにクエリーで面倒なことをしたくなければ、「AからBへの距離」と「BからAへの距離」と必ず2レコード一組で作るようにしてもいいわけです。
ただ、これは必ず2レコード一組になるように、新規のレコードを入力するときに工夫が要ります。また、2レコードの距離が同じであるかどうかチェックする仕組みもいるかもれません。
えらく面倒でメンテナンス性も悪いと思いますが、検索するには普通の選択クエリ一発で検索できるという利点はあります。
私がやるとすれば「AからBへの距離」というレコードだけ集めて、二重にレコードは持たないように作ると思います。しかし、この場合A-B間の距離が欲しい場合は、出発点がAで行先がBのレコードを検索して、それとは別に出発点時Bで行先がAのレコードを検索するというように、二度検索する必要があります。
これをやるとすれば、一つの方法としては出力フォームに2つ窓を作って(2つのサブフォームを作って)見せる方法があります。ただ使う側からすれば多少奇妙にはみえるでしょう。東京から各地点の距離を知りたいのに、二つの窓から探さなきゃいけないのですから。
あるいは出発点がAで行先がBのレコードの集まりと出発点時Bで行先がAのレコードの集まりをユニオンクエリで一つのレコードの集まりにしてしまう方法があります。私ならこのやり方を採用します。ただ、ユニオンクエリはSQLで書かなきゃいけないんで、初心者向きかといぶかる人もいないとは限りません。でもこの場合はそこらじゅにあるユニオンクエリのお手本通りのものになるはずですから、大したことはないと思いますけどね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データベースファイル(.db)を開...
-
警察はスマホに保存した動画や...
-
DocuWorksでの印刷
-
ACCESSのSQLで、NULLかNULLでな...
-
Accessを開きなおすとテキスト...
-
エクセルのフィルタ抽出が固まる
-
シートが異なるセル同士を、相...
-
CSVファイルでテキストの改行の...
-
Accessフォームからパラメータ...
-
Excelフィルタ抽出で「検索して...
-
20万行あるデータを動かしたい
-
帳票フォームでのあるコンボボ...
-
最新の日付とその金額をクエリ...
-
旧filemakerで和暦(令和など)...
-
googleフォームでインストール...
-
SQLとRDB、NoSQLではどれが一番...
-
Accessのリレーション解除した...
-
シャープレジスター エラーコード
-
顧客データベースを作る場合、...
-
DBエラーを解決したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データベースファイル(.db)を開...
-
エクセルのフィルタ抽出が固まる
-
ACCESSのSQLで、NULLかNULLでな...
-
Accessを開きなおすとテキスト...
-
警察はスマホに保存した動画や...
-
DBエラーを解決したい
-
CSVファイルでテキストの改行の...
-
ITパスポートについての質問で...
-
最新の日付とその金額をクエリ...
-
テキストボックスにコントロー...
-
顧客データベースを作る場合、...
-
更新クエリをリンクデータベー...
-
シートが異なるセル同士を、相...
-
構文エラー:演算子がありませ...
-
Access フォーム上でコンボボッ...
-
帳票フォームでのあるコンボボ...
-
AccessのSQLで、FROM句の構文エ...
-
DocuWorksでの印刷
-
Accessのリンクテーブルについて
-
FROM句の構文エラー ACCESS SQL
おすすめ情報