ハマっている「お菓子」を教えて!

アクセス2000を使っています、同一テーブル内、フィールド別々に入社日と退社日があり入社日には2003/4/1と入力されて居り、退社日には2005/9/30と入っています、退社日までの勤務日数を、何年何ヶ月何日で求めたいです、退社未記入の場合は、今日現在までの勤務日数を、何年何ヶ月何日で求めたいです、

A 回答 (2件)

勤務日数: DateDiff("yyyy",[退社日],iif([退社日] is null,now(),[退社日]))+(Format([退社日],"mmdd")>Format(iif([退社日] is null,now(),[退社日]),"mmdd")) & "年"


&DateDiff("m",[退社日],iif([退社日] is null,now(),[退社日]))-(DateDiff("yyyy",[退社日],iif([退社日] is null,now(),[退社日]))+(Format([退社日],"mmdd")>Format(iif([退社日] is null,now(),[退社日]),"mmdd")))*12+ (Day([退社日])>Day(iif([退社日] is null,now(),[退社日]))) & "ケ月"&DateDiff("d", DateSerial(Year(iif([退社日] is null,now(),[退社日])),Month(iif([退社日] is null,now(),[退社日]))+(Day([退社日])>Day(iif([退社日] is null,now(),[退社日]))),Day([入社日])), iif([退社日] is null,now(),[退社日])) & "日"
これで求められると思います。

参考URL:http://www.accessclub.jp/

この回答への補足

ご回答頂き、誠に有難うございます。早速貴殿が言われる通り実施して見たいと思います、今後とも、宜しくご伝授頂きます様お願い致します。

補足日時:2006/01/29 18:41
    • good
    • 0
この回答へのお礼

有難うございました、貴殿が言われる通りクエリーに入力しましたら、日は計算されましたが、年、月の計算がされませんでした、私の入力が間違ってるのでしょうか?再度教えて頂ければ大変有難いです。

お礼日時:2006/01/29 19:13

齢を年月日で表示するために、以下のようなファンクションを作ってみたことがあります。

 ソースが見つからないので、実験はしていませんがたぶん大丈夫と思います。 問題は日付をどういう計算にするかというところだと思います。 この式では、単に日付を引けない場合は、翌月一日から引いて月齢を1引くことにしてあります。

Function D_Diff(x,y) as string
y1 = year(x)
m1 = month(x)
d1 = day(x)
y2 = year(y)
m2 = month(y)
d2 = day(y)
if d1<d2 then
d1 = day(dateserial(y1,m1,0)
m1 = m1 - 1
if m1< 1 then
m1 = m1 + 12
y1 = y1 - 1
end if
end if
if m1<m2 then
m1 = m1 + 12
y1 = y1 - 1
end if
D_Diff = y1-y2 & "年" & m1-m2 & "ヶ月" & d1-d2 & "日"
end function
    • good
    • 0
この回答へのお礼

有難うございました、参考にして やってみたいと思います。

お礼日時:2006/01/30 15:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報