みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

年齢表示がマイナス(-年齢)になるのを改善したい

[アプリケーション]
アプリケーション:Office2007Professonal

[困っていること]
非ソース単票フォームのテキスト窓を2列作成「和暦入力⇒西暦表記」「西暦入力⇒和暦表記」し、更に年齢を表示させています。しかし、令和になってから年齢表示が「 "歳"表記が(-○○歳)」となってしまいました。

[やりたいこと]
令和年号で "歳"表記が(-○○歳)になるのを(〇〇歳)表記にしたいと思っています。尚、このフォームを作成するにあたり、このサイトにてご指導いただきました(感謝・・・・。)。ご面倒をおかけしますが、重ねてお願いいたします。現在、テーブルは年単位で月の管理はしていませんので、とりあえず、このまま年単位で続けたいと思います。


[テキストボックスの式]
西暦入力から和暦を表示させる設定の内容になります。テキストボックの内容とテキストボックスの流れになります。

フォーム名:和暦西暦確認フォームII「非ソース単票フォーム」

コンボボックス名:c1
値集合ソース:SELECT DISTINCT 西暦年号表クエリ.西暦, 西暦年号表クエリ.年号, 西暦年号表クエリ.年号年 FROM 西暦年号表クエリ;



テキストボックス名:テキスト6
コントロールソース:=c1.Column(1)



テキストボックス名:テキスト9
コントロールソース:=c1.Column(2)



テキストボックス名:テキスト14
コントロールソース:=[y]-[c1] & "歳"

以上ですが、よろしくおねがいします。

投稿日時 - 2019-05-12 13:50:20

QNo.9615861

困ってます

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

>このフォームを作成した経緯ですが、
 和暦と西暦の置き換えがスムーズに出来ませんでしたので、
 瞬時把握を目的として作らせて頂きました。それと、
 一緒に概年齢も把握できればと考えまして、
 "歳"も表示するテキストボックスを用意しました。随分前の事になりますが、
 アドバイスを頂きながら、見様見真似で作成した記憶があります。
 そうした経緯からですが、このフォームはそのまま残して、
 ハリボテ「考え方が正道ではない方法」でも使いたいと思っています。
★「考え方が正道ではない方法」ではなく「考え方が間違い」です。
 シリアル値をご理解頂いて無いようですね
 日付の入力形式が西暦入力(yyy/mm/dd)、和暦入力(M,T,S,R)y/m/d)
 どちらで入力してもPCは西暦(yyy/mm/dd)のシリアル値として受け取ります。
 基準日(?日現在)-生年月日で誕生から基準日までの閏年も入れた
 経過日数になります。
 (基準日(?日現在)-生年月日)/365.25 が満年齢の概算
>「コントロールソース:=[y]-[c1] & "歳"」の表記で
 -の時だけ「+」に表記する方法はないのでしょうか。可能であれば、
 もう一方の和暦から西暦を表示させる方も、同様に変更させたいと思います。
★「コントロールソース:=[c1]-[y] & "歳"」
 で「+」に表記なると思いますが実年齢とはかけ離れた数値になります
>コンボボックス名:c1
 値集合ソース:SELECT DISTINCT 西暦年号表クエリ.西暦,
 西暦年号表クエリ.年号, 西暦年号表クエリ.年号年
 FROM 西暦年号表クエリ; =西暦入力
 テキストボックス名:テキスト6
 コントロールソース:=c1.Column(1) =和暦の元号表示 
 ↓
 テキストボックス名:テキスト9
 コントロールソース:=c1.Column(2) =和暦の年数表示
 ↓
 テキストボックス名:テキスト14   =コンボボックスで入力した
 西暦に生まれた人の概年齢
★理解出来ませんが日付のフィールド一つで曜日も含み、閏年も考慮に入っています。
 eokwave様は探求心旺盛な方と推察します。
 経緯を見たいのですが、このURLを補足頂けませんか
★添付はテーブルをデザインモードで開いて、見積日のプロパティーの編集画面です
 (1)見積日を対象にしています
 (2)表示書式を和暦で曜日も(aaa)で表示しています。
 (3)定型入力は和暦、西暦どちらでも出来る。
 (4)規定値のDate()はExcelのToday()相当するもので初期値
 (5)IME入力モードを半角入力
 (6)日付選択カレンダーの表示は右端に1か月分カレンダーが表示されます。
 (7)下の右のルックアップはExcelの入力規則を拡張したものでリスト行自由です
 (8)テーブルには、何もしなくとも並び替え、検索、フィルタ機能が備わっています
 (9)その他数多くのプロパティーの設定が出来ます。
  ここで設定したプロパティーはそっくりクエリー、フォーム、レポート作成時に反映されますが
  事後に変更したプロパティーは反映されません。

