• ベストアンサー

Access97での日付表示について

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

質問者が選んだベストアンサー

  • ベストアンサー
  • k_eba
  • ベストアンサー率39% (813/2055)
回答No.2

再登場  日付: 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の入れ子すれば良いです。 参考になれば幸いです 何かあれば補足して下さい。

chiaki40
質問者

お礼

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

その他の回答 (3)

回答No.4

御疲れ様です >複数のコードを設定した場合(例えば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」がいいような気がします。 頑張って下さい。

chiaki40
質問者

お礼

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

  • broken
  • ベストアンサー率33% (5/15)
回答No.3

元データ(シート)のメンテが可能であれば、別の方法としてExcel側で別の列にExcel関数を使ってAccessに日付データとしてインポートできる西暦表示"yyyy/mm/dd"等にしてこの生成された列をインポートする方法もあります。 Access側では、表示等したいコントロールの書式に「ggge\年m月d日」をセットします。 Excel、Access共、日付は日付データにしておくほうが何かと便利だと思います。 もしExcelとリンクしているのであれば上記方法だとAccess側でデータ修正するとExcel関数の計算式が消えてしまいますのでご注意ください。 なお、メンテ不可であれば、k_ebaさんのご回答のとおり。

chiaki40
質問者

お礼

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

  • k_eba
  • ベストアンサー率39% (813/2055)
回答No.1

クエリー 項目名を年月日とします 日付: 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)+"日" 参考になれば幸いです 何かあれば補足して下さい。

chiaki40
質問者

補足

 早速の回答ありがとうございます。  参考までに教えていただきたいのですが、複数のコードを設定した場合(例えば1が大正とか2が明治とか・・・)でもこのIIf関数は使えるのでしょうか?それとも似たような関数がありますか?  関数のことあまりよく知らなくてすみません。

