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

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

解決済みの質問

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

お世話になっております。Accessを始めて4週間の初心者です。

今、同一フォーム(フォーム名:社員登録)内に2つのテキストボックスを配置し、
片方に日付を手入力したら、もう一方に年度末日付を自動表示させたいと思っ
ていますが、方法が分かりません。
検索してみると、本日の日付から年度末を自動計算させる・・は出てきますが
今回のような事例にたどり着けていません。

例1 一方 2016/12/1 ならば 片方 2017/3/31
例2 一方 2019/4/1 ならば 片方 2020/3/31

何卒、お力添え頂きたく、お願い致します。

投稿日時 - 2016-12-02 16:16:13

QNo.9263025

困ってます

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

日付を入力するテキストボックス名を、『txt日付』として、年度末日付を自動表示するテキストボックスのコントロールソースに下記の式を設定してください。

=DateSerial(Year(DateAdd("m",9,[txt日付])),3,31)

投稿日時 - 2016-12-03 00:59:46

お礼

hatena1989さん

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

お礼申し上げます。

投稿日時 - 2016-12-08 12:51:06

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

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

回答(3)

ANo.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

投稿日時 - 2016-12-03 07:05:28

お礼

chayamatiさん

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

お礼申し上げます。

投稿日時 - 2016-12-08 12:45:57

ANo.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
ちょっと適当ですけど、こんな感じで。

投稿日時 - 2016-12-02 17:10:41

お礼

ushi2015さん

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

先ずはお礼申し上げます。

投稿日時 - 2016-12-08 12:42:53

あなたにオススメの質問