- ベストアンサー
access フォームのコンボボックスでの式
となりのテキストボックスに入力があったらコンボボックスからリストを自動選択、テキストボックスが空白なら手動でリスト選択という風にしたいのですが、コンボボックスのコントロールソースに直接式を入れても、また、フォームの元になるクエリのフィールドに式を設定してもうまく動きません。 良い解決方法はありませんでようか? どう質問したら良いかわからず大雑把でわかりづらいかもしれませんが、宜しくお願い致します。 質問に足りない情報がありましたら、補足しますのでお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
補足ありがとうございます。状況が分かってきました。 1.商品マスタに「商品コード」と「仕入先コード」がある。 2.テキストボックス(商品コード)を入力すると、コンボボックス(仕入先コード)を自動入力。 3.商品コードが無い場合、コンボボックスから仕入先コードを選択。 と言う事でしょうか。 この処理を実現するにはVBAを使うしかないと思います。 足りない情報情報があるので、以下のように仮定します。 商品マスタのテーブル名「商品マスタ」 商品コードのデータ型 「数値型」 テキストボックスの名前「テキスト0」 コンボボックスの名前 「コンボ1」 以下手順 フォームのデザイン画面を開く 「テキスト0」のプロパティ→イベント→更新後処理 を「イベントプロシージャ」に [表示]→[コード]でVBの画面を開き、下記をコピペ ----この下から---- Private Sub テキスト0_AfterUpdate() 'テキストボックスが更新された後の処理です。 '商品マスタから商品コードをキーにして、仕入先コードを参照します。 コンボ1 = DLookup("仕入先コード", "商品マスタ", "商品コード=" & テキスト0) End Sub ----この上まで---- VBの画面を閉じる 以上手順 こんな感じでいかがでしょうか?
その他の回答 (1)
- venzou
- ベストアンサー率71% (311/435)
テキストボックスとコンボボックスのコントロールソースに同じフィールドを設定すれいいのでは? 例 テキストボックスのコントロールソース="フィールド1" コンボボックスののコントロールソース="フィールド1" これで連動すると思いますが・・・こういう事ではないのかな? 質問の意図を取り違えていたら、ごめんなさい。
お礼
ご回答ありがとうございます。 やはり質問の仕方が悪かったようです・・・ 補足に付け足したので、また回答を頂けたらと思います。宜しくお願い致します。
補足
テキストボックスは商品コード、コンボボックスは仕入先コードです。 商品はコードがあるもののみ登録しております(これは管理上変更不可です)ので、テキストボックスにに商品コードが入るものと入らないものがあります。 登録の無い商品の売上入力の際に仕入先をコンボから手入力したいのです。 登録のあるものはクエリから自動でコンボで表示させ、無いものを手動で選択・・・といった感じです。 宜しくお願い致します。
お礼
ご回答ありがとうございます。 早速明日会社で実行してみます。 夜になりますが、また結果を報告に来ます。 ありがとうございました。
補足
おかげさまで無事解決しました。 またわからないことが出てきたら質問に来ますので宜しくお願いします。 ありがとうございました。