以上テーブルはシステム全体の基礎に相当します。
あなたの旺盛な探求心でテーブルを極めませんか

投稿日時 - 2019-05-13 19:54:24

お礼

chayamati様へ
親身にご対応いただきまして、本当にありがとうございました。

[ご依頼の件(取り違えているかも・・)]
当件のアドバイスをお願いした履歴「どの様にお尋ねしたのか」を探しましたが見つけられませんでした。きっと、感謝の言葉だけで済ませようとする気持ちが根底にあるのでしょう。ACCESSが少し分かる様になってからでしたが、アドバイスをお願いし頂戴した履歴を管理する必要を強く感じまして「自分の理解の範囲と理解の精度で残す」、遡り全てをACCESSデータベース「ACCESS検索」に記載したつもりでしたが、当件のスタートアドバイスは見つかりませんでした。ごめんなさい。

[私のレベル]
私の実態「考え方が間違い」を正確に捉えていただき、探究心「旺盛」と申していただきまして、ありがたい限りでございます。受け答えすら満足にできていない私に、ちゃんとやりましょうよとのお声まで頂戴でき、重ねて感謝申し上げたいと思います。私、ACCESSを少し分かるまで7年~8年近くの日数を要しました「お恥ずかしい・・・」。ある年は1週間程度「累計時間」やってみて受け入れられず。ある年は半年に3日「累計時間」、もう半年は1週間「累計時間」といった具合でした「どうも受け入れが・・・できず」。しかし、皆様のアドバイスをいただきながら「このサイトをもっと早く知っていればと・・・」、簡単なデータベースなら自分で作れる様になり、名簿の管理や資格の管理を含め数十のデータベースを我流ではありますが、なんとか作れるようになりました。

[感謝]
お蔭様で、会社で部署移動「顧客専門営業から集計作業の多い完全内勤」になった時も、最初は苦痛の連続「鬱になりそう・・・(鬱の人の苦しみが分かります。自分でコントロールできない苦痛が襲います・・・)」でしたが、関数を使ったACCESSフォームが作れた段階から、集計の正確さや速さは皆が驚くほどになりました。後でわかったことですが、どうも部署移動の目的は、私に対するピンポイントリストラだった様です。集計の仕事など絶対についていけないと判断されていた様です「元々営業職あがりであり、部署の平均年齢より10歳も年上でもあり」。ACCESSは私をリストラから救ってくれました。このサイトで親切にアドバイスされる方々に感謝申し上げます。

ありがとうございました。

投稿日時 - 2019-05-15 08:52:24

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.4

すみません。No3の引き算が・・・・・

>  10 - 20 & "歳"

>は -20歳 となりますが、

>  ABS(10-20) & "歳"

>は 20歳 と表示されます。




は、




  10 - 20 & "歳"

は -10歳 となりますが、

  ABS(10-20) & "歳"

は 10歳 と表示されます。



です。算数の引き算を間違えました。

投稿日時 - 2019-05-13 11:39:34

お礼

何度もアドバイスをいただきまして感謝いたします。早速、書き直してみましたら仰られましたとおりになりました。本来なら作り直すいい機会だと思いましたが、体力知力とも落ちてきましたので、とりあえずABSを覚えておきます。ありがとうございました。

投稿日時 - 2019-05-15 08:54:26

ANo.3

設定内容が色々と不明なので、あれこれ触ることは
しないということで、

テキストボックス名:テキスト14
コントロールソース:=[y]-[c1] & "歳"

のところで、

コントロールソース:=ABS([y]-[c1]) & "歳"

と関数ABSをくっつけると、[y]-[c1] の計算結果は
常に正数で表示されます。したがって、たとえば

  10 - 20 & "歳"

は -20歳 となりますが、

  ABS(10-20) & "歳"

は 20歳 と表示されます。

投稿日時 - 2019-05-13 11:30:51

ANo.2

>[困っていること]
 非ソース単票フォームのテキスト窓を2列作成「和暦入力⇒西暦表記」
 「西暦入力⇒和暦表記」
★日付けは1900年1月1からの経過日数でシリアル値(小数点以下で時分秒)
 と呼んでいます。
 従いまして、西暦入力、和暦入力どちらでも数式欄には西暦表示になります。
 和暦表示、西暦表示は表示書式で、できます。
 詳しくは「表示書式」で検索ください
>更に年齢を表示させています。しかし、
 令和になってから年齢表示が「 "歳"表記が(-○○歳)」と
 なってしまいました。
