みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Accessでのテーブル構造の作り方

MS Access 365版について質問です。

知識は、先週末に入門書(Accessのデータベースのツボとコツがゼッタイにわかる本)を一冊読んだだけで初めての実務というレベルです。(非ITエンジニアなので専門用語は避けていただけるとありがたいです)

用途は、自部署内のデータ管理です。


質問1

今、あるテーブルT1があったとして、そこにフィールドT1_F1~T1_F10があったとします。

この時、主キーにするID(T1_F1)以外のT1_F2~T1_F10はすべてドロップダウンで入力したかったとします。

T1_F2のドロップダウンを表示するときの参照するマスタとなるテーブルとしてMT2があったとして、フィールドがMT2_F1~MT2_F5まであったとします。

MT2の主キーをMT2_F1として連番が振られているものとして、MT2_F2にはそのレコードの概要(そのレコードの全体像が把握できる日本語名称)が格納されていて、MT2_F2~MT2_F5までは各種のパラメータが格納されています。

また、T1_F3以降も同様のマスタとなるテーブルMT3~MT10を参照していたとします。


このときに、T1のレコードを入力するとしたら、T1_F2のドロップダウンにはMT2の主キーであるMT2_F1(連番)を選択することになると思います。

しかし、連番ではユーザーが直感的な選択ができないため、連番を選ぶ際に、同時にMT2_F2(日本語の説明)が見れると便利だと思います。

このようなことは実現できるでしょうか?

できるとしたら、どのような方法になりますでしょうか?

T1へのレコード入力のクエリと、MT2~MT10への選択クエリを同じ画面に表示させるなどができるなら、それが王道でしょうか?


質問2

次に、T1_F3のドロップダウンはMT3の主キーを表示することになります。

しかし、MT3はフィールドが1つだけで構成されており、内容も「パターンA」「パターンB」~「パターンF」のような日本語を主キーに設定すれば事足りるパラメータだったとします。

(ようは、T1_F3のレコードに入力可能な日本語は何パターン化に規制したいだけで、「パターンA」などに紐づくそれ以上の情報は存在しない状態です)

この場合、T1側で入力規制をすることは可能でしょうか?

これだけの目的でも、マスタ(MT3)をつくるのが正攻法でしょうか?

実は、この例ではT1のフィールド数は10としましたが、実際にはもっと多く、T1_F4が参照するMT4の各フィールドがさらに、そのマスタとなるテーブルを参照しに行かなければならないという状態で、おそらく、全体で少なくとも3層~5層程度の構造になりそうで、マスタとなるテーブル数も数十くらいになりそうです。

これをつくるのがやや手間になりそうなので、1層だけでも手抜いてテーブル数を少なくできるならそうしたいという目的です。

ただ、メンテナンス性などもろもろを考えると、マスタテーブルを用意するのが正攻法ということなら、手間はかけてもテーブルを作りたいと思っています。


お手数ですが、よろしくお願いいたします。

投稿日時 - 2019-07-23 20:44:15

QNo.9638482

困ってます

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

問1
できますけど、アクセスだとフォームですることになるようです。
https://www.feedsoft.net/access/guide-control/guide-c16.html

問2
基本的には主キーを別にしたほうがいいと言われています。

投稿日時 - 2019-07-23 21:28:20

お礼

ありがとうございます。

質問1 → 無事、やりたいことができました!

質問2 → アドバイスに従って、単純なものでもテーブルを用意するようにしてみます!

投稿日時 - 2019-07-24 17:47:53

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問