0

私の Access データベース フォームには、休暇の計算を含むフィールドがあります。現在の式は次のとおりです。

Function calcVacEarned(asOfDate As Date, HireDate As Date)
  Dim yos As Single

  yos = (asOfDate - HireDate) / 365.25

  Select Case yos
    Case Is > 10
      calcVacEarned = 120
    Case Is > 3
      calcVacEarned = 80
    Case Is > 1
      calcVacEarned = 40
    Case Else
      calcVacEarned = 0
  End Select
End Function

しかし、時刻が正しく出ません。当社の休暇期間は、初年度は記念日から記念日まで、翌年は暦年までです。

たとえば、2010 年 2 月 11 日に採用された場合、記念日は 2011 年 2 月 11 日であり、1 年間の勤務と 5 日間の休暇が与えられます。(つまり、2011 年 11 月 2 日から 2011 年 12 月 31 日までの 5 日間を利用するか、失うかのどちらかです)

その後、2012 年 1 月 1 日から私の休暇は 2 年目に 5 日間から始まります。

2013 年 1 月 1 日から 3 年目に突入し、10 日間の猶予が与えられます。

これを表すには上記の関数が必要です...助けて!! ありがとう

4

1 に答える 1

0

あなたの問題を正しく理解していれば、これはあなたが望むことをするでしょう。3 年を超える年については、雇用日を変更するだけです。

Function calcVacEarned(asOfDate As Date, HireDate As Date)
    calcVacEarned = 0

    Dim yos As Single

    yos = (asOfDate - HireDate) / 365.25

    If yos > 1 And yos < 2 Then
        calcVacEarned = 40
    ElseIf yos > 2 Then
        HireDate = "01/01/" & Year(HireDate)
    End If

    yos = (asOfDate - HireDate) / 365.25

    Select Case yos
        Case Is > 10
            calcVacEarned = 120
        Case Is > 3
            calcVacEarned = 80
    End Select
End Function
于 2013-05-28T16:52:52.410 に答える