• ベストアンサー

テキストボックスに入力の日付から年度末を計算する

お世話になっております。Accessを始めて4週間の初心者です。 今、同一フォーム(フォーム名:社員登録)内に2つのテキストボックスを配置し、 片方に日付を手入力したら、もう一方に年度末日付を自動表示させたいと思っ ていますが、方法が分かりません。 検索してみると、本日の日付から年度末を自動計算させる・・は出てきますが 今回のような事例にたどり着けていません。 例1 一方 2016/12/1 ならば 片方 2017/3/31 例2 一方 2019/4/1 ならば 片方 2020/3/31 何卒、お力添え頂きたく、お願い致します。

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

  • ベストアンサー
回答No.2

日付を入力するテキストボックス名を、『txt日付』として、年度末日付を自動表示するテキストボックスのコントロールソースに下記の式を設定してください。 =DateSerial(Year(DateAdd("m",9,[txt日付])),3,31)

vesper580109
質問者

お礼

hatena1989さん ご回答ありがとうございました。また返信遅くなり、申し訳ございませんでした。 コントロールソースに式を設定する事で、年度末表示ができました。 自在に使える関数の種類、知識を増やしていきたいと思います。 お礼申し上げます。

その他の回答 (2)

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.3

期初月(1~12)と基準日から期初日、期末日、月初日、月末日を求めます。 Private Sub 基準日変更RTN() If Month(基準日) < 期初月 Then 期初日 = DateValue(Year(基準日) - 1 & "/" & 期初月 & "/" & 1) Else 期初日 = DateValue(Year(基準日) & "/" & 期初月 & "/" & 1) End If 期末日 = 期初日 + 366: 期末日 = 期末日 - Day(期末日) 月初日 = 基準日 - Day(基準日) + 1 月末日 = 月初日 + 31: 月末日 = 月末日 - Day(月末日) End Sub

vesper580109
質問者

お礼

chayamatiさん ご回答ありがとうございました。また返信遅くなり、申し訳ございませんでした。 VBAのAccessへの組み込み方等、まだまだ勉強不足ですが、書かれている内容は 理解できました。 お礼申し上げます。

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんにちは Public f As Boolean Private Sub Form_Open(Cancel As Integer)   f = False End Sub Private Sub テキスト0_BeforeUpdate(Cancel As Integer)   Dim s As String   If f = False Then     f = True     s = Me.テキスト0.Text     If Month(s) > 3 Then       Me.テキスト2 = Year(s) + 1 & "/3/31"     Else       Me.テキスト2 = Year(s) & "/3/31"     End If     f = False   End If End Sub Private Sub テキスト2_BeforeUpdate(Cancel As Integer)   Dim s As String   If f = False Then     f = True     s = Me.テキスト2.Text     If Month(s) > 3 Then       Me.テキスト0 = Year(s) + 1 & "/3/31"     Else       Me.テキスト0 = Year(s) & "/3/31"     End If     f = False   End If End Sub ちょっと適当ですけど、こんな感じで。

vesper580109
質問者

お礼

ushi2015さん ご回答ありがとうございました。また返信遅くなり、申し訳ございませんでした。 VBAも勉強中の身ですが、いちおうご回答頂いた内容で理解できました。 Accessへの組み込み方等、分からない部分も多いので、勉強していきます。 先ずはお礼申し上げます。

