2019年5月1日から新元号「 令和 」になりますが、記事投稿時点(2019年4月1日時点)ではマイクロソフトからの新元号パッチの配布タイミングは決まっていません。
Accessを例にすると、新元号パッチを当てるまでは、2019年5月1日以降の日付に対して和暦表示をしようとしても、平成31年・・・・と、存在しない平成○○年で表示されてしまいます。
これは仕方ないことですが、新元号パッチを宛てなくても和暦対応させる方法もあります。少し手間はかかりますが、今後の元号改定の際も今回と同じような対応が不要になりますので、もし必要な方は参考にしてみてください。
参考:新元号(和暦)に向けてのAccessシステムの日付項目への対応検討のすすめ
西暦・和暦対応マスタを作る
Accessではテーブルを作れますので、西暦に対応する和暦を表すマスタを作ります。例えば、次のようなマスタです。(ここでは和暦マスタとしています)
テーブル内のフィールドは次の3つとシンプルです。
- 開始年月日(日付/時刻型)
- 終了年月日(日付/時刻型)
- 和暦(短いテキスト)
開始年月日~終了年月日は和暦でいうと何年になるか、ということを表しています。年の半ばで元号が変わるため、開始年月日と終了年月日は日付/時刻型としているのがポイントです。
また、開始年月日と終了年月日の期間は重複が無いように設定します。
和暦への変換はDLookupで取得
次に、和暦表示としたい日付項目に対しては、DLookupを用いて日付を変換させます。
あるテーブルの日付フィールドをフォームに表示する場合を例に挙げてみます。フォームには次のように、日付を表示するテキストボックス(txt日付)と和暦日付を表示させるテキストボックス(txt和暦日付)を用意します。
和暦日付付用のフィールドのコントロールソースには次のような設定を行います。
=DLookUp(“和暦”,”和暦マスタ”,”開始年月日 <= #” & txt日付 & “# and 終了年月日 >= #” & txt日付 & “#”) & Format(txt日付,”mm\年dd\日”)
こうすることで、日付を変更すると連動して和暦日付が表示されるようになります。
これを応用して、レポートなどに日付を出力している部分に対して、和暦マスタとDLookupした値を表示させることによって、和暦対応をすることが出来ます。
まとめ
日付の和暦表示は良く行われますが、新元号パッチに頼らずに対応する方法をご紹介しました。
新元号パッチがあてられない環境だったり、新元号パッチ前に対応したい場合は参考にしてみてください。