今、Excelで作っていた名簿をAccess97を使って管理ができるようにしています。
Excelでは"3061222”とデータが”昭和6年12月22日”とMID関数を使って表示されるようになっていました。
 Accessのフォームやレポートでも同じ様なことは出来ないでしょうか?いったん生年月日だけ入力し直すとか考えたんですがデータの量が半端でないので何とかしたいのです。
 すみませんが分かる方ご教授お願いします。

このQ&Aに関連する最新のQ&A

A 回答 (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の入れ子すれば良いです。
参考になれば幸いです
何かあれば補足して下さい。
    • good
    • 0
この回答へのお礼

ありがとうござました。
最初、昭和生まれだけの人しか対象っていう設定で作ったのですが、今後のことを考えて教えていただいたとおりにiifの入れ子を使って作ってみました。
ホント助かりました。

お礼日時:2002/03/08 12:43

御疲れ様です



>複数のコードを設定した場合(例えば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」がいいような気がします。
頑張って下さい。
    • good
    • 0
この回答へのお礼

今回の処理はIIfを使ったものにしましたが、いろいろな方法があるなって分かりました。
特に例3は他のことに応用がききそうですね。ありがとうございました。

お礼日時:2002/03/08 12:29

元データ(シート)のメンテが可能であれば、別の方法としてExcel側で別の列にExcel関数を使ってAccessに日付データとしてインポートできる西暦表示"yyyy/mm/dd"等にしてこの生成された列をインポートする方法もあります。


Access側では、表示等したいコントロールの書式に「ggge\年m月d日」をセットします。
Excel、Access共、日付は日付データにしておくほうが何かと便利だと思います。
もしExcelとリンクしているのであれば上記方法だとAccess側でデータ修正するとExcel関数の計算式が消えてしまいますのでご注意ください。
なお、メンテ不可であれば、k_ebaさんのご回答のとおり。
    • good
    • 0
この回答へのお礼

ありがとうございました。私とするとAccess側での作業が少しでも減らせればとこの方法をとろうと思ったのですが、Excelメンテ不可だったので出来なかったので残念です・・・

お礼日時:2002/03/08 12:38

クエリー


項目名を年月日とします
日付: 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関数は使えるのでしょうか?それとも似たような関数がありますか?
 関数のことあまりよく知らなくてすみません。

補足日時:2002/03/05 14:09
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング