こんにちは。お寺関係で仕事してます。

テキストボックスに生年月日を入力すると、
隣のテキストボックスに行年齢(数え歳)が
自動的に数値として入力されるようにしたい
のですが、どうしたらいいでしょうか。

満年齢と違って、生まれた歳を1才とし
1月1日を迎えると2才になります。
例えば、6月に産まれた子供は、来年の
6月まで0才ですが、行年齢では産まれたとき
1才で、1月1日になると2才になります。
満年齢では8ヶ月であっても、行年齢では
2才になります。

今年で何歳?と聞かれたときに、誕生日が
来ていなければ+1歳ですが、来ていれば
そのままですよね。誕生日が来ている、
いなに関わらず「今年で*歳」に+1歳が
行年齢になります。

何分お寺ですので、どうしても行年齢が
必要なわけです。
初心者ですが、是非教えてください。

A 回答 (3件)

西暦の4桁は year 関数でも取得できますが、簡単には、



DateDiff("yyyy",Date(),[Birth])+1

で可能です。12/31 と 1/1 の間は 1 ですので、+1 する必要が有ります。
    • good
    • 0

(A) DatePart("yyyy",Date(),4) => 2001


   本日の日付け

(B) [Birth]=1989/01/01 の場合、
   DatePart("yyyy",[Birth],4) => 1989


A-B+1 のように出来れば良いような気がしますが...

2001/12/31 生まれでも、2002/01/01 には、二歳になると思います。
    • good
    • 0

数えの方が満年齢よりも簡単な気がするのは勘違いでしょうか?



今日の日付がy年??月??日で、誕生日がx年??月??日なら、数え年はそれぞれの日付に関係なく、y-x+1才ですよね。

計算についてでなく、フォーム上で誕生日が入力されたときにどんなイベントハンドラで処理すればよいか、という質問であれば補足してください。
    • good
    • 0

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

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

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

QAccess テキストボックスとlikeのあいまい検索

タイトルどおりの操作について教えてください。
Access VBAは、ごく簡単な操作が理解できる程度のレベルです。

フォームに検索キーワード用の非連結のテキストボックスを作成し、
コマンドボタンで検索を実行したいと思います。

イコールで結んだ場合は検索されるのですが、これをLikeに変えると
まったく検索されません。

[Q_書籍名検索]![書名] = [Forms]![F_書籍名で検索]![書籍検索]

[Q_書籍名検索]![書名] Like " * " & [Forms]![F_書籍名で検索]![書籍検索] & "*"

エラーも表示されないのですが、なにが問題なのか教えてください。
よろしくお願いします。

Aベストアンサー

まず、『F_書籍名で検索』のクエリにて『抽出条件』に以下を入力。

Like "*" & [Forms]![F_書籍名で検索]![書籍検索] & "*"

次にマクロを新規作成します。
アクションに『フィルタの実行』を選択。
フィルタ名に上記のクエリ名を入力。

そして、『F_書籍名で検索』に戻り『書籍検索』のプロパティにて
『更新後処理』に新規作成したマクロを指定します。

これだと『書籍検索』に言葉を入力して『ENTER』を押すと抽出されます。

私的にはコマンドボタンはいらないと思います。

QAccess の非連結テキストボックスについて

Access 2000 を使用しています。
フィールド名 データ型
Code     テキスト型(フィールドサイズ=8)
Name     テキスト型(フィールドサイズ=50)
というテーブルがあり、このテーブルを元に帳票フォームを作成しました。このフォームは参照用として使用したいので、
AllowEdits/更新の許可
AllowDeletions/削除の許可
AllowAdditions/追加の許可
のプロパティは全て「いいえ」にしてあります。
このフォームのフッタ部分に txtFilter というテキストボックスと cmdFilter というコマンドボタンを置き、フィルターの動作をさせるため、
Private Sub cmdFilter_Click()
  If IsNull(txtFilter.Value) Then
    FilterOn = False
  Else
    Filter = "Code LIKE """ & txtFilter.Value & "*"""
    FilterOn = True
  End If
End Sub
としました。(見やすくするため全角空白を使用しています。)
さらに、txtFilter に 8文字 ( Code フィールドのフィールドサイズ ) 以上は入力できないようにしようと思い、
Private Sub txtFilter_KeyPress(KeyAscii As Integer)
  If KeyAscii <> 8 Then
    'Delete 以外の場合
    If Len(txtFilter.Text) = 8 Then
      KeyAscii = 0
    End If
  End If
End Sub
としましたが、ここで問題が起きました。
・FilterOn = False
あるいは、
・FilterOn = True でも何レコードが表示されている状態(該当レコードが存在する文字が txtFilter に入力されている)
という場合は良いのですが、該当レコードが存在しない場合、 txtFilter に入力されている文字を変更しようとすると、
txtFilter_KeyPress() 中の
If Len(txtFilter.Text) = 8 Then
のところで「実行時エラー'2185' コントロールがフォーカスを取得していないときに、コントロールのプロパティまたはメソッドを参照することはできません。」となってしまいます。
入力中のコントロールですから、「そんな馬鹿な!?」という感じなんですが、
If Len(txtFilter.Text) = 8 Then
の前に
txtFilter.SetFocus
を入れても状況は同じでした。
フォームの「AllowAdditions/追加の許可」プロパティを「はい」にすれば、上記のようなエラーは発生しないのですが(なぜ、「AllowAdditions/追加の許可」プロパティの違いでそのようなことになるのかは理解できませんが)、ユーザーにデータの変更や追加、削除はさせたくないテーブルなので、追加を許すわけにもいきません。
何かいい回避方法はありませんでしょうか。
よろしくお願いします。

