- ベストアンサー
Access 2重のルックアップフィールドで、ID番号ではなく、名称を表示したい
- Access 2重のルックアップフィールドで、ID番号ではなく、名称を表示したい。
- Access 2010を最近始め、データベースの正規化について困っています。メーカーテーブル、部品テーブル、在庫テーブルの関連性がうまく機能していないようです。
- 部品テーブルのルックアップフィールドではメーカー名が表示されますが、在庫テーブルのルックアップフィールドではメーカーIDが表示されてしまいます。メーカー名を表示する方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
まず ご質問への直接の回答ではない事をご容赦ください >部品テーブルでは、ルックアップフィールドで、”メーカー名”が表示されています。 >次に在庫テーブルで、部品をルックアップテーブルで選ぼうとすると、 基礎データを入力しようとされているのですね? Accessでデータを入力する際は"テーブル"を開いて直接入力するのではなく、"フォーム"を作ってフォーム上で入力するべきです。 テキスト本では とりあえずテーブルを作ってレコードを入力して とりあえずAccessらしく動いていることを見せる必要があるので "テーブル"に直接入力させる必要があるのかもしれませんが、実際にAccessを活用しだせばこんなことはありません。 (私も素人なのでうまく言葉にできませんが、操作ミスによるデータの誤消去を防ぐためと、フォームのいろいろな機能を利用して入力の効率を上げるため、と私は理解しています。) "フォーム"上に"コンボボックス"を作成すれば同じことができます。 >・部品テーブル:部品ID/メーカー名 "部品テーブル"のフィールド(標題)は"メーカー名"ではなく"メーカーID"にしなければいけません (あと 部品名、 型番、 などが必要かと思いますが…) >・在庫テーブル:在庫ID/部品名 これも同様に"部品名"ではなく"部品ID”とするべきです >部品テーブルでは、ルックアップフィールドで、”メーカー名”が表示されています。これは問題ありません。 入力した文字列を見ている限りでは問題ないかもしれませんが、データベース的には問題ありです。 ほんとにうまく説明できなくて申し訳ないですが、"テーブル"はあくまでデータの入れ物、シンプルにシンプルにしなければなりませんし、データベースが完成した後にはテーブルを開くこと自体を最小限にするよう操作するべきです データを加工するのは"クエリ"を使って、ということになります "部品クエリ"を作ってみました フィールド"メーカーID"に数値を入力すると フィールド"メーカー名"に自動的にメーカ名が出ます "部品クエリ"に入力したデータはそのまま"部品テーブル"に保存されます Access、 習得できると世界が広がりますよ 頑張ってください (私も習得には程遠いですが (^_^;) )
その他の回答 (3)
- puku_oh_pu
- ベストアンサー率47% (47/99)
- puku_oh_pu
- ベストアンサー率47% (47/99)
- 007MUKADE
- ベストアンサー率41% (286/694)
クエリーを使って 欲しい名称を テーブルより 拾い出します。 ・・・簡単な説明ですが まず ”クエリー ”を勉強して下さい。 ヘルプにものってますよ~~ 頑張って~~~!
お礼
大変ご丁寧なご回答誠にありがとうございます。 また画像(つまり、その為にサンプルデータを作成まで頂きまして)までありがとうございます。 ・データ入力はテーブル直接ではなく、フォームで(今回の用途ではコンポボックスなどで) ・クエリによって、必要なデータの選択 もともとウェブDB系でSQLなどは慣れているのですが、いざaccess使ってみると、GUI過ぎて逆に混乱してしまい、本をざっと読んで要素の知識は掴んでいたのですが、その全体のつながりが理解できていませんでした。 今回ご指摘の件と、実際に少し作ってみていっきりにそれがつながりすっきり致しました。 大変ありがとうございました。感覚がつかめたので一気に仕事が進みそうです。(素直にweb dbで作れば良かったと後悔しはじめていたのでよかったです)