Microsoft Access 掲示板

新元号への対応について

6 コメント
views
4 フォロー

いつもお世話になります。
5月1日から新元号となりますが、私なりに下記式を作りましたが
もう少しかっこいいものがないかとネットを探しましたが見当たりません。
何かいいやり方があればご教示願います。
申請日_: IIf([申請日]>=#2019/05/01#,"平成元年" & Format(Month([申請日]),"#") & "月" & Format(Day([申請日]),"#") & "日"IIf([申請日]<=#2019/12/01# AND [申請日]>=#2019/01/01#"平成31年" & Format(Month([申請日]),"#") & "月" & Format(Day([申請日]),"#") & "日")

tokinaito
作成: 2019/04/24 (水) 14:48:52
通報 ...
1

しばらく待てば、アップデイトで書式設定でも新元号に対応してくれるはずです。
OSやOfficeのバージョンでは対応済みのものもあるようです。

まだ、対応済みでない場合は、それまでの、一時的な回避策として式で設定することになりますね。

申請日: Switch(テーブル名.申請日>=#2020/01/01#, "令和" & Year(テーブル名.申請日)-2018 & Format(テーブル名.申請日,"年m日d日"),テーブル名.申請日>=#2019/05/01#,Format(テーブル名.申請日,"令和元年m日d日"),True,Format(テーブル名.申請日,"ggge年m日d日"))
2
tokinaito 2019/04/25 (木) 15:18:18 bb5c2@2f12b

hatenaさまありがとうございます。早く令和のgggeに
代わるものが出されればいいのですが。
それまではhatena様の回避策を活用させていただきます。
ありがとうございました。

3

私のところやアドバイザー先でもまだ、未対応のようです。
しかたがないので、あちこち式で修正しています。
修正箇所が大量にあるので大変です。

4
tokinaito 2019/05/07 (火) 14:15:32 bb5c2@2f12b

hatena様この度はありがとうございました。
やっと書式設定で令和が対応できるようになりました。
ただ下記関数で求めたものが対応できないので
ご教示いただいた式で対応することとしました。
ありがとうございました。

Public Function 許可日(申請日 As Variant) As Variant
    Dim 営業日 As Long
    許可日 = 申請日
    If IsNull(許可日) Then Exit Function
    Do
        許可日 = 許可日 + 1
        Select Case Weekday(許可日)
        Case vbMonday To vbFriday
            If IsNull(DLookup("祝日名", "T_祝日", "日付=#" & 許可日 & "#")) Then
                営業日 = 営業日 + 1
            End If
        End Select
    Loop Until 営業日 = 2
End Function

クエリーで 出来上日:許可日(申請日)
      出来日 : Switch([出来上日]>=#2020/01/01#,"令和" & Year([出来上日])-2018 &
                      Format([出来上日],"\年m\日d\日"),[申請日]>=#2019/05/01#,Format([出来上日],"""令和 1年""
                      m\日d\日"),True,Format([出来上日],"ggge\年m\日d\日"))

5
名前なし 2019/05/17 (金) 10:13:32 fdd23@f966d

できる限り共通項は外に出したいなぁなどと

Format([日付],IIf([日付]>=#2019/05/01#,"令和" & IIf(Year([日付])=2018,"元",Year([日付])-2018),"ggge") & "年m月d日")

先日(2019/5/15)WindowsUpdateが入ってうちのも令和表示されるようになりました。
どうも元年対応は自前でやったほうがよさそうなので

Format([日付],"ggg" & IIf(Format([日付],"e")=1,"元","e") & "年m月d日")
Format([日付],IIf(Format([日付],"e")=1,"ggg元年m月d日","ggge年m月d日"))

このくらいだと無理に分解しない(下段の)ほうが読みやすそう

6
名前なし 2019/05/22 (水) 08:35:02 90552@f966d >> 5

ふと見直したら上の式間違ってました。正しくは、

Format([日付],IIf([日付]>=#2019/05/01#,"令和" & IIf(Year([日付])=2019,"元",Year([日付])-2018),"ggge") & "年m月d日")

2つ目のIIF関数の条件部分をYear([日付])-2018=1から直そうとして・・・