Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Access 2016)
一ヵ月ごとにデータを格納し、フォームに表示したい
投稿日時: 21/06/15 11:04:44
投稿者: DIVAA

お世話になっております。
表題の件につきまして質問致します。
 
社員の給与に関する手当をaccessで管理しています。
手当の詳細は、食費、交通費、住宅手当等です。
 
今回実装したいのは、1か月ごとに手当のデータを保存しフォーム上で見れるようにしたいのです。
 
帳票フォーム上でデータを編集し、保存ボタンを押すとその月のデータを格納。
そして給料月の切り替え日がきたら同じ帳票フォーム上でデータを編集し次の月のデータとして格納という形にしたいです。
 
給与の締めは毎月30日になりますのでデータの保存日は月末にしたいです。
また切り替え日ですが給与が支払われるとその月のデータは保存さえしていればフォーム上に表示されていなくていいので
切り替え日を翌月10日として10日以降に入力されたものは翌月末のデータとして保存されるような仕組みにしたいです。
逆に言えば翌月10日以前に保存されたものは末日が過ぎていても保存日は当月末になるということです。
 
保存されている月ごとのデータはコンボボックスより日付を選び帳票フォームで見れるようにしたいです。
これは同じフォーム上で見れなくてもいいですが、見れた方が便利かなと思いました。
 
テーブル構造は
社員番号:数値型
通勤費/公共交通機関:数値型
通勤費/車:数値型
住宅手当:数値型
食事手当:数値型
給料締め日:日付型
給料支払日:日付型
 
以上になります。
締め日には当月末、支払日には翌月10日が自動で格納されるようにしたいです。
上記のようなことは実装可能でしょうか?
 
私の知識不足の頭ではこういったテーブル構造やフォームの設計が限界でした。
なにかいいアイデアや、アドバイスなどありましたら是非お願い致します。
 
気になる点や情報不足がありましたらご指摘ください。
宜しくお願い致します。

回答
投稿日時: 21/06/16 12:07:48
投稿者: Suzu

手当のみを別テーブルにする必要性に疑問があります。
 
 
当方がイメージするシステムなら
 
1. 【社員給与マスタ】テーブル
    社員毎、毎月のベースとして、決まっている金額がある
  役職、扶養者の有無等 により 基本は決まっており、計算のベースとなる
 
   社員番号、社員番号毎の連番 --- ここまでで複合主キーフィールド
    基本給、通勤費、住宅手当、食事手当、役職手当 ・・・etc
 
 
2. 【社員給与明細】テーブル
  社員毎、月ごとの 給与自体の明細をテーブルとして保存する。
  毎月、社員給与マスターの 社員番号毎に、社員番号毎の連番の最大の値のレコードの値を参照し作成
 
   社員番号、年月、基本給、残業時間、残業手当、深夜時間、深夜手当、各控除額・・etc
 
 
今回のご質問は、2のうちの一部と思いますが、
2の他の部分も 当然 テーブル データとしては保存されているのですよね?
 
としたとき、今回のテーブルだけ分ける意図は何でしょうか?
 
 
社員毎、年月毎の明細を見れる画面はあるのですよね?
その画面は、「社員」「年月」毎 に見れる様になっていませんか?
 
締め日、支払日 は、社員毎に変わるのですか?
年月 により、締め日、支払日 が 変わるのは判りますが、社員毎に変わりますか?
 
変わらないのであれば、締め日や支払い日を個別レコードとする必要がないと思います。
 
何かの事情で、支払いや締めを個人的に個別に変える事はあるかもしれませんが
手当のみの 締め日・支払日 を変える話ではありませんよね?
 
〇〇さんの△△年××月 の給与明細 の中身全て のテーブルとして持ち
必要なら、そのテーブル内のフィールドとして締め日・支給日を持てば良いと思います。
 
手当のみを別テーブルにするメリットがない と思います。

投稿日時: 21/06/21 10:51:49
投稿者: DIVAA

検討し直します。