Access2000のフォーム上に「生年月日」と「現在年齢」というテキストボックスがあります。
「現在年齢」というテキストボックス内で、関数を使用して(日付関数だと思うんですが)今、何歳かという表示をしたいのですが、できるのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (5件)

生年月日のイベントで


イベントプロシージャを選択し
Me![現在年齢] = Year(Me![処理日] - Me![生年月日]) - 1900
で実現します

がんばって下さい。
    • good
    • 0
この回答へのお礼

早々のご指導有難うございます。
ちなみに、教えていただきたいのですが、[処理日]に自動的にマシンデートを入れる方法ってあります?

お礼日時:2001/10/09 15:57

フォームを開いた時は、まだレコードも読んでいないし


当然フォームに値がセットされていない為に
エラーになると思います。
フォーカス取得時は、レコードを読んでフォームに値がセットされ
入力可になる前なのでokになると思います。
    • good
    • 0
この回答へのお礼

ありがとうございました。
ようやく、意味と動きがわかってきました。
がんばってみます。

お礼日時:2001/10/18 19:58

>フォーム → ビューモード → "現在年齢"のプロパティ →みつけられません。


 フォーム → ビューモード →
 アクセスのフォームの画面の左上に小さな■が有るところで
 右クリック→プロパティ→イベントで表示されませんか?

 でフォームのイベント一覧が表示されます。

がんばって下さい。
尚次回の補足の回答は、明日になります。オヤスミナサイ。
 

この回答への補足

ありがとうございました。
無事みつかりました。しかし問題が....。

Private Sub Form_Open(Cancel As Integer)
Me![現在年齢] = Year(Me![年齢基準日] - Me![生年月日]) - 1900
End Sub

というコードを組んだのですが、フォームを開くと"ここに数値の代入はできません"というメッセージがでて代入できませんでした。
ちなみに"フォーカス取得時"(Enter)にするとできるんですけど。

補足日時:2001/10/16 13:46
    • good
    • 0

再再度登場


 フォームのプロパティのイベントで開く時の所に
 イベントプロシージャーの所で式を入力すれば
 okです

がんばって下さい。
 
 

この回答への補足

早速の回答ありがとうございます。

実は、私もイベントに"Open"という種類があるというのは知っていたのですが、
イベントで見つけることができなかったのです。

フォーム → ビューモード → "現在年齢"のプロパティ →→→みつけられません。

フォーム → ビューモード →"現在年齢"を右クリック → イベントのビルド → コードビルダ →→→更新前処理になってしまいます。

どうしたらよいでしょう?

補足日時:2001/10/15 17:45
    • good
    • 0

>[処理日]に自動的にマシンデートを入れる方法ってあります?


 Me![現在年齢] = Year(Date() - Me![生年月日]) - 1900

でいかがですか?

この回答への補足

いろいろと、ご指導ありがとうございました。結局、下記の記述でできました。

Private Sub 本日_Enter()
Me![本日] = (Date)
End Sub

Private Sub 現在年齢_Enter()
Me![現在年齢] = Year(Me![本日] - Me![生年月日]) - 1900
End Sub

ところで、関連した質問をしたいのですが、[年齢基準日](固定の日付)と[生年月日]を使って、フォームが開いたときに[年齢]を表示したいのですが、できますでしょうか?

補足日時:2001/10/15 16:58
    • good
    • 0
この回答へのお礼

追加の質問に早速ご回答いただきありがとうございます。
がんばってチャレンジしてみます。

お礼日時:2001/10/09 16:46

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

このQ&Aと関連する良く見られている質問

Q生年月日を元に年齢を計算するテキストボックスを作成したのですが‥

ACCESS 2003を使用しています。
プロパティシートのコントロールソース欄に計算式を入れ、フォームで生年月日を入力すると、確かにテキストボックスには年齢が自動計算されて表示されました。
ところが、カーソルが入ると自動計算された年齢が表示されるのですが、カーソルが次のボックスへ移動すると0になって表示されてしまいました。
書式の欄には「0歳」と入力してあります。
どの設定が間違っているのでしょうか。
わかる方、教えて下さい、お願いします。
説明不足は補足します。

Aベストアンサー

>書式の欄には「0歳」と入力してあります。
ここがおかしいのでは
0\歳
となっていますか?
0と\は半角ですよ