関連するQ&A

  • エクセルのユーザーフォームのテキストボックスに日付が入力できない

    いつもお世話になります。初心者ですのでよろしくお願いします。 初めてエクセルのユーザーフォーム作成に挑戦しています。 フォームに日付を入力するためのテキストボックスを配置したのですが、yyyy/m/dで入力しようとして2006/8まで入力すると勝手に2006/8/1/と入力されてしまいます。2006/8/25と入力できるようにするにはどうしたらよろしいでしょうか? よろしくお願いします。

  • テキストボックスへの入力

    アクセス97にてソフト開発をしております フォームAの「合計」テキストボックスに表示されている数字を、フォームAを閉じたときにフォームBの「金額」テキストボックスに入力できるようにしたいのですが、 どの様にすればいいのでしょうか この二つのテキストボックスはODBCリンクテーブルと連結しています

  • Access2000でフォーム上のテキストボックスで計算はできるのでしょうか?

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

  • エクセルのユーザーフォームの日付を和暦で表示したい

    いつもお世話になります。 エクセルのユーザーフォーム作成に初めて挑戦しております。 ワークシートに日付の元データがあり、ユーザフォームにテキストボックスを配置しその日付データを表示させています。(例:2006/8/3) やりたいことは、そのユーザーフォームにもうひとつ別のテキストボックスを作成し上記の日付データを和暦で自動的に表示させたいのです。(例:上記のテキストボックスが2006/8/3の場合、こちらのテキストボックスはH18.8.3と表示) 初心者ですが、よろしくお願いします。

  • エクセルVBA テキストボックス 日付表示

    エクセルVBAにて入力用フォームを開いたときに フォーム内にあるテキストボックスに今日の日付が 自動で表示されるようにしたいのですが どの様に書き込めば宜しいでしょうか? また、2008.09.05 平成20年9月5日などの 日付形式の変更はどの様に書き込むのでしょうか?

  • フォームのテキストボックスで・・。

    数字を入力し次のテキストボックスに移るときに自動的に「:」をつけた形にしてaccess上に記憶させるというものを作ってます。たとえばフォームのテキストで「1300」といれたら次のテキストボックスに移るときに自動的に「13:00」とテキストボックスに収められそれをaccess上に残すという形です。うまくいかずに困ってまして大変説明が曖昧ですがどなたか回答くださいますようお願いします。

  • エクセルVBA テキストボックスで日付を・・・

    皆様にはいつも大変お世話になっております。 またまた、悩むところがあり、乗せさせていただきました;; テキストボックスをVBAのフォームで作ったのですが、 そのテキストボックスの中に今日の日付を登録しておきたいのです。 テキストボックスをエクセルで開いたときに、必ず今日の日付を出しておきたいのです。 ちなみに年・月・日は違うテキストボックスになっています。 なにとぞ宜しくお願いいたします

  • アクセスでの日付入力

    アクセスの初心者です。 2000を使っているのですが、フォーム上にチェックボックスと納品日のテキストボックス?を作りチェックボックスにチェックを入れると自動的に納品日(本日の日付)が入るようにしようと思い、自分でいちを作成してみました。 ただ、チェックを入れると日付は入るのですが、チェックを外しても日付が入ったままなのです。チェックを外したら日付も消えるようにする事はできるのでしょうか? チェックボックスのイベント→クリック時に下のようなVBAを入れてます。 Private Sub チェック12_Click() If Me!チェック12 = True Then Me!納品日 = Date End If End Sub

  • Excel VBA テキストボックスに当日の日付

    Excel 2013において、VBAで入力フォームを作成中の初心者です。 入力フォームの中に日付の項目があり、テキストボックスに手入力しています。 そのテキストボックスに当日の日付を自動で表示させたく、ネットで調べ試しましたが、うまくいきません。 やりたいこととしては、テキストボックスに今日の日付を自動的に和暦で表示させ、その日付を変更する場合には、「2016-12-03」などと入力後、和暦に自動的に変換して表示させたいのです。 手入力において、「2016-12-03」と入力後、自動的に和暦に変換するコードはネットで見つけることができ、うまくいったのですが、当日の日付を自動的に表示させる方法がわからずにおります。 日付を手入力後、和暦で表示させるコードは以下のようにしてあります。 Private Sub textbox1_AfterUpdate() With Me.textbox1 If IsDate(.Value) Then .Value = Format(.Value, "ggge年m月d日") End If End With End Sub どなたか、教えていただけると助かります。 よろしくお願いいたします。

  • コンボボックスのTEXTを日付に

    はじめまして 早速ですがどなたかお助けを! 入力フォームに「月」「日」のコンボボックスが別々にあります。 その値を1つのセルに日付として表示するにはどうしたらいいでしょうか? Range("C7") = comMonth.Text / comDate.Text これだとうまくいきません どなたか教えていただけませんか? よろしくお願いします

専門家に質問してみよう