- ベストアンサー
Access97での日付表示について
今、Excelで作っていた名簿をAccess97を使って管理ができるようにしています。 Excelでは"3061222”とデータが”昭和6年12月22日”とMID関数を使って表示されるようになっていました。 Accessのフォームやレポートでも同じ様なことは出来ないでしょうか?いったん生年月日だけ入力し直すとか考えたんですがデータの量が半端でないので何とかしたいのです。 すみませんが分かる方ご教授お願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
再登場 日付: IIf(Mid$([年月日],1,1)=3,"昭和","平成")+Mid$([年月日],2,2)+"年"+Mid$([年月日],4,2)+"月"+Mid$([年月日],6,2)+"日" ↓ 日付: iif(mid$([年月日],1,1)=1,"大正",iif(mid$([年月日],1,1)=2,"明治",iif(mid$([年月日],1,1)=3,"昭和","平成")))+Mid$([年月日],2,2)+"年"+Mid$([年月日],4,2)+"月"+Mid$([年月日],6,2)+"日" のように iif(式,正,偽) iif(式,正,iif(式,正,偽)) iifの入れ子すれば良いです。 参考になれば幸いです 何かあれば補足して下さい。
その他の回答 (3)
- how-do-you-do
- ベストアンサー率56% (59/104)
御疲れ様です >複数のコードを設定した場合(例えば1が大正とか2が明治とか・・・)でもこのIIf関数は使えるのでしょうか? k_ebaさんの補足的なことになりますが、このような関数もありますよ。 例1:Choose関数を使用する Choose(Mid$([年月日],1,1),"明治","大正","昭和","平成") 例2:Switch関数を使用する Switch(Mid$([年月日],1,1)=1,"明治",Mid$([年月日],1,1)=2,"大正",Mid$([年月日],1,1)=3,"昭和",Mid$([年月日],1,1)=4,"平成") 例3:自分で関数を作成する 下記処理を「モジュール」に登録する Public Function 年号(wCode As Integer) As String Select Case wCode Case 1 年号 = "明治" Case 2 年号 = "大正" Case 3 年号 = "昭和" Case 4 年号 = "平成" Case Else 年号 = "" End Select End Function 年号(Mid$([年月日],1,1)) どの例も期待値は、同じになります。 ただ、メンテナンスのことを考えると個人的には「例3」がいいような気がします。 頑張って下さい。
お礼
今回の処理はIIfを使ったものにしましたが、いろいろな方法があるなって分かりました。 特に例3は他のことに応用がききそうですね。ありがとうございました。
- broken
- ベストアンサー率33% (5/15)
元データ(シート)のメンテが可能であれば、別の方法としてExcel側で別の列にExcel関数を使ってAccessに日付データとしてインポートできる西暦表示"yyyy/mm/dd"等にしてこの生成された列をインポートする方法もあります。 Access側では、表示等したいコントロールの書式に「ggge\年m月d日」をセットします。 Excel、Access共、日付は日付データにしておくほうが何かと便利だと思います。 もしExcelとリンクしているのであれば上記方法だとAccess側でデータ修正するとExcel関数の計算式が消えてしまいますのでご注意ください。 なお、メンテ不可であれば、k_ebaさんのご回答のとおり。
お礼
ありがとうございました。私とするとAccess側での作業が少しでも減らせればとこの方法をとろうと思ったのですが、Excelメンテ不可だったので出来なかったので残念です・・・
- k_eba
- ベストアンサー率39% (813/2055)
クエリー 項目名を年月日とします 日付: IIf(Mid$([年月日],1,1)=3,"昭和","平成")+Mid$([年月日],2,2)+"年"+Mid$([年月日],4,2)+"月"+Mid$([年月日],6,2)+"日" フォーム、レポート 項目名を年月日とします =IIf(Mid$([年月日],1,1)=3,"昭和","平成")+Mid$([年月日],2,2)+"年"+Mid$([年月日],4,2)+"月"+Mid$([年月日],6,2)+"日" 参考になれば幸いです 何かあれば補足して下さい。
補足
早速の回答ありがとうございます。 参考までに教えていただきたいのですが、複数のコードを設定した場合(例えば1が大正とか2が明治とか・・・)でもこのIIf関数は使えるのでしょうか?それとも似たような関数がありますか? 関数のことあまりよく知らなくてすみません。
お礼
ありがとうござました。 最初、昭和生まれだけの人しか対象っていう設定で作ったのですが、今後のことを考えて教えていただいたとおりにiifの入れ子を使って作ってみました。 ホント助かりました。