- ベストアンサー
Accessでこんなことをしたいのですが。。。
入力フォームを作成しているのですが、以下のようなことをしたいと思っています。 ■入力フォーム [会社入力](ボタン) 会社ID [ ] 会社名 [ ] 会社住所[ ] となっていた場合に、会社入力というボタンを押すと、 会社一覧の表(以下のようなもの)が出てくるとします。 会社ID 会社名 会社住所 110 A社 東京都渋谷区 110 B社 東京都新宿区 150 C社 千葉県千葉市 120 D社 埼玉県さいたま市 110 E社 神奈川県横浜市 ※会社IDは会社それぞれについているわけではなく、会社のグループ分けのようなものです。 そして、この中で該当のものを選んで、ボタンを押すと、入力フォームの該当欄に入る、というようにしたいのです。 会社一覧の表の中にない場合は、新たに入力もできるようにしたいのですが。。。 会社一覧を出すのと、新たに追加するのはなんとなく方法がわかるのですが、 選んだものを入力フォームのデータにいれる、という方法がわからないのです。 どのようにしたらいいでしょうか? Ac2000です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
1.マクロを利用する方法 マクロを新規作成して アクションに「値の代入」を選択し アイテムに 値を代入したいフィールド(入力フォーム) 式に 選択したフィールド(会社一覧表) を設定してそのマクロをボタンに割り当てればよいと思います。 2.イベントプロシージャを利用する方法 ボタンのクリック時のイベントプロシージャに Forms![入力フォーム]![会社名]=Forms![会社一覧表]![会社名] と入力する。
その他の回答 (1)
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 コンボボックスを使用したらどうですか。 おそらく会社情報のテーブルがあると思いますので、そのテーブルをコンボボックスの値集合ソースにします。 ちなみにコンボボックスの列数をそのテーブルのフィールド数に設定しておきます。あと、列見出しは"いいえ"です。 そして以下のように書きます。(コンボボックスは[cbo会社一覧]という名前とする) コンボボックスのクリックイベントに書けば選択したら直ぐに表示されますし、 別にコマンドボタンを作り、そのクリックイベントに書いてもいいです。 ちなみに値を入れる該当欄はそれぞれのテキストボックスとしました。 If IsNull(Me!cbo会社一覧) Then '未選択 Exit Sub Else Me!txt会社ID.SetFocus Me!txt会社ID.Text = CStr(Me!cbo会社一覧.Column(0)) Me!txt会社名.SetFocus Me!txt会社名.Text = CStr(Me!cbo会社一覧.Column(1)) Me!txt会社住所.SetFocus Me!txt会社住所.Text = CStr(Me!cbo会社一覧.Column(2)) End If では。
お礼
毎回毎回(笑)回答ありがとうございます。 今回は#1の方の2番の方法をつかうことにしました。 時間ができたらこちらも試してみたいと思います。 最近イベントプロシージャが好きになってきました(^^ (好き、とできる、は別物ですけど) maruru01さんの指導のおかげです! ありがとうございました。
お礼
回答ありがとうございます。 2番の方法をつかうことにしました。 時間があったら、1番も試してみたいと思います。 ありがとうございました。