Microsoft Access 掲示板

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

4 コメント
views
4 フォロー
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

通報 ...