質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

2回答

208閲覧

Access 結合について

Yuyuu

総合スコア12

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2018/05/17 06:59

前提・実現したいこと

Access初心者です。
商品の加工実績を入力するものを作っています。

加工した商品を選択したら、
その商品に関連する、消費した部材を表示させたいです。

各テーブルにて、IDを設定して結合できる事は分かったのですが、
「SW」という商品を加工した場合に、消費される部材は「A.B.C」の3種類。
「SQ」という商品を加工した場合に、消費される部材は「A.B.D」の3種類。

別の商品で、同じ部材を結合する事は可能なのでしょうか。

補足情報(FW/ツールのバージョンなど)

環境
Windows10
Access2016

テーブルは2種類
T_Item
T_Buzai

フィールド値は
T_Item
I_ID I_Name
1   SW
2   SQ

T_Buzai
I_ID B_Name
1   A
2   B
3   C
4   D

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

仮に、T_Item_Buzaiテーブルをこう定義する。
イメージ説明

そこでクエリー
イメージ説明
SQLビューだと
イメージ説明
結果は
イメージ説明

で、作業のしやすさを考えると、
I_IDって項目名が各テーブルにあるとAccessのクエリビルダは同じデータだと思って
勝手にリンクしてしまうため避けたい。
I_Item_IDとかI_Buzai_IDってつけておけばいいんじゃないかな。
じゃぁ、T_Item_BuzaiテーブルでもI_IDじゃなくI_Item_Buzai_IDとでもして。

イメージ説明
イメージ説明
イメージ説明
イメージ説明
イメージ説明

別のテーブルでも同じデータ項目には同じ項目名をつけておくようにすれば、
選択クエリの新規作成画面内で使うテーブルを指定するだけで、
勝手にI_Item_IDどうし、I_Buzai_IDどうしを関連付けてくれるようになります。
イメージ説明

投稿2018/05/17 07:12

編集2018/05/17 07:29
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yuyuu

2018/05/17 07:23

迅速な回答ありがとうございます。 ただ理解ができておらず、 ItemとBuzaiテーブルのI_IDをI_Item_ID、I_Buzai_IDに変えた場合、 何を基準に関連付けて引っ張ってきてくれているのでしょうか。
退会済みユーザー

退会済みユーザー

2018/05/17 07:27

選択クエリ(画像で言うQ_Item_Buzai)の中で定義されています。 名称を変えておけば、選択クエリの新規作成画面内で使うテーブルを指定するだけで、 勝手にI_Item_IDどうし、I_Buzai_IDどうしを関連付けてくれるようになります。
Yuyuu

2018/05/17 07:40

理解できました! お忙しい中、すごく丁寧にありがとうございました!
guest

0

T_ItemとT_Buzaiはマスターですから、トランザクションとしてテーブルを追加して、マスターを参照する形が良いのではないかと思います。

その際、拡張などを考慮すると、加工する商品とその構成要素の部材は別テーブルにした方が良いかと思います。

T_商品加工実績[
・実績id オートナンバー
・item_id (=T_Item.I_ID)
・加工日や担当者などetc.
]
T_商品加工実績部材[
・実績部材id オートナンバー
・実績id (=T_商品加工実績.実績id)
・buzai_id (=T_Buzai.I_ID)
]

投稿2018/05/17 07:43

sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yuyuu

2018/05/17 07:54

ご回答ありがとうございます! 少しいじってみて、またわからなくなったら質問させてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問