- 締切済み
アクセスのフォーム画面の入力について教えてください。
アクセス全くの初心者です。 2・3日前から一人で模索中です。 フォームの画面で、仕入れ表を作っています。 商品のメーカー名をコードから引っ張って表示できるようにしたいのですが・・・。 今の現状は、 (1)メーカーコードとメーカー名のテーブル(Tメーカー)をつくりまし た。 (2)仕入れ表のテーブルをつくりました。(T仕入れ表) (3)メーカーコードとメーカー名のクエリをつくりました。 (4)TメーカーのメーカーコードとT仕入れ表のメーカーコードをリレー ションでつなぎました。 (5)仕入れ表のフォームで、メーカーコードのコントロールをコンボボッ クスにして、コントロールソースをメーカーコードにしました。 ここまでしたのですが、実際フォームで入力しているときに、メーカーコードの欄でコードを選択しても、メーカー名の欄にメーカー名がでてきません。 メーカーコードとメーカー名がつながっていないようなのです。 自分で考えても、どうすればよいのかぜんぜん分かりません。 説明も下手なのですが、もしどなたか助けてくれるかたがいらっしゃいましたら、宜しくお願いします。 とりあえず、メーカーコードでコード番号を選択したら、メーカー名のところに「○×産業」というように表示されるようにしたいのです。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
補足1:もちろん、参照も可! フォーム[T仕入表]で[Tメーカー1.ID]をコンボボックスで選択。 選択した[ID」に対応する[メーカー名]というテキストボックスに表示する。 もちろん、これも簡単に実現できます。 =DLookUp("メーカー名","Tメーカー","ID=" & Forms!T仕入表!Tメーカー_ID) テキストボックス[メーカー名]のコントロールソースでDLookup関数で参照させればいいです。 補足2:質問者のやり方の再現! SELECT T仕入表.ID, T仕入表.Tメーカー_ID, T仕入表.仕入日, T仕入表.仕入品名, Tメーカー.メーカー名 FROM T仕入表 LEFT JOIN Tメーカー ON T仕入表.Tメーカー_ID = Tメーカー.ID; このようなクエリを作成。 [T仕入表.Tメーカー_ID]をコンボボックスにする。 その後、フォームを作成。 当然に、 フォーム[T仕入表]で[Tメーカー1.ID]をコンボボックスで選択。 選択した[ID」に対応する[メーカー名]というテキストボックスに表示する。 もOK! これは、ANo2さんの言われる通りです。
- CHRONOS_0
- ベストアンサー率54% (457/838)
フォームのソースは両テーブルを使ったクエリにしているのですね アップされたやり方で出来るはずなんですが、クエリの作り方が悪いのかな フォームのソースにしたクエリをSQL表示し、それをここに貼り付けてください テーブルの詳しい情報(フィールド名とデータ型)もあったほうがいいですね
Q、コード番号を選択したら「○×産業」というように表示されるようにしたい。 A、その必要性はありません。 <Tメーカー> ID____メーカー名 101__メーカーA 102__メーカーB <T仕入表> ID__Tメーカー_ID___仕入日_________仕入品名 1_______________101__2007/11/11__商品A 2_______________102__2007/11/12__商品B 列名[メーカーコード]は、いかにも長いので[ID]に変更していますが同じことです。 さて、<T仕入表>で仕入先を特定するには、<Tメーカー!ID>を記録すれば十分です。 通常、仕入先が数十件以内であれば、これは、コンボボックスで選べば十分です。 手順1、<T仕入表>のデザインで[ルックアップ]を設定します。 表示コントロール=コンボボックス 値集合ソース=SELECT Tメーカー.ID, Tメーカー.メーカー名, * FROM Tメーカー; 連結列=1 列数=2 列幅=0cm;3cm リスト行数=40 <T仕入表> ID__Tメーカー_ID__仕入日_________仕入品名 1___メーカーA______2007/11/11__商品A 2___メーカーB______2007/11/12__商品B 手順2、フォームウィザードで<T仕入表>を元にフォームを生成します。 これだけで、メーカー名をコンボボックスで選択すると<Tメーカー!ID>が<T仕入表!Tメーカー_ID>に。 「その必要性はありません」という理由です。