※ ChatGPTを利用し、要約された質問です(原文:Accessでのテーブル構造の作り方)
Accessでのテーブル構造の作り方
このQ&Aのポイント
Accessでのテーブル構造の作り方について質問です。質問内容は、テーブルのフィールドをドロップダウンで入力したい場合や、マスタテーブルを参照する方法などです。
また、フィールドのドロップダウンで連番を選択する際に、説明の情報も表示したいとのことです。さらに、ドロップダウンを使って他のテーブルを参照する方法にも興味があります。
質問2では、フィールドの入力を規制したい場合や、テーブル構造が複雑になる場合についても質問があります。マスタテーブルの作成やテーブル数の削減についても詳しく知りたいとのことです。
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層だけでも手抜いてテーブル数を少なくできるならそうしたいという目的です。
ただ、メンテナンス性などもろもろを考えると、マスタテーブルを用意するのが正攻法ということなら、手間はかけてもテーブルを作りたいと思っています。
お手数ですが、よろしくお願いいたします。
お礼
ありがとうございます。 質問1 → 無事、やりたいことができました! 質問2 → アドバイスに従って、単純なものでもテーブルを用意するようにしてみます!