上司に頼まれ、Access2000で従業員データを作成しました。
そこで、フォームにおいて年齢を計算するために
「生年月日」を入力する欄と、「年齢」を表示する欄を作成して
コントロールソースにも入れて、うまく表示できたのですが、
その年齢の数字が、テーブルやクエリで見ると表示されていません。
他の何かのデータを見た時にはできていたはず。。。
表示する為の手順が足りないのでしょうが、初心者ゆえにまったくしてわかりません、教えて下さい。
どうかよろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
三度、GreatDragon です。
ANo.1 の回答です。
テーブルの一括更新であれば、更新クエリが便利と思います。
作成手順は
1.更新したいテーブルを基に選択クエリを作成します。
この時、デザイングリッドには年齢だけを指定します。
2.クエリメニューから「更新」を選択し、レコードの更新セルに
年齢の計算式を入力して完成です。
(年齢計算式の例)
DateDiff("yyyy",[生年月日],Now())+Int(Format(Now(),"mmdd")<Format([生年月日],"mmdd"))
Now() の替わりに、今年または来年の4月1日を指定してください。
この回答への補足
今年の4月1日を指定するとは、以下の文でしょうか?
DateDiff("yyyy",[生年月日],2005/4/1)+Int(Format(2005/4/1,"mmdd")<Format([生年月日],"mmdd"))
年齢がマイナスになってしまいます。。。(>_<)
初心者ですみません。
できました!
年齢: DateDiff("yyyy",[生年月日],Now())+Int(Format(2005/4/1,"mmdd")<Format([生年月日],"mmdd"))
でしたね(^-^;
結局、クエリで式を入力して表示させました。
フォームにも連動して表示されています。
ありがとうございました。
No.4
- 回答日時:
(補足です)
年齢(月なし)だけであれば GreatDragonさんの方法がシンプルで良いかと思います。
フォーム等に常に表示したいのであれば「クエリ」を使います。
(1)「クエリ」→「新規作成」→「デザインビュー」
(2)表示するテーブルを「追加」→「閉じる」
(3)テーブルの1番上の「*」をダブルクリック
(4)その隣のフィールドにGreatDragonさんの計算式をそのままコピーして貼り付け
年齢式: DateDiff("yyyy",[生年月日],Now())+Int(Format(Now(),"mmdd")<Format([生年月日],"mmdd"))
※年齢式: は表示する項目名になります(重複しなければ何でも良いです)
(5)表示のチェックBOXにチェックを入れます
以降、フォームに使用するテーブルは、このクエリを使用します。
これで、リアルタイムに年齢が表示される様になります(^^)
何歳何ヶ月まで求める事も出来ますが、この時はモジュールで計算式を入れた方が使い易いと思います。
関数だけでくっつけすぎると、見づらくなりますから(^^;
又、その様な事をされたいのであれば、又、ご質問して頂ければ...と思います。
No.2
- 回答日時:
ANo.1 / GreatDragon です。
ANo.1 ではあのように記述しましたが、今後の参考になるよう回答します。
1.ツールのオプションから「名前の自動修正」のチェックを外しておきます。
2.フォームの演算フィールドの年齢のテキストボックス名を「Txt計算年齢」とします。
3.テーブルの年齢をフォームにテキストボックスコントロールで追加してください。
「可視」プロパティを「いいえ」にしテキストボックス名を「Txt年齢」とします。
4.フォームの更新前処理のビルドをクリックし下記のコードを貼り付けます。
Private Sub Form_BeforeUpdate(Cancel As Integer)
[Txt年齢] = [Txt計算年齢] '←この行だけ貼り付けして下さい。
End Sub
以上でレコードの保存時に年齢の値も保存されるはずです。
よろしかったらお試しください。
No.1
- 回答日時:
回答ではありませんが・・・
「年齢」のようなデータは通常はテーブルに保存しません。
もし保存したら今度はその年齢を何度も更新する必要が出てくるはずです。
生年月日だけの保存でよろしいかと思います。
年齢を知りたくなったら、テーブルではなく年齢の計算式が設定された演算フィールドがある
フォームで確認するのが良いでしょう。
ご回答ありがとうございます。
年齢は自動で更新はされていかないのですね。
そこで上司に確認したところ,4月1日現在でもいいんだけど,といわれました。
これならば年に一度の更新でよいですよね?
もし方法がございましたら教えて下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
前のレコードの値を自動で入れたい
-
AccessVBAの値によっ...
-
Accessでデータを更新したらそ...
-
インデックスまたは主キーにはn...
-
Accessフォーム上の値を条件と...
-
access別のテーブルを参照して...
-
Accessでフォームに自動入力し...
-
テキスト型のフィールドでハイ...
-
ACCESS2000の帳票フォームでテ...
-
ACCESSのチェックボックスとコ...
-
Accessのフォーム入力をしても...
-
ACCESS フォームで入力データ...
-
アクセスでコードを入れると名...
-
Accessで時間外管理の作成について
-
エクセルで、抽出したデータだ...
-
Access サブフォームでの選択行...
-
ExcelのComboboxでマウスのスク...
-
Access 複数フォームを...
-
サブフォームのデータを保存す...
-
コンボボックス全ての値を取得...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
前のレコードの値を自動で入れたい
-
インデックスまたは主キーにはn...
-
Accessでデータを更新したらそ...
-
Accessフォームが入力できません。
-
access別のテーブルを参照して...
-
アクセスでコードを入れると名...
-
テキスト型のフィールドでハイ...
-
入力した値をコンボボックスに...
-
AccessVBAの値によっ...
-
ACCESS フォームで入力データ...
-
Access 自動入力の解除方法
-
ACCESS2000の帳票フォームでテ...
-
ACCESSで定型入力の〒が表示さ...
-
ACCESSでフォームのチェックボ...
-
「バリアント型でない変数に Nu...
-
Accessでフォームに自動入力し...
-
アクセスのフォームの必須項目...
-
Accessのフォームでデータ入力...
-
Accessで時間外管理の作成について
-
Accessフォーム上の値を条件と...
おすすめ情報