- ベストアンサー
Accessコンボボックスについて(初心者)
例えば以下のような2フィールドのテーブルがあり 商品コード 商品名 1111 パソコン ・ ・ ・ ・ フォームでひとつのコンボボックスを作る際このテーブルを参照し、2フィールドとも表示され、なおかつ入力出来るようにしたいのですが・・。 表示はするものの入力となると商品コードのフィールドのデータしか入力出来ません。 要は商品コードを入力すれば同じレコードの商品名が入力出来るようになれば良いので、別のやり方があればかまわないのですが・・。 良きアドバイスをお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
コンボボックスでは コンボボックスがとる値(テーブルに格納されるもの)は連結列のもの 表示および入力できるのは表示幅を0以外に設定した左端のものです >要は商品コードを入力すれば同じレコードの商品名が入力出来る >用になれば良いので、 はじめの入力はオペレータが入力するもの 後ろの入力はテーブルに格納されるということ であれば 商品名を連結列とし、フィールドの並びを商品コード、商品名 の順にすればいいでしょう
その他の回答 (1)
- oka123
- ベストアンサー率31% (69/219)
商品コード 商品名 を表示する項目のフォーム内・フイールド名を それぞれ TX1 TX2 と仮にします ---2ツのテキスト項目が有ると思います--- TX1 はボックス型 TX2 はテキストボックス 文面からすると TX1 には 商品コード と 商品名 が同時表示されているのですね 方法は フォーム のデザインで「表示」でプロパティを表示させて そのつぎに TX1 のプロパティを開き そのなかの 更新前処理 のところをクリック、 イベントプロシジァ を選び 右端の3つのピリオドのようなところをクリックして 開く画面のなかに (場所はPrivate Sub TX1_BeforeUpdate(Cancel As Integer)の下段) ME![TX2]=ME![TX1].COLUMN(1) と記載します 意味は TX2 のところへ TX1で指定している2つ目の 項目を移しなさい という意味です もしも COLUMN(0) なら1番目という意味 COLUMN(1) なら2番目という意味
お礼
ご回答ありがとうございます。 参考になりました。
補足
ご回答ありがとうございます。ご指摘のとおり修正し、フォームを起動して入力するたびデバッグを促すメッセージが出て、 「実行時エラー=438」とのメッセージが。 VBのエディタへのコピペする際TX1、TX2の箇所も書き換えているのですが・・。
お礼
ご回答ありがとうございます。 試しにフォームウィザードでやってみたらリストBoxでしたが近いのが出来ました。工夫すれば何とか出来そうです。 何となくですがイメージが理解しつつあります。 助かります。