Qエクセルでテキストファイルからフォームのテキストボックスにテキスト挿入するマクロ

マクロでフォームのテキストボックスに直接テキストファイルからテキストを挿入したいのですが出来ますか?
opentextでエクセルシートに入れてからフォームにコピーすることはできたのですが、それだと重くなってしまうので直接取り込みたいんですがうまくいきません。
VBやJAVAのreadlineのようなものは使えないんでしょうか。

Aベストアンサー

>VBやJAVAのreadlineのようなものは使えないんでしょうか。

LineInput がありますよ。
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_030.html
http://rd.search.goo.ne.jp/click?DEST=http%3A%2F%2Fofficetanaka.net%2Fexcel%2Fvba%2Fstatement%2FLineInput.htm&no=2

Q今日の日付の個数をフォーム上のテキストボックスに表示したい

http://oshiete1.goo.ne.jp/qa5082418.html
の続きです。よろしくお願いします。

クエリで今日の日付の個数を求めることができました。

今回は、「今日の日付の個数」を
をフォーム上のテキストボックスに表示したいです。
コントロールソースにはどのように記載すればいいのでしょうか?

そもそも「Count」なのか「DCount」を使うのかわかりません。
クエリで作ったSQL文をそのままコントロールソースに貼り付けてみましたが、「#Name?」が表示されてしまいました。

ご教授よろしくお願い致します。

Aベストアンサー

このフォームは作成したクエリを基データにしていますか?
その場合、クエリは 式1:****というフィールド列が
出ていると思うので、その 式1 をコントロールソースに
設定してみてください。(▼マークでればそこから選んで下さい)

Q日付型のテキストボックスに数値を入れて日付にしたい

アクセスのフォームの上にテキストボックスがあり、
書式はyyyy/mm/dd(aaa)になっています。

日付型の値を入力した際は問題ないのですが
例えば、20130720と入力したら、

このフィールドに入力した値が正しくありません。
例えば、数値型のフィールドに文字列を入力しました。

となります。

なので、

Private Sub 日付_BeforeUpdate(Cancel As Integer)

If Len(Me.ActiveControl.Value) = 8 Then
Me.ActiveControl.Value = Format(Me.ActiveControl.Value, "yyyy/mm/dd")
End If

End Sub

としてみたのですが、

更新前処理イベントが発動する前に、

「このフィールドに入力した値が正しくありません。
例えば、数値型のフィールドに文字列を入力しました。」

のエラーが出てしまうようです。

20130720の形の日付を入れても自動で日付型に変換するの方法はありますか?

Aベストアンサー

>更新前処理イベントが発動する前に、
このAccess君のチェックをかい潜るすべは知りません。

コントロールのデータタブ→定型入力に、0000/00/00;0;_
書式が自動的に変わってしまうので再度、yyyy/mm/dd(aaa)
にもどす。
で近いことは出来ます。
参考になりそうなところ
http://hatenachips.blog34.fc2.com/blog-entry-304.html?cat-2

もしくは、更新前処理ではなく変更時イベントで
Private Sub 日付_Change()
If Len(Me.ActiveControl.Text) = 8 And IsDate(Format(Me.ActiveControl.Text, "0000/00/00")) Then
Me.ActiveControl.Value = CDate(Format(Me.ActiveControl.Text, "0000/00/00"))
End If
End Sub
とかでも?

QACCESSフォームのテキストボックスで指定と違うフォントで表示される

Windows2000+ACCESS2000です。
ACCESSのフォームでテキストボックスのフォントを「MSゴシック」に設定しているにもかかわらず、実行すると「MSPゴシック」として表示されてしまいます。
このフォームは別のフォームのサブフォームなのですが、サブフォームを単体で実行しても、メインフォーム内のサブフォームとして実行しても、「MSPゴシック」で表示されてしまいます。
このときメインフォーム内で「MSゴシック」に設定しているところはちゃんと「MSゴシック」で表示されています。
原因と対処方法がわかる方、いらっしゃいますでしょうか。

Aベストアンサー

サブフォームは「フォーム」の形式ではなく、「データシート」で表示されますから、
そのためのフォントを設定する必要があります。
「ツール」→「オプション」→「データシート」で確認して下さい。


このカテゴリの人気Q&Aランキング

おすすめ情報