Access。Accessで、日付を令和元年で表示するにはどうしたらいいの?
<Access:令和元年>
Excelで、日付を令和元年にする方法は、かなり以前にご紹介させていただきましたが、Accessで、日付を令和。すなわち元号表示にする。
そして、令和1年を『令和元年』にするには、どうしたらいいのでしょうか?
Excelの日付は、1を1900/1/1というようにシリアル値を設定されていますので、表示形式のユーザー定義を使い、表示方法を変更しますが、Accessは少し異なっています。
【クエリを作る】
次のようなクエリを作って、まずは元号表示にする方法から確認しておきましょう。では、実行してどのような表示になっているのか確認すると、yyyy/mm/ddという表示型式で表示されています。
この仕入日和暦、元号表示にする方法を確認します。
フィールドに、「和暦: 仕入日」という、和暦を表示するためのフィールドを作ります。
このままでは、yyyy/mm/ddという表示形式になってしまうので、プロパティーシートを表示させます。
標準タブの書式に次のように入力して、和暦を表示する設定を行います。
ggge\年mm\月dd\日
Excelの場合と少し表示形式が異なっていますよね。Excelで和暦を表示するためには、
ggge"年"m"月"d"日"
と設定します。
見比べてもらえれば、一目瞭然なのですが、Excelは年月日に「"」(ダブルコーテーション)をつけることで、表示することができるのですが、Accessでは、「\」を表示したい文字の前につけることで、その文字を表示することができます。
なお、gggeは、ExcelもAccessも共通で、元号で表示するためのものです。
実行して、どのように表示されているのか確認してみましょう。
和暦、元号表示にすることができました。
ただ、令和に対応しているのですが、令和1年と表示されています。
では、令和元年と表示するには、どうしたらいいのでしょうか?
【2019/5/1~12/31が令和元年】
Excelのように、シリアル値を使う必要はAccessではありません。演算フィールドを使うことで、令和元年を表示することができます。
ただ、非表示面倒というか、演算フィールドが”長い”
次のような演算フィールドを入力し設定しましょう。
和暦元年: IIf([仕入日]>=#2019/05/01# And [仕入日]<=#2019/12/31#,"令和元年" & Format([仕入日],"mm\月dd\日"),Format([仕入日],"ggge\年mm\月dd\日"))
これで、令和元年に対応することができました。
それでは、演算フィールドについて説明をします。考え方自体はシンプルです。
2019/5/1~2019/12/31なら令和元年+月+日で表示する。
それ以外は、元号年月日で表示する。という演算をさせます。
IIf関数を使うことで、条件分岐させることができますので、IIf関数から作り始めます。
期間はAndでOKなのと、日付には「#」で囲む必要があります。
表示形式は、Format関数を使います。
令和元年に対応するには、
"令和元年" & Format([仕入日],"mm\月dd\日")
通常の和暦は、
Format([仕入日],"ggge\年mm\月dd\日")
を組み合わせることで、【Accessで令和元年】に対応することができました。