電子書籍の厳選無料作品が豊富!

Access : テーブルの情報を参照して、フォームに反映させる方法


はじめまして。Access初心者です。

データベースの参照の仕方について質問いたします。

現在、商品情報のデータベーステーブルがあり
その中には「商品ID」「メーカー名」「商品名」、3つのフィールドがあります。

ここから、入庫テーブルを作るために
入庫フォームに「商品ID」を入力すると
自動で「メーカー名」「商品名」が表示され
最後に「入庫数」を入力すれば、入庫テーブルが完成するようにしたいです。

例)
データベーステーブル
商品ID  メーカー名  商品名
1      A社      AAA
2      B社      BBB
3      C社      CCC
4      D社      DDD


上記のデータベースがあり
商品名「CCC」が100個入庫した際
入庫フォームに「3」を入力すると
「3」   「C社」   「CCC」が表示され
最後に、入庫数「100」を入力して、入庫テーブルの完了としたいです。


そこで、入庫フォームにデータベースの内容を反映させる仕方が分かりません。
どなたかご教授願えないでしょうか?

A 回答 (2件)

こんなのはどうでしょうか?



フォームの各テキストボックスが、[商品ID][メーカー名][商品名]の場合です。
商品情報のテーブルを「T_商品情報」で、商品IDが数値型の場合。
Private Sub 商品ID_AfterUpdate()
メーカー名 = DLookup("メーカー名", "T_商品情報", "商品ID=" & 商品ID)
商品名 = DLookup("商品名", "T_商品情報", "商品ID=" & 商品ID)
End Sub

商品IDが文字型の場合(あまりすすめられませんが)。
Private Sub 商品ID_AfterUpdate()
メーカー名 = DLookup("メーカー名", "T_商品情報", "商品ID=""" & 商品ID & """")
商品名 = DLookup("商品名", "T_商品情報", "商品ID=""" & 商品ID & """")
End Sub
    • good
    • 0
この回答へのお礼

fumufumu_2006さまへ
未だ解決できていませんが
方向性は見えてきました。
少しずつ進んで行こうと思います。
ありがとうございました。

お礼日時:2008/05/25 23:47

入庫テーブルのフィールドがわかりませんが、


一番楽なのは、フォームにコンボボックスを設け、
ROWソースに、「商品テーブル名」
列数に、3
列幅に、0.5cm;1.5cm,1.5cm
(各列の表示幅が足りなければ適当に変更してください)
とすれば、商品IDが取得できます。

ただ、ご質問の内容から、入庫テーブルや在庫テーブルにもメーカー名や商品名を保存しているように感じられます。
これは非常に無駄なことですし、データベースの整合性を失わせる元になります。
普通は、入庫テーブルや在庫テーブルには「商品ID」「メーカーID」を保存すべきです。
入庫テーブル等で、メーカー名や商品名を表示したければクエリで表示すべきです。
    • good
    • 0
この回答へのお礼

vizzar様
ありがとうございます。
なにぶん、初心者のため
ご教授いただいた内容がよく分かりませんでした。
引き続き努力していきます。

お礼日時:2008/05/25 23:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!