7/21/2019

Access。Accessで、日付を令和元年で表示するにはどうしたらいいの?【Reiwa-One】

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で令和元年】に対応することができました。