★年齢計算の式が分りませんが令和元年の1から平成30年の30を引くと
 当然 -29歳なります。
>令和年号で "歳"表記が(-○○歳)になるのを(〇〇歳)
 表記にしたいと思っています。
★Excel,Accessいずれも年齢計算の関数があります。
 Excelの関数 年齢=Datedif(生年月日,計算日,"Y")
 Accessの関数 年齢=Datediff("yyyy",生年月日,計算日)
>尚、このフォームを作成するにあたり、
 このサイトにてご指導いただきました(感謝・・・・。)。
 ご面倒をおかけしますが、重ねてお願いいたします。
 現在、テーブルは年単位で月の管理はしていませんので、
 とりあえず、このまま年単位で続けたいと思います。
★過去の仕組みは分かりませんがとんでもない方向に向かってます。
 最初からやり直した方がスッキリしますよ
★年齢計算はクエリで、できます。添付をご覧ください
 クエリ中のDate()はEexcelのToday()に相当します。

投稿日時 - 2019-05-12 22:07:28

補足

早速のアドバイスありがとございます。説明不足がありましたことお詫び申し上げます。このフォームを作成した経緯ですが、和暦と西暦の置き換えがスムーズに出来ませんでしたので、瞬時把握を目的として作らせて頂きました。それと、一緒に概年齢も把握できればと考えまして、"歳"も表示するテキストボックスを用意しました。随分前の事になりますが、アドバイスを頂きながら、見様見真似で作成した記憶があります。そうした経緯からですが、このフォームはそのまま残して、ハリボテ「考え方が正道ではない方法」でも使いたいと思っています。思い入れが強いこともありましてスイマセン。

そこでお願いですが、「コントロールソース:=[y]-[c1] & "歳"」の表記で-の時だけ「+」に表記する方法はないのでしょうか。可能であれば、もう一方の和暦から西暦を表示させる方も、同様に変更させたいと思います。





コンボボックス名:c1
値集合ソース:SELECT DISTINCT 西暦年号表クエリ.西暦, 西暦年号表クエリ.年号, 西暦年号表クエリ.年号年 FROM 西暦年号表クエリ;  =西暦入力



テキストボックス名:テキスト6
コントロールソース:=c1.Column(1) =和暦の元号表示 



テキストボックス名:テキスト9
コントロールソース:=c1.Column(2) =和暦の年数表示



テキストボックス名:テキスト14   =コンボボックスで入力した西暦に生まれた人の概年齢
コントロールソース:=[y]-[c1] & "歳"

投稿日時 - 2019-05-13 04:46:26

お礼

ありがとうございます

投稿日時 - 2019-05-15 08:56:33

ANo.1

西暦年号表クエリの先に、和暦と西暦の対応テーブルがあると思いますが、そこに礼和の開始年月日を登録すればできるのでは、と想像します。

因みに「西暦年号表クエリ」ってテーブルじゃなくてクエリなんですよね。

投稿日時 - 2019-05-12 14:04:55

補足

早速のアドバイスありがとございます。説明不足がありましたことお詫び申し上げます。このフォームを作成した経緯ですが、和暦と西暦の置き換えがスムーズに出来ませんでしたので、瞬時把握を目的として作らせて頂きました。それと、一緒に概年齢も把握できればと考えまして、"歳"も表示するテキストボックスを用意しました。随分前の事になりますが、アドバイスを頂きながら、見様見真似で作成した記憶があります。そうした経緯からですが、このフォームはそのまま残して、ハリボテ「考え方が正道ではない方法」でも使いたいと思っています。思い入れが強いこともありましてスイマセン。

そこでお願いですが、「コントロールソース:=[y]-[c1] & "歳"」の表記で-の時だけ「+」に表記する方法はないのでしょうか。可能であれば、もう一方の和暦から西暦を表示させる方も、同様に変更させたいと思います。





コンボボックス名:c1
値集合ソース:SELECT DISTINCT 西暦年号表クエリ.西暦, 西暦年号表クエリ.年号, 西暦年号表クエリ.年号年 FROM 西暦年号表クエリ;  =西暦入力



テキストボックス名:テキスト6
コントロールソース:=c1.Column(1) =和暦の元号表示 



テキストボックス名:テキスト9
コントロールソース:=c1.Column(2) =和暦の年数表示



テキストボックス名:テキスト14   =コンボボックスで入力した西暦に生まれた人の概年齢
コントロールソース:=[y]-[c1] & "歳"

投稿日時 - 2019-05-13 04:45:50

お礼

ありがとうございます

投稿日時 - 2019-05-15 08:56:11

あなたにオススメの質問