Microsoft Access Club Access超初心者対象Forum Access初・中級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトル日付の自動変換?
記事No82993
投稿日: 2016/10/13(Thu) 10:17
投稿者大竹
OS:windows7
Access Version:2010

フォーム画面Aにテキストボックス「開始日付」「終了日付」というものがあり
ます。
ここに日付を入力した場合、開始から終了の日付が月をまたぐ場合、
テキストボックス「開始日付1」「終了日付1」「開始日付2」「終了日付2」
「開始日付3」「終了日付3」
に【自動でその月ごとの日程を表示】する事は可能でしょうか?

例:2016/03/11から2016/5/28を入力すると、

「開始日付1」2016/3/11
「終了日付1」2016/3/31
「開始日付2」2016/4/01
「終了日付2」2016/4/30
「開始日付3」2016/5/1
「終了日付3」2016/5/28

と表示される。

日付は確実に3月をまたがない場合もございます。

初心者につき、突拍子もないご質問をしているかも知れませんが、
なにとぞよろしくお願いいたします。

質問に関してはすぐ、ご返答いたします。

タイトルRe: 日付の自動変換?
記事No82994
投稿日: 2016/10/13(Thu) 11:13
投稿者Genzo
面白そうだったので、作ってみました…。
非効率かもしれませんし、フォームのテキストへ出力等を考えていないので、
参考程度になれば…。

Public Sub SampleCode(StartDate As Date, EndDate As Date)

Dim M As Long
Dim Y As Long

Dim SDate As Date

If StartDate > EndDate Then
MsgBox "開始日は終了日より前にしてください。"
Exit Sub
End If

SDate = StartDate

Do
If Format(SDate, "yyyymm") <> Format(EndDate, "yyyymm") Then
Y = Year(SDate)
M = Month(SDate)

Debug.Print "開始日:" & Format(SDate, "yyyy/mm/dd") & _
" / 終了日:" & Format(DateSerial(Y, M + 1, 0), "yyyy/mm/dd")
SDate = DateSerial(Y, M + 1, 1)

Else
Debug.Print "開始日:" & Format(SDate, "yyyy/mm/dd") & " / 終了日:" & Format(EndDate, "yyyy/mm/dd")
Exit Do

End If

Loop

End Sub

イミディエイトウィンドウなどで、
SampleCode #2016/03/11#,#2016/05/28#
と入力してもらえれば、動作すると思います。

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る