• ベストアンサー

Accessのレポートで2ヵ月後の月を表示させたい

syoriという項目についてこれが2006年7月の場合、 「2006年7月~9月分」と表示させたいと考えています。 以下のように書いてみましたがうまくいきません。 =Format([syori],"gggee\年mm""月~""mm""+2月分""") 単純に2ヶ月を足すだけで、年代わりは考慮しません。 宜しくお願いします。

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

  • ベストアンサー
noname#22222
noname#22222
回答No.4

s_husky です。 年が変わる場合は先の回答。 次は、質問に直接的に答えたつもり(?)の回答。 Private Sub コマンド0_Click()   Dim dteHiduke As Date   dteHiduke = "2006/07/01"   MsgBox Format(dteHiduke, "yyyy年mm月~" & Format(Month(dteHiduke) + 2, "00分")) End Sub

tigarato
質問者

お礼

ありがとうございます。 =Format([syori],"yyyy年mm月~" & Format(Month([syori])+2,"00""月分""")) で、求めるものができました。 助かりました。

その他の回答 (4)

noname#210617
noname#210617
回答No.5

おー、mmは書式も規定している表現ですからね。変数として扱うなってことですか。 2番目のところは 数値を文字列に変換する関数(当月を呼び出す関数()+2) のように書かなくてはいけないということですね。 関数調べて試してみてください。

noname#210617
noname#210617
回答No.3

>単純に2ヶ月を足すだけで、年代わりは考慮しません。 4半期の処理だからですね。 >=Format([syori],"gggee\年mm""月~""mm""+2月分""") の「+2月分」というのは文字列ですね。 =Format([syori],"gggee\年mm""月~""mm+2""月分""") かな?

tigarato
質問者

補足

ありがとうございます。 試してみたのですが、Accessの自動修正が働いて、「+2」の部分が固定文字列として元に戻ってしまうのです。つまり、下の式で入れても上の式に戻ってしまうのです。

noname#22222
noname#22222
回答No.2

s_husky です。 蛇足ですが、 GetDate(dteHiduke, 1, 1)・・・・翌月の1日。 GetDate(dteHiduke, 2, 1)・・・・翌々月の1日。 GetDate(dteHiduke, 1, 99)・・・・翌月の末日。 GetDate(dteHiduke, 2, 99)・・・・翌々月の末日。 GetDate(dteHiduke, -1, 1)・・・・前月の1日。 GetDate(dteHiduke, -2, 1)・・・・前々月の1日。 GetDate(dteHiduke, 0, 99)・・・・当月の末日。 です。

noname#22222
noname#22222
回答No.1

色んなやり方があるでしょうが、私は、全て GetDate関数のみで済ませています。 Private Sub コマンド1_Click()   Dim dteHiduke As Date   dteHiduke = "2006/06/01"   MsgBox Format(dteHiduke, "yyyy年mm月~" & Format(GetDate(dteHiduke, 1, 1), "mm月分")) End Sub Public Function GetDate(ByVal Now As Date, _                   ByVal Move As Integer, _                   ByVal Hiduke As Integer) As Date   GetDate = DateSerial(DatePart("yyyy", Now), _           DatePart("m", Now) + Move - (Hiduke = 99), _           Hiduke * Abs(Hiduke <> 99)) End Function

tigarato
質問者

補足

ありがとうございます。 便利そうな関数ですが、今回はレポートの部分だけで完結できる方法が希望です。

関連するQ&A