- 締切済み
お世話になります。
お世話になります。 先日、間違えて AccessVBA質問箱に投稿してしまいましたが、 あらためて宜しくお願い致します。 【質問】 クエリで勤続年数を計算させたいんですが、困っています。 通常だと、"入社年月日"から"本日"または"退職日"で、 勤続: Int((IIf(DatePart("d",[入社年月日])>DatePart("d",Date()),DateDiff("m",[入社年月日],Date())-1,DateDiff("m",[入社年月日],Date()))/12)) & "年" & IIf(DatePart("d",[入社年月日])>DatePart("d",Date()) And DateDiff("m",[入社年月日],Date())=0,DateDiff("m",[入社年月日],Date())-1,DateDiff("m",[入社年月日],Date())) Mod 12 & "ヶ月" で良いのか?と思いますが、 "契約入社年月日" "社員採用年月日" "退職日" と有ります。 "契約入社年月日"のみで、その他に日付が記載されていない場合は "契約入社年月日"~"本日"迄の年数。 "契約入社年月日" "社員採用年月日" の両方に日付が記載されている場合は "契約入社年月日"~"社員採用年月日" 迄の勤続年数と "社員採用年月日"~"本日"迄の勤続年数。 "契約入社年月日" "社員採用年月日" の各々の列の隣に勤続年数の列を追加 しますので、 "契約入社年月日"の場合は、"社員採用年月日"が空白の場合、"本日"までの勤続年数。 "社員採用年月日"の場合は、"社員採用年月日"が空白の場合、空白で。 "社員採用年月日"に日付の記載が有る場合、"本日"までの勤続年数。 で、計算させたいんですが、ご教授お願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- nattocurry
- ベストアンサー率31% (587/1853)
契約入社⇒社員採用 という流れのようですが、契約入社年月日が空白で、社員採用年月日に日付が記載されている場合はどうするのでしょうか? それとも、その可能性は有り得ないのでしょうか? > "契約入社年月日"の場合は、"社員採用年月日"が空白の場合、"本日"までの勤続年数。 「"契約入社年月日"の場合は」って、どういう意味ですか? 文章を省略しすぎで解りにくいです。 でもって、 > "契約入社年月日"の場合は、"社員採用年月日"が空白の場合、"本日"までの勤続年数。 > "社員採用年月日"の場合は、"社員採用年月日"が空白の場合、空白で。 > "社員採用年月日"に日付の記載が有る場合、"本日"までの勤続年数。 自分で答えを書いちゃってるじゃないですか。 何が解らないでしょうか?
補足
ご回答ありがとうございます。 補足入力 からで宜しかったでしょうか? > 契約入社年月日が空白で、社員採用年月日に日付が記載されている場合はどうするのでしょうか? それとも、その可能性は有り得ないのでしょうか? ありえます。 色々と参考に↓の様になり、結果を確認中です。 契約勤続: DateDiff("yyyy",[契約入社年月日],nz([退社年月日],[入社年月日]))+(Format(nz([退社年月日],[入社年月日]),"mmdd")<Format([契約入社年月日],"mmdd")) & "年" & DateDiff("m",[契約入社年月日],nz([退社年月日],[入社年月日]))-(DateDiff("yyyy",[契約入社年月日],nz([退社年月日],[入社年月日]))+(Format(nz([退社年月日],[入社年月日]),"mmdd")<Format([契約入社年月日],"mmdd")))*12+(Day(nz([退社年月日],[入社年月日]))<Day([契約入社年月日])) & "ヶ月" ただ、↑の場合、[契約入社年月日]が空白の場合、空白を返したいんですが、年ヶ月のみ入ってしまいます。IIf(IsNull([契約入社年月日]・・・ 等々やってみてますが、上手くいかずに困ってます。 ↑契約勤続にも自信がないので、結果で確認中の状態です。 お手数をおかけしますが、ご教授いただけると幸いです。 宜しくお願い致します。