• ベストアンサー

Accessでこんなことをしたいのですが。。。

入力フォームを作成しているのですが、以下のようなことをしたいと思っています。 ■入力フォーム [会社入力](ボタン) 会社ID [   ] 会社名 [   ] 会社住所[   ] となっていた場合に、会社入力というボタンを押すと、 会社一覧の表(以下のようなもの)が出てくるとします。 会社ID   会社名   会社住所 110     A社   東京都渋谷区 110     B社   東京都新宿区 150     C社   千葉県千葉市 120     D社   埼玉県さいたま市 110     E社   神奈川県横浜市 ※会社IDは会社それぞれについているわけではなく、会社のグループ分けのようなものです。 そして、この中で該当のものを選んで、ボタンを押すと、入力フォームの該当欄に入る、というようにしたいのです。 会社一覧の表の中にない場合は、新たに入力もできるようにしたいのですが。。。 会社一覧を出すのと、新たに追加するのはなんとなく方法がわかるのですが、 選んだものを入力フォームのデータにいれる、という方法がわからないのです。 どのようにしたらいいでしょうか? Ac2000です。

質問者が選んだベストアンサー

  • ベストアンサー
  • imo
  • ベストアンサー率35% (28/78)
回答No.1

1.マクロを利用する方法 マクロを新規作成して アクションに「値の代入」を選択し アイテムに 値を代入したいフィールド(入力フォーム) 式に 選択したフィールド(会社一覧表) を設定してそのマクロをボタンに割り当てればよいと思います。 2.イベントプロシージャを利用する方法 ボタンのクリック時のイベントプロシージャに  Forms![入力フォーム]![会社名]=Forms![会社一覧表]![会社名] と入力する。

KODAMAR
質問者

お礼

回答ありがとうございます。 2番の方法をつかうことにしました。 時間があったら、1番も試してみたいと思います。 ありがとうございました。

その他の回答 (1)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。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 では。

KODAMAR
質問者

お礼

毎回毎回(笑)回答ありがとうございます。 今回は#1の方の2番の方法をつかうことにしました。 時間ができたらこちらも試してみたいと思います。 最近イベントプロシージャが好きになってきました(^^ (好き、とできる、は別物ですけど) maruru01さんの指導のおかげです! ありがとうございました。

関連するQ&A