関連するQ&A

  • アクセスでレポートに和暦を表示させるには

    アクセスで社員名簿を作成しています テーブルを 社員名  ○○○○ 生年月日 1953/09/18 生年月日 空欄 フォームは 社員名  ○○○○ 生年月日 1953/09/18 和暦   昭和28年09月18日      ↑生年月日を入力すると自動で表示されるようにしました レポートは 社員名  ○○○○ 生年月日 1953/09/18 和歴   空欄 上記で理解して頂けるか大変不安ですがフォームで和暦を手入力していないのでテーブルに反映しません それに伴ってレポートも表示されません どうしたらレポートへ和暦を表示することが出来るのでしょうか

  • Access2003の日付と印刷

    Access2003を3日前に初めて個人情報を管理するデータを作成しているのですが、 日付を2003/12/01と入力したら次の欄に自動的に2004/11/30と一年後の日付を出力するにはどうすればよいでしょうか? あとフォームでレコードを検索し、表示されたレコードのページ(1ページ)のみを印刷したいのですが、 フォームに印刷タブを作成しクリックするとレポートで作成した印刷プレビューにとぶまでは作成できたのですが、 レコードに入力したデータ前ページすべてが印刷されてしまいます。 選択したレコードのみを印刷するにはどうすればいいでしょうか? 始めたばかりの初心者でくだらない質問かもしれませんが、どなたかご教授お願いします。

  • ACCESS フォームの表示

    ACCESSでフォームにクエリを付けて記入してます。 そのフォームは、顧客名簿の様な物です。 クエリには顧客名簿一覧と書類提出日を連結させてます。 他にも同様のフォームがありますが、そのフォームには一度入力したデータがフォームを開くと反映されてますが、 今回作ったフォームには記入したデータが反映されません。 フォーム上で右クリック⇒フィルタの削除 を選択すると入力したデータが表示されます。 しかし、一度閉じるとまた何も表示されていない状態です。 このフォームには、何故データが表示されないのでしょうか?? ご存知の方。よろしくお願いいたします。

  • アクセスでエクセルに出力する際のファイル名を日付に

    Access2010でレポートをエクセルに出力しています。 マクロで出力していますが、都度フォルダを選び、ファイル名を入力しなくてはなりません。 フォームのボタンをクリックすれば自動的に出力されるようにしたいのです。 出力先フォルダは決まっています。 ファイル名は当日の年月日で保存したいです。 どのようにすればいいのか教えてください。

  • Accessのフォームで、画面表示されているものを印刷する

    いつも大変お世話になっております。m(_ _)m Accessのフォームにて、データを入力します。 入力している画面に「印刷」というボタンを作り、入力し終わった情報をレポート印刷(出力)したいです。 フォームもレポートも作成済みです。 データの区分けとしては、「管理No.」というフィールドが主キーであります。「現在画面に表示されているデータ」とは、「現在画面に表示されているデータの管理No.」ということになります。 その管理No.を抽出条件とし、印刷を行いたいです。 ごく簡単な方法で教えてほしいと思います。 なんとなく想像からすると、クエリを作り、抽出条件にその時の画面の管理No.を取り込む・・・というか・・・そんなイメージはありますが、どうすればいいのか分かりません。 よろしくお願い致します。m(_ _)m

  • アクセスで

    アクセスでフォームが5つあるとします。(フォーム名は、1,2,3,4,5とします。)フォームにはすべて"開始年月日"と"終了年月日"の項目があり、5つのクエリの検索をそれぞれ入力する様になっています。 又、テーブル1があり、このテーブルは毎日データが追加されていきますが(1日50ほど)、追加されたデータは、その日のデータでは無く、2日前の物の場合もあれば、休みを挟んだりすると5日前の物の場合もあります。そのデータ自体の"年月日"フィールドがあります。 まず全てのフォームの"終了年月日"の項目の既定値をテーブル1の"年月日にする事"はできますか? そしてフォーム1で"開始年月日"と"終了年月日"を入力し確定した時に、その他のフォームを開くとフォーム1で入力した"開始年月日"と"終了年月日"が入力された状態にしたいのです。これは、フォーム1で"開始、終了年月日"を入力した場合だけでなく、どのフォームで"開始、終了年月日"を入力した場合でも、その他のフォームを開くと同じ"開始、終了年月日"がまず入力された状態になっていて変更し確定した場合は、他のフォームの"開始、終了年月日"も変更されているという様にしたいのです。 説明がうまくできなくてすいませんが、誰か教えて頂けないでしょうか?よろしくお願いします。

  • アクセスからデータをエクスポート

    アクセスについて教えてください。 アクセスで作ったフォームに入力したデータをエクセルのフォームの指定されたセルに「転送」することは可能でしょうか? たとえば、経理関係ですが、発注支払データを管理するアクセスのデータベースから抽出した任意の入力済みデータを、エクセルで作成した「支払申請書」フォームに「転送」して出力し、管理者に提出して承認をもらう、といった場合に使いたいのです。 どなたか教えてください。

  • エクセルで顧客名簿の作り方

    顧客名簿を作りたいと思っています。 本当はアクセスを使うといいのだと思うのですが、会社にアクセスがないということと、使いかたがよくわからないということで、エクセルで名簿を作ろうと思っています。 顧客のID、名前、住所、生年月日等のデータを入力し、あとで新しいブックを開き、IDを入力するだけでその人の個人データが1列に全部でてくるようにするにはどうしたらよいですか? また、私以外のスタッフはエクセルをあまり操作できません。 なので、個人データの入力は規定のフォームでTabで送るだけでいいような感じにできたらと思うのですが。 よい方法を教えてくださいよろしくお願いします!! また、参考になるサイトがありましたら教えてください!

  • Access 日付での抽出

    初めまして、Access初心者です。 ネットで探しましたが、見つからなかったので、教えて下さい。 Access2010を使用しております。 テーブルの受付日(年月日)の項目で、抽出したいと考えております。 抽出方法は、検索フォームにあるテキストに「年月」を入力して、ボタンを押すと、 帳票フォームで表記されるようにしたいと思っております。 また、IDをクリックすると単票フォームで表記されて編集できるようにしたいと 思っております。 なるべくVBAは使わないで、できればと思っておりますが、 ご教授いただけないでしょうか。 よろしくお願いします。

  • Accessで日付や数値を全角で表示させることはできますか。

    Access2000を使っています。 「テーブル」に入力された日付データや数値データを「レポート」に表示する際に全角文字(2バイト文字)で表示させたいのですが、うまい方法が見つかりません。(ヘルプで変換する関数等を探したのですが見つかりません。) どなたか、この実現方法を教えて頂けませんか。(「そんなことはできません」という回答でも結構です。別の方法を考えます。) よろしくお願いします。

専門家に質問してみよう