Access 2000 を使用しています。
フィールド名 データ型
Code     テキスト型(フィールドサイズ=8)
Name     テキスト型(フィールドサイズ=50)
というテーブルがあり、このテーブルを元に帳票フォームを作成しました。このフォームは参照用として使用したいので、
AllowEdits/更新の許可
AllowDeletions/削除の許可
AllowAdditions/追加の許可
のプロパティは全て「いいえ」にしてあります。
このフォームのフッタ部分に txtFilter というテキストボックスと cmdFilter というコマンド...続きを読む

Aベストアンサー

フォームのプロパティではなく、
テーブルのレコードのテキストボックスのプロパティで、
データのタブの下の方にある、使用可能を「いいえ」、
編集ロックを「はい」にすればいいと思われます。

Qテキストボックスに番号入力→番号の商品ページへ移動するのにDBは必要?

タイトルのままなのですが、ホームページ上のテキストボックスに番号入力
→その番号の商品ページや画像へ移動するのにやはりDBは必要なのでしょうか?
テキストボックスの中から数字を選ぶ→ジャンプする、というものはありますが、
入力→ジャンプ、という形にしたいと思っています。

よろしくお願いします。

Aベストアンサー

DBの代わりにファイルを使っても可能です。
ファイルに番号とURLやファイル名を対になるように記述し、サーバーサイドのプログラムで
そのファイルを読み込んで番号に対するURLに遷移するという流れになります。

ただし、問題としてファイルのデータ量が多いとそれだけ処理に負担が掛かるので遅くなります。

それほど量が多くないならjavascriptで直接スクリプト内に番号の判定と遷移先を記述すれば可能かと思います。

QACCESS コンボボックス 抽出 テキストボックスに表示

初めての質問を投稿させていただきます。l
ACCESSのVBAにて分からないことがあるので、
質問を投稿させていただきました。

以下のようなテーブルがあります。
名称:番号:管理番号:価格
cake|NO.1|C1|200
cake|NO.2|C2|200
chocolate|NO.1|C3|300
chocolate|NO.2|C4|300
chocolate|NO.3|C5|300
cookie|(空白)|C6|100
フォーム上に、コンボボックスが二つ設置されており
最初のコンボボックスでは、cake、chocolate、cookieを選択することができます。
また、二つ目のコンボボックスでは最初のコンボボックスで選択した名称に対する番号を選ぶことが出来ます。
------------------以下が疑問点です-------------------------
このフォームにはそれ以外にテキストボックスが設定されています。
名称と番号を設定した後に管理番号(重複なし)をテキストボックスに表示。
その後、管理番号を元に価格もテキストボックスに表示したいと考えておりますが、どのようなプログラムを組めばよろしいでしょうか?

初めての質問を投稿させていただきます。l
ACCESSのVBAにて分からないことがあるので、
質問を投稿させていただきました。

以下のようなテーブルがあります。
名称:番号:管理番号:価格
cake|NO.1|C1|200
cake|NO.2|C2|200
chocolate|NO.1|C3|300
chocolate|NO.2|C4|300
chocolate|NO.3|C5|300
cookie|(空白)|C6|100
フォーム上に、コンボボックスが二つ設置されており
最初のコンボボックスでは、cake、chocolate、cookieを選択することができます。
また、二つ目のコンボボックスでは最初のコン...続きを読む

Aベストアンサー

> なぜ、連結列列を2としたか、考えてみてください。

大事なところは2度言いましたよ。。。 は冗談ですが


> (ご質問から想定される私の中での考える動きは確認したつもりでおりますが、意図と違っていましたらごめんなさい)

何か日本語になっていないですね


(ご質問から、・・・私の中で想定した動きは確認したつもりでおりますが、意図と違っていましたらごめんなさい)

まだ日本語化になってないですかね。

Qaccess2010コンボボックスとリストボックスについて質問です。 テーブルに日付、タイトル、内

access2010コンボボックスとリストボックスについて質問です。

テーブルに日付、タイトル、内容のフィールドがあります。これをコンボボックスを使って2014年、2015年、2016年・・・・
と作成して、2015年を選択すると2015年度分がリストボックスに表示できるようにできますか?

ご存知の方がいればよろしくお願いします。
accessは、初心者です。

Aベストアンサー

ウィザードを使ってコンボボックスを作成してみてください。
https://support.office.com/ja-jp/article/%E3%83%AA%E3%82%B9%E3%83%88-%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%81%BE%E3%81%9F%E3%81%AF%E3%82%B3%E3%83%B3%E3%83%9C-%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E9%81%B8%E6%8A%9E%E8%82%A2%E3%81%AE%E4%B8%80%E8%A6%A7%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B-70abf4a9-0439-4885-9099-b9fa83517603

以下抜粋
ウィザードを使用してリスト ボックスまたはコンボ ボックスを作成する
5.コントロールに表示する値を取得する方法の確認を求められたら、次のいずれかの操作を行います。
・ほぼ変わることのない固定値リストを表示する場合は、[表示する値をここで指定する] をクリックします。

ここで
2014
2015
2016
となるように入力するだけです。

ウィザードを使ってコンボボックスを作成してみてください。
https://support.office.com/ja-jp/article/%E3%83%AA%E3%82%B9%E3%83%88-%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%81%BE%E3%81%9F%E3%81%AF%E3%82%B3%E3%83%B3%E3%83%9C-%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E9%81%B8%E6%8A%9E%E8%82%A2%E3%81%AE%E4%B8%80%E8%A6%A7%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B-70abf4a9-0439-4885-9099-b9fa83517603

以下抜粋
ウィザードを使用してリスト ボッ...続きを読む


人気Q&Aランキング

おすすめ情報