-PR-
解決済み

Accessで誕生日から年齢を計算する

  • 暇なときにでも
  • 質問No.78611
  • 閲覧数440
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 86% (350/406)

Microsoft Office Updateで「Accessで誕生日から年齢を計算する」と言う項目があり、式がのっているのですが、フォームのコントロースロースに
=Datediff("yyyy",[誕生日],now())+int(format(now(),"mmdd")<format([誕生日],"mmdd"))
と入力するとあるのですが、式中にある"INT"の意味がわかりません。
この式でのINTは何を表しているのですか?
よろしくお願いします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル13

ベストアンサー率 68% (791/1163)

まず、Datediff("yyyy",[誕生日],now()) で年数のみの計算を行っています。
次に format(now(),"mmdd")<format([誕生日],"mmdd") で、月日を比べて、まだ誕生日がきていなかったらこの式が成立します。判別式ですね。この時、式は True になります。
Datediff の帰り値(数値)とTrueは型が違うので加算できないため Int()を使って数値にしていると思います。
Int(True)=-1、Int(False)=0 で、結局、
年の差を計算して、まだ誕生日がきていなかったら1を引いている式でしょう。
お礼コメント
omusupa

お礼率 86% (350/406)

回答ありがとうございました。
よくわかりました。
いつもAccessで期間を表したいときに、format関数を使って違う方法で直していたのですが・・・。
とってもよくわかりました。
でも、Accessの関数と、Excelの関数とどう違うんでしょうね?
同じMicrosoftなのに・・・・。
投稿日時 - 2001-05-20 23:00:57
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1

Integer(整数)ではないのですか?
日付で出てくるものを数値に変換する関数だと
思います。

ではでは☆
補足コメント
omusupa

お礼率 86% (350/406)

ご回答ありがとうございます。
私の思い込みなのかもしれないのですが、
int(Format(now(),"mmdd")<Format([誕生日],"mmdd"))
で、たとえば、
Format(now(),"mmdd")で返ってくるのは(今日であれば)
0520
と言う数字が返ってきます。
Format([誕生日],"mmdd"))でかえってくるのは(6月23日生まれ)
0623
と言う数字が返ってきます。
すると、
INT(0520<0623)
と言うことになるのでしょうか?
で、整数?
私は何か考え違いをしているのでしょうか?
たぶん、1プラスするのか、しないのかと言うのを処理しているのだとは思うのですが・・・。お返事いただけますでしょうか?
投稿日時 - 2001-05-20 21:55:48
お礼コメント
omusupa

お礼率 86% (350/406)

ご回答ありがとうございました。
投稿日時 - 2001-05-21 21:34:23

このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