Microsoft Access Club >AccessTips >このページ >次頁 < 前項  サイト内検索


生年月日から自動で年齢を表示させる - 式ビルダの利用:AccessTips098



年齢を求める方法は、いろんなところで要求されます。今回は、簡易に年齢を求めるプロシージャを 作成し式ビルダを用いてオブジェクトのコントロールソースに配置する方法をご紹介します。 テーブルレコードとして生年月日を持たない、つまりフォーム上の非連結テキストボックス に生年月日を入力し年齢を計算させる場合を想定しています。

年齢を求める標準プロシージャ

引数に生年月日を入力することで簡単に現在の年齢を求めることができます。

Function manyear(年月日) As Integer

    Dim nowbirthday As Date

    '日付形式であるかどうか判断します。Null対策も含みます。
    If IsDate(年月日) Then
        '日付の間隔を計算する DateDiff関数 を用いて"年"を計算します。
        manyear = DateDiff("yyyy", 年月日, Date)
        '今年の誕生日を求めます
        nowbirthday = DateSerial(Year(Date), Month(年月日), Day(年月日))
        'もし、今年の誕生日が過ぎていれば求めた 満年齢 から1歳引きます。
        If nowbirthday > Date Then
            manyear = manyear - 1
        End If

    End If

End Function
生年月日が非連結テキストボックスである場合

以下の手順で作成します。

  1. 年齢を表示させるテキストボックスを同一のフォーム上に作成します。
  2. そのテキストボックスのプロパティを表示させ、コントロールソースの左側にある・・・をクリックし、式ビルダを表示させます。

  1. 式ビルダが表示されたら、下段左にある 関数 をクリックします。
  2. 組み込み関数とAccessファイル名(サンプルではMail管理_2002_開発版・・・)が現れます。
  3. その中で、Accessファイル名(サンプルではMail管理_2002_開発版・・・)をクリックします。

組み込み関数 : Accessに組み込まれている関数。例、Left関数など。
Accessファイル名 : 独自に作成した関数。例、今回の manyear関数など。

  1. 下段真ん中に Module名 が現れます。
  2. 今回の場合は、Module、Module_2、Module_3の三種類が見えます。

  1. Module をクリックします。
  2. 下段の右側にある manyear を右クリックします。
  3. この状態のまま、右上の貼り付けをクリックします。
  4. 上段のテキストボックスに manyear («年月日») が挿入されます。

この「«年月日»」は、その関数の 引数 を表わしています。上記のプロシージャで言いますと、年月日 にあたります。

  1. 引数部分に、生年月日を入力するテキストボックス名(サンプルではtxt_生年月日)を指定します。

  1. [OK]ボタンをクリックします。
  2. 下図のようにテキストボックスのコントロールソース欄に入力されます。

  1. =manyear([txt_生年月日]) & "歳" でもすると分かり易いです。

関連ページ

 2003/05/30

ページの先頭へ 前ページへ戻る

 


生年月日から自動で年齢を表示させる - 式ビルダの利用:AccessTips098


 

-Microsoft Access Club-