ACCESS97で社員名簿を作っています。
現在の日付から年齢を算出する関数は調べたところ次のようにすればよいとわかりました。
IIf(Right(Format([生年月日],"yyyy/mm/dd"),5)>Right(Format(Now(),"yyyy/mm/dd"),5),DateDiff("yyyy",[生年月日],Now())-1,DateDiff("yyyy",[生年月日],Now()))
次は現在日から入社年月日フィールドにあるデータを使い、勤続年数○年○ヶ月というクエリーを作りたいのですが、○ヶ月を算出する応用がわからずに困っております。
どうかよろしくお願いします。
No.3ベストアンサー
- 回答日時:
これは、DateDiff関数が、月単位で日付を数えている事に起因する問題ですね。
DateDiff('m',#2001/01/31#,#2001/02/01#)
のようにすると、1が表示されます。
日付的には1日しか違わないのに、月だけに着目するとひと月異なっていると判断されるんですね。
ってことで、「どの時点でひと月と判断するのか」を決めておく必要が出てきます。
1月29日(月末より前)に入社した人を2月28日(月末)には勤続一ヶ月と判断するべきか、とか、細かい事を考え出すときりがないので、とりあえずこんな感じで決めてみます。
入社年月日の日の部分とと、現在の年月日の日の部分とを比較してみて、現在の日のほうが大きかったら、既にひと月経過したとみなす。
これを#2の式と組み合わせると、以下のようになります。
IIf(Day(Date())>=Day([入社年月日]),DateDiff('m',[入社年月日],Date())\12 & '年' & DateDiff('m',[入社年月日],Date()) Mod 12 & 'ヶ月',(DateDiff('m',[入社年月日],Date())-1)\12 & '年' & (DateDiff('m',[入社年月日],Date())-1) Mod 12 & 'ヶ月')
なんか、すごい長い式になっちゃいましたが、これで上記のような仕様を満たしているはずです。
ありがとうございます!
これぞ求めた結果でした!
Accessはよく使うのですが関数は一般的なことしか知らず、自分で応用をきかせようにも発想することもできずにいましたので本当に助かりました。何回も補足になってすみませんでした。
No.2
- 回答日時:
うーん… それなら、
DateDiff('m',[入社年月日],Date()) \ 12 & '年' & DateDiff('m',[入社年月日],Date()) Mod 12 & 'か月'
のようにしても駄目でしょうか?
これでも駄目なら、
DateDiff('m',[入社年月日],Date())
とだけ、クエリのフィールドの部分に入力してみて、それらしき数字が出るかどうか確認してみてください。(3年2ヶ月なら、38(36+2ヶ月)と表示されるはず。)
もしうまくいかなければ、補足してください!
この回答への補足
回答ありがとうございます。
うまくいきました!上の方法でうまくいったんですけど、勤続2週間の社員が勤続0年1ヶ月のように月未満の分も繰り上げられてしまうのですがよい方法はありませんか?
たびたびすみませんがご存知でしたらお願いします。
No.1
- 回答日時:
日付の差異を求める関数は、DateDiffです。
datediff("yyyy",[入社年月日],date) & "年" & datediff("m",[入社年月日],date) mod 12 & "ヶ月"
ってな感じで記述すればいいでしょう。
mod 演算子は、割り算の余りを計算します。
この回答への補足
回答ありがとうございます。
教えていただいたとおりやってみたのですがうまく結果が出ません。
入社年月日フィールドのデータは西暦でyy/mm/ddで入力してあるのですが、データのない社員の分は「年ヶ月」という文字だけが返り、データを入力してある社員の分は「#Error」が返ります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】甲子園での思い出の残し方
「球場の砂を持って帰る」はもう古いと思った高校球児が、甲子園で負けた際に、思い出に残そうと思って行ったこと
-
Accessで勤続年数(○年○ヶ月)を表示する方法
その他(データベース)
-
accessでの勤続年数の計算
PowerPoint(パワーポイント)
-
アクセスで「本日日付」と「入社日付」から勤続年数をだせるようにしたいのです。。
Access(アクセス)
-
-
4
アクセス2000で勤続年数の自動計算方法は?
Access(アクセス)
-
5
ACCESS 「パラメータの入力」を消したい!!
Access(アクセス)
-
6
Accessのチェックボックスで非表示
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
所属部署が分かりません・・・
-
社会人何年目とかの数え方って...
-
恥ずかしながら勤続年数がはや...
-
SQL Plusで項目名が最後まで表...
-
妻の職場への転職について
-
保険業界 就職 ブラックリスト
-
履歴書の会社名の事で質問があ...
-
入社後 身上書を書かされるのは...
-
財団法人に入ると。
-
入社したばかりの派遣の休み
-
コネ入社経験者様、コネ入社の...
-
入社日に成績証明書 なぜ?
-
就活の時ですが自分に親の影響...
-
縁故採用の履歴書の書き方
-
社会人何年目とかの数え方って...
-
JA単協を受けている大学生です...
-
JALスチュワーデス合格にはコネ...
-
コネで入社 社会人一年目の22歳...
-
入社の際に書く資料が多すぎる ...
-
契約更新したあと辞めるのは大...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
所属部署が分かりません・・・
-
社会人何年目とかの数え方って...
-
恥ずかしながら勤続年数がはや...
-
SQL Plusで項目名が最後まで表...
-
転職の入社日当日に体調不良で...
-
入社したばかりの派遣の休み
-
◆働く皆さん◆ 産休、入社何年...
-
就活の時ですが自分に親の影響...
-
妻の職場への転職について
-
保険業界 就職 ブラックリスト
-
履歴書 職暦について 教育委...
-
息子の入社事前説明会の保護者...
-
入社の際に書く資料が多すぎる ...
-
コネ入社経験者様、コネ入社の...
-
財団法人に入ると。
-
入社後 身上書を書かされるのは...
-
部長という役職はやっぱりすご...
-
履歴書の会社名の事で質問があ...
-
入社前にシフトって教えてくれる?
-
志望動機の添削をお願いします ...
おすすめ情報