- ベストアンサー
アクセス2010の操作方法について
- アクセス2010の操作方法について教えてください。
- フォームで、コンボボックスから社員名を選択した際、その選んだ社員名に該当する「社員番号」を、隣に作ったテキストボックスに表示させたい。
- アクセス2010でフォームを作成し、コンボボックスで選択した社員名に対応する社員番号を表示させる方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
まず、テーブル設計が間違っています。 「基礎データ」というのはいわゆにマスターテーブルになります。 ほとんど固定的なデータを格納します。 これは、(1)社員名 (2)社員番号(主キー) で問題ないですが、通常は、主キーのほうを前に置きますので、下記のように順番を入れ替えてください。 (1)社員番号(主キー) (2)社員名 「入力用」はトランザクションテーブルというものになります。 日々、更新、追加が行われるデータを変動的データを格納します。 こちらには、マスターテーブルの主キーとリンクするフィールド(外部キー)とそれ以外の変動データを格納します。マスターテーブルにある主キー以外のフィールドは重複するのでおいてはいけません。ですので、 (1)社員番号 (2)記録 となります。社員名はおきません。 (1)社員番号 はルックアップを設定して社員名を表示させてもいいですが、実際に格納されているは社員番号ですので、変に誤解を生む原因になるので社員番号をそのまま表示させたほうがいいでしょう。 「入力用」をソースとするフォームでは、社員名を選択するコンボボックスの設定は下記のようにします。 コントロールソース 社員番号 値集合ソース 基礎データ 連結列 1 列数 2 列幅 0cm;5cm 名前 cb社員名 これで、社員名が表示されます。 意味としては、基礎データの2列のうち、1列目の幅を0にして表示にして2列目を表示しています。ただし、連結列は1列目ですので格納されるのは社員番号となります。 社員番号を表示するテキストボックスは下記のように設定します。 コントロールソース =[cb社員名].Column(0) これはコンボボックス「cb社員名」の1列目の値を表示させるという意味です。 このテキストボックスをコンボボックスにして、下記のように設定してもいいです。 コントロールソース 社員番号 値集合ソース 基礎データ 連結列 1 列数 2 列幅 1cm;5cm リスト幅 6cm 名前 cb社員番号 これで、社員番号を選択することで、社員名を表示させるということもできます。 つまり、社員番号がわかっているときは、cb社員番号に社員番号を入力、わからないときはcb社員名 から社員名を選択、というような柔軟な対応ができます。
お礼
早速のご指導ありがとうございました。 またテーブル作成時のご指摘等、非常に勉強になりました。 ご指導の通り作成したところ、スムーズに作成する事ができました。 これからもアクセスを勉強していくつもりですが、身近にアクセスを操作できる 人がいないため躓く事が多く、この場を借りて質問させて頂く事もあると思いますので、 今後共よろしくお願いいたします。 ありがとうございました。