- ベストアンサー
日付の指定
教えて下さい。 Accessでフォームを作成し期間1、期間2というテキストに日付を自動で設定したいと思っています。 例) 2009年5月~2010年4月にフォームを立ち上げた場合 期間1には2008/04/01と初期指定される 2010年5月~2011年3月にフォームを立ち上げた場合 期間1には2009/04/01と初期指定される 2014年5月~2012年3月にフォームを立ち上げた場合 期間1には2010/04/01と初期指定される この様に設定したいのですがどの様にすれば良いのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 2009年5月~2010年4月にフォームを立ち上げた場合 > 期間1には2008/04/01と初期指定される > 2010年5月~2011年3月にフォームを立ち上げた場合 > 期間1には2009/04/01と初期指定される > 2014年5月~2012年3月にフォームを立ち上げた場合 > 期間1には2010/04/01と初期指定される 上記例は以下の間違いでしょうか(5月~4月と考えると) 2009年5月~2010年4月にフォームを立ち上げた場合 期間1には2008/04/01と初期指定される 2010年5月~2011年4月にフォームを立ち上げた場合 期間1には2009/04/01と初期指定される 2011年5月~2012年4月にフォームを立ち上げた場合 期間1には2010/04/01と初期指定される また、立ち上げた時として使用できるのは、今日( Date() )で良いのでしょうか。 計算式としては、 DateSerial(Year(DateAdd("m", -4, Date())) - 1, 4, 1) となると思います。 これは日付型なので、テキスト型に変更するとか・・・・ ※ 4か月前にすると、5月~4月は、1月~12月になります。 その時の年を-1した、4月1日とすればよいと思います。
その他の回答 (1)
- nag0720
- ベストアンサー率58% (1093/1860)
範囲の区間がおかしいようですが無視して、 Private Sub Form_Open(Cancel As Integer) If Date >= #5/1/2009# And Date <= #4/30/2010# Then 期間1.Value = "2008/04/01" ElseIf Date >= #5/1/2010# And Date <= #4/30/2011# Then 期間1.Value = "2009/04/01" ElseIf Date >= #5/1/2011# And Date <= #4/30/2012# Then 期間1.Value = "2010/04/01" End If End Sub