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

締切り済みの質問

Access データの年度更新について 

いつも大変お世話なっております。Accessを始めて2週間の初心者です。
今、テーブルにレコードを追加していき、下記のような処理を行いたいのですが
どのように構築したらいいのかわかりません。質問の仕方もうまくないので恐縮です。
どのようにというのは、例えばクエリの作り方もそうですし、クエリのためのテーブルを
作らなければ実現できない・・等、イメージが沸きません。

社員コード(社員CD)と資格名の過去の履歴のテーブル(TBL_資格期間一覧)があります。
社員No(社員数)は数百、また資格名の過去履歴は各社員によって異なるのでレコード数
は個々に異なります。

社員CD   期間開始   期間終了   資格名
001234   2004/07/01  2008/03/31   S4
001234   2009/04/01  2016/03/31   S3
001234   2016/04/01  2017/03/31   S2
056789   2010/04/01  2012/03/31   T6
056789   2012/04/01  2014/03/31   T5
056789   2014/04/01  2015/03/31   T4
056789   2015/04/01  2017/03/31   T3
  ・        ・        ・       ・

次年度、001234さんはS2からS1に昇格した場合
001234   2017/04/01  2018/03/31   S1
が追加される。
次年度、056789さんはT3のまま変わらない場合
期間終了フィールドが次年度末に更新され、2018/3/31になる。

結果、TBL_資格期間一覧を下記のようにしたいと思っています。

社員CD   期間開始   期間終了   資格名
001234   2004/07/01  2008/03/31   S4
001234   2009/04/01  2016/03/31   S3
001234   2016/04/01  2017/03/31   S2
056789   2010/04/01  2012/03/31   T6
056789   2012/04/01  2014/03/31   T5
056789   2014/04/01  2015/03/31   T4
056789   2015/04/01  2018/03/31   T3   ←更新される 
001234   2017/04/01  2018/03/31   S1   ←追加される
  ・        ・        ・       ・
TBL_資格期間一覧を開いて、全社員分をマニュアルで日付を入力していく、レコードを追加
していくといった工数をかけられないので、
(1)資格変更のない社員は、自動で更新される
(2)資格変更のある社員は、TBL_資格変更 に社員CDと資格名を入れることで レコードが
 追加される
といった処理をさせたいと思っています。

お力添えいただけないでしょうか?
宜しくお願い致します。

投稿日時 - 2016-11-17 20:52:12

QNo.9256931

困ってます

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

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

回答(1)

ANo.1

問題点を把握しきれませんので、回答じゃありません。

1.テーブルにレコードを追加していき
_テーブルはどのようなものを想定してますか
_社員テーブル(ID、社員名、社員CD、)
_資格テーブル(ID、資格名、)
_資格履歴テーブル(資格取得日、社員ID、資格ID、資格ランク)
__ 重複登録を避けるため 資格取得日、社員ID、資格ID、資格ランクの4フィールドに主キー定義
_最新資格テーブル(資格取得日、社員ID、資格ID、資格ランク)
__社員ID、資格IDの2フィールドに主キー設定

2.どのように構築したらいいのかわかりません。
どのようにというのは、例えばクエリの作り方もそうですし、クエリのためのテーブルを
作らなければ実現できない・・等、イメージが沸きません。
_先ずテーブルの構築から始めます。

3.社員コード(社員CD)と資格名の過去の履歴のテーブル(TBL_資格期間一覧)があります。
社員No(社員数)は数百、また資格名の過去履歴は各社員によって異なるのでレコード数
_資格ですよね、役職のような気がしますが。
_資格は普通期間開始ではなく取得日ではないでしょうか
_また資格は多くの場合取得すると永久不滅では…期間終了は意味がない

社員CD   期間開始   期間終了   資格名
001234   2004/07/01  2008/03/31   S4
001234   2009/04/01  2016/03/31   S3
001234   2016/04/01  2017/03/31   S2
056789   2010/04/01  2012/03/31   T6
056789   2012/04/01  2014/03/31   T5
056789   2014/04/01  2015/03/31   T4
056789   2015/04/01  2017/03/31   T3
  ・        ・        ・       ・

次年度、001234さんはS2からS1に昇格した場合
001234   2017/04/01  2018/03/31   S1
が追加される。
次年度、056789さんはT3のまま変わらない場合
期間終了フィールドが次年度末に更新され、2018/3/31になる。

結果、TBL_資格期間一覧を下記のようにしたいと思っています。

社員CD   期間開始   期間終了   資格名
001234   2004/07/01  2008/03/31   S4
001234   2009/04/01  2016/03/31   S3
001234   2016/04/01  2017/03/31   S2
056789   2010/04/01  2012/03/31   T6
056789   2012/04/01  2014/03/31   T5
056789   2014/04/01  2015/03/31   T4
056789   2015/04/01  2018/03/31   T3   ←更新される 
001234   2017/04/01  2018/03/31   S1   ←追加される
  ・        ・        ・       ・

投稿日時 - 2016-11-20 19:01:10

お礼

chayamatiさん

ご回答ありがとうございます。更新クエリ、追加クエリを組み合わせ、なんとか得たい結果が出せました。資格→資格級若しくは総合職2級とか、一般に通じる表現で質問する必要があるな・・と勉強になりました。 ありがとうございました。

投稿日時 - 2016-11-24 18:21:55