Microsoft Access 掲示板

クエリにおいてテーブルの元データが反映されない / 5

7 コメント
views
4 フォロー
5
りんご 2021/07/05 (月) 13:24:11 c564b@0e907 >> 3

 私の回答はフォームとVBAを使う方法です。
 まず、テーブルAの社員番号とテーブルBの社員番号について準備します。テーブルを開いて、それぞれに主キーを設定します。次に、クエリCを開いて、社員番号フィールド同士を結合します。クエリCを実行した時に、それぞれの社員番号フィールドがその他のフィールドと一緒に表示されるようにしておきます。
 クエリCをもとにフォームを作成すると、テキストボックスが自動作成されるので、テーブルAの社員番号がコントロールソースになっているものを選択します。デザインタブのプロパティシートをクリック、イベント項目の更新後処理をクリック、コードビルダーを開きコードを記します。

Me.テーブルB_社員番号 = Me.テーブルA_社員番号

 これで、おそらく希望に答えられたのではないかと思います。
 主キー同士を結合したので、クエリCを開いて、テーブルAの社員番号とテキスト型データ4を新規入力すれば、テーブルBの社員番号が自動登録出来るようになったと思います。しかし、社員番号が新規入力、データ4が未入力の状態で終了すると、自動登録されないと思います。うっかりすると、テーブルBの社員番号がテーブルAの社員番号に自動変更されたりすることもありそうです。だんだん何かおかしいデータベースになっていくでしょう。

テーブルAは社員のマスタとして保存しています。テーブルBのデータをAに入れてしまうとマスタではなくなってしまうのでテーブルを分けています。
 私もマスターテーブルとそれ以外のテーブルで分けていた事があります。オリンピックの選手・競技・運営スタッフ・観客を思い浮かべて、テーブルを用意するみたいな事もやっていました。最近は、関数従属性に従うようにしていますが、昔の癖が邪魔して大変です。
 色々書いてきましたが、私の回答より、Hatenaさんの回答がとても参考になります。いろいろググって見つける情報がまとまっていてオススメです。

通報 ...