Microsoft Access 掲示板

非連結フィールドの値からテーブルデータを参照して返したい

4 コメント
views
4 フォロー

御世話になります。
テーブル B_1 在庫品マスター テーブル Z_1 社員マスター があります。
テーブル Z_1 社員マスター のフィールドは 社員ID 作業者コード 氏名 になっています。

テーブル B_1 在庫品マスター を元に フォーム F_1_0 在庫品マスター 入庫の入力画面 を作成しました。
この フォーム F_1_0 在庫品マスター 入庫の入力画面 に
非連結のテキストボックス 作業者コード と 氏名 の2つが配置してあります。

この 非連結のテキストボックス 作業者コード に作業者コード が入力されると 非連結のテキストボックス 氏名
に Z_1 社員マスター を参照して 作業者コードに対応した氏名が返されるようにしたいのですが可能でしょうか?

igaguri
作成: 2019/05/02 (木) 06:25:44
通報 ...
1

[Z_1 社員マスター]の主キーフィールドはなんでしょうか。
また、社員ID と 作業者コード の違いはなんでしょうか。

[B_1 在庫品マスター]のフィールドも提示してください。

非連結のテキストボックス 作業者コード と 氏名 の2つが配置してあります。

非連結ですと、テーブルに反映されませんし、フォームを閉じれば消えてしまいますが、
入力したデータをどうするつもりですか。

2
igaguri 2019/05/02 (木) 16:28:58 32a1e@d14a6

社員IDはあくまでも登録されている順でオートナンバーでふられています。
作業者コードは1001から始まる4桁の数字で、上2桁で所属する課を表示し、下2桁で課内の登録社員を01から99で登録しています。

Z_1 社員マスター
作業者コード   氏名
1001     阿部晋三
1002     田中角栄
1003     鳩山由紀夫

非連結のテキストボックス 作業者コード に1002を入力した時に 非連結のテキストボックス 氏名 に 田名角栄
と表示されるようにしたいのですが・・・。

ちなみに入庫伝票を作成する入力作業をした作業者が自分の作業者コードを入れた時に間違っていないかを確認する為に行いたいのですが・・・。他に良い方法がありますでしょうか?

3

主キーの設定、在庫品マスターのフィールド構成等がまだ、不明なので、
一般的な推奨されるテーブル設計に基づいて回答します。

社員ID はオートナンバー型
作業者コード は 所属課コード + 連番
ということですね。

主キーがどれか不明ですが、
作業者コードでは、異動で所属課が変わることもあることを考慮すると、
主キーはオートナンバー型の 社員ID にすべきですね。

社員マスターは、他のテーブルから参照されることが多くあるはずですが、
その場合、社員マスターを参照するテーブルには、社員マスターの主キーフィールドとリンクするフィールドを持たせます。

マスターの主キーフィールドのデータが変更されると、参照先も変更する必要が生じてしまい処理が煩雑になりますので、主キーは一度付与したら変更がないようなものにすべきです。

在庫品マスター で入力した作業者を保存しておく必要がある場合は、
在庫品マスター に 社員ID (数値型) のフィールドを持たせます。

社員ID は意味のない数値なので、入力するときは、
作業者コード または 氏名 で入力したいという要望は当然でてきます。

そのときは、コンボボックスを使うと簡単に実現できます。

作業者コードで入力したい場合は、コンボボックスを2つ配置して下記のように設定します。

名前 cb作業者コード
コントロールソース 社員ID
値集合ソース 社員マスター
連結列 1
列数 3
列幅 0cm;2cm;4cm   ←データ長に合わせて適宜修正してください。
リスト幅 6cm

名前 cb作業者名
コントロールソース 社員ID
値集合ソース 社員マスター
連結列 1
列数 3
列幅 0cm;0cm;4cm
リスト幅 4cm

これで、cb作業者コード で作業者コードを入力するかリストから選択すると、
cb作業者名 には、氏名が表示されます。
テーブルの社員IDフィールドには、該当する社員IDが表示されます。

また、cb作業者名 で氏名を入力するか選択することもできます。

下記に上記と同様の方法のサンプルがありますので参考にしてください。

コードでも名称でも入力できるコンボボックス
受注入力フォームで、商品マスタから商品コードを参照して入力するときに、商品コードが分かっているときは、商品コードで入力、わからないときは、商品名をコンボボックスのリストから選択入力できるようにしたい。 下図のようにコード用のコンボボックスと商品名用のコンボボックスを並べて、どちらから入力することも可能で、入力したら即、他方のコンボボックスの値も同期するような仕様にする方法を紹介します。 ...
fc2

4
igaguri 2019/05/02 (木) 23:22:57 32a1e@d14a6

ありがとうございます。無事にできました。