2011年11月9日水曜日

第4章練習問題

Access2003応用
練習問題(P73)

追加課題1:
勤務時間が6時間をこえる場合は,1時間の休憩を入れなければならないとする.
このような場合の賃金を表示するフィールドを,「賃金2」というフィールド名で作成せよ.
賃金2: IIf(
    [勤務時間]>6,
    [時間単価]*([勤務時間]-1),
    [時間単価]*[勤務時間]
)

追加課題2:
退勤時刻が18:00を過ぎた場合,18:00以降の賃金が1.25倍になるとする.
このような場合の賃金を表示するフィールドを,「賃金3」というフィールド名で作成せよ.
追加課題2場合分け: IIf(
    DateDiff("n", [退勤時刻], "18:00")>=0,
    "1",
    IIf(
        DateDiff("n", [出勤時刻], "18:00")>=0,
        "2",
        "3"
    )
)
賃金3: IIf(
    DateDiff("n", [退勤時刻], "18:00")>=0,
    [時間単価]*[勤務時間],
    IIf(
        DateDiff("n", [出勤時刻], "18:00")>0,
        DateDiff("n", [出勤時刻], "18:00")/60*[時間単価]+DateDiff("n", "18:00", [退勤時刻])/60*[時間単価]*1.25,
        [時間単価]*[勤務時間]*1.25
    )
)

追加課題3:
追加課題1と追加課題2の内容を同時に満たすフィールドを,「賃金4」というフィールド名で作成せよ.
追加課題3場合分け: IIf(
    DateDiff("n", [退勤時刻], "18:00")>=0,
    IIf(
        [勤務時間]>6,
        "1-1",
        "1-2"
    ),
    IIf(
        DateDiff("n", [出勤時刻], "18:00")>=0,
        IIf(
            [勤務時間]>6,
            "2-1",
            "2-2"
        ),
        IIf(
            [勤務時間]>6,
            "3-1",
            "3-2"
        )
    )
)
賃金4: IIf(
    DateDiff("n", [退勤時刻], "18:00")>=0,
    IIf(
        [勤務時間]>6,
        [時間単価]*([勤務時間]-1),
        [時間単価]*[勤務時間]
    ),
    IIf(
        DateDiff("n", [出勤時刻], "18:00")>0,
        IIf(
            [勤務時間]>6,
            (DateDiff("n", [出勤時刻], "18:00")/60-1)*[時間単価]+DateDiff("n", "18:00", [退勤時刻])/60*[時間単価]*1.25,
            DateDiff("n", [出勤時刻], "18:00")/60*[時間単価]+DateDiff("n", "18:00", [退勤時刻])/60*[時間単価]*1.25
        ),
        IIf(
            [勤務時間]>6,
            [時間単価]*([勤務時間]-1)*1.25,
            [時間単価]*[勤務時間]*1.25
        )
    )
)

0 件のコメント: