Microsoft Access 掲示板

勤続年数について

3 コメント
views
4 フォロー

働き方改革による有給休暇取得に関係しDBを作ろうと思ってます。
まだ未設計段階ですが...

そこで、勤続年数を0.5単位で取得する必要があり、その方法が探しても
見つける事ができず居ます。(年数はDateDiffでいっぱいありました)

<法定付与日数>
 勤続年数 0.5 1.5 2.5 3.5 ....
 付与日数 10D 11D 12D 14D ....

入社日はあるので、そこから算出する方法のヒントでも頂けると助かります。
法律読みながら計画休暇表を作りで理解だけで、もう頭パンク状態で(汗)

後、テーブル設計の考え方ですが...

T_SHAIN
氏名
入社日
有給残日  ← 最終付与日を見て、入社日から勤続年数で加算して利用
最終付与日 ← 付与したら更新

こんな感じと考えているのですが何となくシックリこなくて、こちらもヒントを頂けると助かります、

shige
作成: 2019/03/06 (水) 11:21:35
通報 ...
1
shige 2019/03/06 (水) 15:01:52 d1a4b@b63e8

自己解決
月数にすれば簡単でしたね(汗

Function tuki(day1, day2 As Date)

’使い方 tuki([入社日],[退社日])  tuki([入社日],date())
Dim i As Long

If (Format(day1, "dd") < Format(day2, "dd")) Then
    i = DateDiff("m", day1, day2)
Else
    i = DateDiff("m", day1, day2) - 1
End If

tuki = i
End Function

テーブル設計は添付の通りに検討中ですが...画像1

2

shigeさん、移設第一号の質問、ありがとうございます。

私も法律関係には詳しくないのであまり的確なアドバイスは難しいと思いますが、テーブル設計は画像のものでよくできていると思われます。あとは、いろいろ、テスト入力などして問題点をあらいだせばいいかと思います。

ちなみに、コード部分ですが、前に``` (トリプルバッククォート)を挿入するとコードブロックになり読みやすくなりますので、編集ボタンから修正してみてください。バッククォートは Shift+@ で入力できます。
さらに前のものは、```js とすると色がつきますので、より見やすくなります。

下記のようになります。

Function tuki(day1, day2 As Date)

    ’使い方 tuki([入社日],[退社日])  tuki([入社日],date())
    Dim i As Long

    If (Format(day1, "dd") < Format(day2, "dd")) Then
        i = DateDiff("m", day1, day2)
    Else
        i = DateDiff("m", day1, day2) - 1
    End If

    tuki = i
End Function
3
shige 2019/03/07 (木) 09:24:48 d1a4b@b63e8

こちらこそ、後押しありがとうございます
テーブル設計に何となく不安があったのですが、本日より作成にかかろうと思います

最初の質問は編集可能でしたがレスの編集が分からなかったのでテストさせて頂きます(汗
確かに、かなり見やすくなってますね!
掲示板とかHTML?は全然分からないので板汚す可能性大です

この下が囲われる??
Function tuki(day1, day2 As Date)
’使い方 tuki([入社日],[退社日])  tuki([入社日],date())
 Dim i As Long

 If (Format(day1, "dd") < Format(day2, "dd")) Then
     i = DateDiff("m", day1, day2)
 Else
     i = DateDiff("m", day1, day2) - 1
 End If

 tuki = i
End Function