- ベストアンサー
【ACCESS】年度の求め方
あるテキストボックスに、YYYY/MM/DDの形で日付を入力し、 その月の数字によって、別フィールドに○年度と表示させたいのですが、 やり方が分かりません。どなたか教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
テキストボックス年度を表示ということなら、コントロールソースに =IIf(Month([txt])<4,Format(DateAdd("yyyy",-1,[日付のテキストボックス名]),"gggee" & "年度"),Format([日付のテキストボックス名],"gggee" & "年度")) ではどうでしょうか。 あるいはVBAで Private Sub 日付のテキストボックス名_AfterUpdate() If Month([日付のテキストボックス名]) < 4 Then Me!年度のテキストボックス名 = Format(DateAdd("yyyy", -1, [日付のテキストボックス名]), "gggee" & "年度") Else Me!テキストボックス名 = Format([日付のテキストボックス名], "gggee" & "年度") End If End Sub 例では、年度は4月から、 表示は「“元号2文字”&“年”&“年度”」ですので、適宜状況にあわせて変更してみてください。
その他の回答 (1)
- laputart
- ベストアンサー率34% (288/843)
一番簡単なのはテーブルでは年度を作らないで クエリーで計算するのがいいでしょう。 テーブルのフィールドをそのまま全て選択して クエリーを作ります。 そのクエリーをデザインで開いて 日付の次に列を3つ挿入します。 そのフィールドに以下の関数を設定します。 ●最初の列 年:Year([日付]) とします ●次の列 月:Month([日付]) とします。 この年と月から年度を計算します。 例えば2004年4月から16年度であるとすると ●3つ目の列 年度: [年]-1988+([月]<4) 質問があれば遠慮なく聞いてください。
補足
回答、ありがとうございます。 やはり、クエリではなくてフォーム上で行いたいのですが…。 Nowを使わずに、"入力した日付"を元に年度を割り出したいのですが…。
お礼
ありがとうございました。 非常に参考になり、解決しました!!