こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

アクセス2010 操作方法について

こんばんは、アクセス2010の操作方法について教えてください。

【やりたいこと】
フォームで、コンボボックスから社員名を選択した際、その選んだ社員名に該当する「社員番号」を、隣に作ったテキストボックスに表示させたい。


テーブルは「基礎データ」と「入力用」の2つがあります。

「基礎データ」のフィールドには、(1)社員名 (2)社員番号(主キー)

「入力用」のフィールドには、(1)社員名 (2)社員番号 (3)記録があります。尚、(1)の社員名はルックアップで「基礎データ」の社員名を参照しています。

「入力用」のテーブルから、フォームを作成しました。
このフォームで(1)社員名をコンボボックスから選択した際に、(2)に該当する社員番号を表示させたいのです。

※勉強を始めて日が浅く、いろいろ調べていますが思うように進まず、解決ができないので質問しました。
わかりにくい所もあるとは思いますが、ご指導をお願いできたらと思います。
よろしくお願いします。

投稿日時 - 2014-10-03 18:10:30

QNo.8777623

すぐに回答ほしいです

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

まず、テーブル設計が間違っています。

「基礎データ」というのはいわゆにマスターテーブルになります。
ほとんど固定的なデータを格納します。
これは、(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社員名 から社員名を選択、というような柔軟な対応ができます。

投稿日時 - 2014-10-03 22:03:32

お礼

早速のご指導ありがとうございました。
またテーブル作成時のご指摘等、非常に勉強になりました。

ご指導の通り作成したところ、スムーズに作成する事ができました。
これからもアクセスを勉強していくつもりですが、身近にアクセスを操作できる
人がいないため躓く事が多く、この場を借りて質問させて頂く事もあると思いますので、
今後共よろしくお願いいたします。

ありがとうございました。

投稿日時 - 2014-10-03 23:14:35

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問