• ベストアンサー

Access 西暦を和暦へ一括変換できますか?

西暦と和暦が混在しています。 これを和暦へ統一することはできるのでしょうか(逆の西暦への統一も) 1年づつ更新するのは面倒で・・・。

  • dra96
  • お礼率49% (310/624)

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

  • ベストアンサー
  • bonaron
  • ベストアンサー率64% (482/745)
回答No.3

西暦への変換の更新クエリです。 UPDATE テーブル名 SET フィールド1 = Format(CDate([フィールド1] & "1月1日"),"yyyy\年"); 和暦の場合は、"yyyy\年" を "ggge\年" に。

その他の回答 (4)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.5

モジュールにユーザー定義関数を作成する。 モジュールの新規作成ででてくる画面で Function WANEN(XNEN) '和暦年変換 If XNEN Is Null And Right(XNEN,1) <> "年" Then Exit Function WANEN = Format(Datevalue(XNEN & "12月31日"),"gggee年") End Function Function CENEN(XNEN) '西暦年変換 If XNEN Is Null And Right(XNEN,1) <> "年" Then Exit Function CENEN = Format(Datevalue(XNEN & "12月31日"),"yyyy年") End Function と入力 更新クエリでWANEN([フィールド1])で和暦に、CENEN([フィールド1]で西暦に変換できます。

回答No.4

ANo.1 の GreatDragon です。 今回のケースでは更新クエリでは難しい(私のスキル不足な)ので、VBA のコードを作成してみました。 宜しかったら(DBのバックアップ後)お試しください。 '■■西暦年→和暦年■■ Public Sub SeirekiWareki() Dim Cn As ADODB.Connection Dim Rs As ADODB.Recordset Dim Nen As Integer Set Cn = CurrentProject.Connection Set Rs = New ADODB.Recordset Rs.Open "テーブル1", Cn, adOpenKeyset, adLockOptimistic Do Until Rs.EOF If IsNumeric(Left(Rs![フィールド1], 4)) Then Nen = CInt(Left(Rs![フィールド1], 4)) If Nen > 1988 Then Rs![フィールド1] = "平成" & (Nen - 1988) & "年" ElseIf Nen > 1925 Then Rs![フィールド1] = "昭和" & (Nen - 1925) & "年" ElseIf Nen > 1911 Then Rs![フィールド1] = "大正" & (Nen - 1911) & "年" Else '何もしません。 End If Rs.Update End If Rs.MoveNext Loop Rs.Close: Set Rs = Nothing Cn.Close: Set Cn = Nothing End Sub '■■和暦年→西暦年■■ Public Sub WarekiSeireki() Dim Cn As ADODB.Connection Dim Rs As ADODB.Recordset Dim Nen As Integer Set Cn = CurrentProject.Connection Set Rs = New ADODB.Recordset Rs.Open "テーブル1", Cn, adOpenKeyset, adLockOptimistic Do Until Rs.EOF If Not IsNumeric(Left(Rs![フィールド1], 2)) Then If Left(Rs![フィールド1], 2) = "平成" Then Nen = Val(Replace(Replace(Rs![フィールド1], "平成", ""), "年", "")) Rs![フィールド1] = (Nen + 1988) & "年" ElseIf Left(Rs![フィールド1], 2) = "昭和" Then Nen = Val(Replace(Replace(Rs![フィールド1], "昭和", ""), "年", "")) Rs![フィールド1] = (Nen + 1925) & "年" ElseIf Left(Rs![フィールド1], 2) = "大正" Then Nen = Val(Replace(Replace(Rs![フィールド1], "大正", ""), "年", "")) Rs![フィールド1] = (Nen + 1911) & "年" Else '何もしません。 End If Rs.Update End If Rs.MoveNext Loop Rs.Close: Set Rs = Nothing Cn.Close: Set Cn = Nothing End Sub

回答No.2

ご参考まで・・・

参考URL:
http://www.gakkai.net/wareki-seireki.html
dra96
質問者

お礼

ご回答ありがとうございます。 えぇっと・・・、作業量を軽減したくて質問しました。 更新クエリで一括変換できればと思ったのですが。

回答No.1

「日付/時刻型」フィールドに格納されたデータでしたら「書式」プロパティで西暦または和暦で表示することが出来ますが、 ご質問のご様子ですとテキスト型(または数値型)にデータが保存されているようですね。 現在のデータ型および実際のデータサンプルを数件示していただければ的確な回答が付くはずです。

dra96
質問者

お礼

ご回答ありがとうございます。 データは下記の通り、昭和及び平成、西暦が混在しています↓ データ型はテキスト型です。 フィールド1 --------------- 平成13年 1998年 平成5年 平成17年 1977年 昭和60年

関連するQ&A

  • 和暦を西暦に、西暦を和暦に変換する計算式

    和暦(日本の年号)を西暦に変換する計算式と、逆に西暦を和暦に変換する計算式を教えてください。例えば昭和52年を西暦に変換すると何年、のようなことです。またこの計算式を忘れないために覚えるコツなどもあれば教えてください。また、この計算式を分かりやすく解説したサイトもあれば教えてください。

  • excelで和暦を西暦にしたいのですが、良い方法を教えてください。

    アンケート結果データで生年の項目が以下のように設定されています。 A列で区分(1=明治、2=大正、3=昭和、4=平成、5=西暦) B列で年(40、8、6、1960などのように混在して入力されています。数値の範囲は和暦では1~64、西暦では1893~1992です。) 上記のB列を新しい列を作って西暦に統一したいのですが、どうしたら良いでしょうか。過去の例を見てみましたが、微妙にやりたいことが違っていて応用能力もありません。よろしくお願いします。

  • 和暦を廃止して、西暦に統一して

    銀行や役所に行くと、いまだに和暦を使用しています。 普段、技術文章を書いている身としては西暦しか意識しておらず、和暦が不便でなりません。 グローバル社会になったのだから全世界共通の西暦に統一するべきだと思います。 たとえば昭和64年1月に生まれた子供はどんな和暦を使っているのでしょう? 昭和64年? 平成1年? アバウトすぎます。 皆さんは和暦の存在をどう思いますか?

  • 一つの書類で和暦・西暦の混在はおかしい?

    書類のある箇所では「平成○○年」と書き、他の箇所では「20○○年」と書く。 このように和暦と西暦を混在させる書類の書き方って、国語としては正しいのでしょうか?

  • 西暦から和暦変換したいのですが

    エクセルの2000を使用しています。西暦を和暦にするには、以前の質問をみても、表示形式をggggeeとするとあったので、そのようにしてみましたが、1と入力してシリアル値が 1904/1/2と表示されるシステムなので1で明治37 2003で明治42と表示されます。私のパソコンのように、シリアル値が、1と打って1904/1/2と表示される場合は、どのように 表示形式を設定すれば、西暦が和暦に変換できるのでしょうか?教えてください。よろしくお願いします。

  • ACCESS 西暦から和暦へ

    西暦でテーブルに入力したんですが、和暦にするにはどうしたらいいでしょうか? 変換と言うか…一気に変更できるやり方があったら教えてください。

  • ACCESSで和暦を西暦に・・・

    まいどお世話になってます。 ACCESSのテーブルにあるデータの和暦を西暦に変換できますか? お分かりの方がいらっしゃいましたら、よろしくお願い致します。

  • 和暦と西暦

    和暦と西暦、よく使うのはどちらですか? 宜しくお願い致します。

  • 西暦と和暦

    日本では西暦よりも和暦を使うことが多いですが、日本以外の国で、西暦以外のものを使っている国ってあるんでしょうか?

  • 生年月日を訊かれたら和暦・西暦 どっちで答える?

    生年月日を訊かれたら和暦・西暦 どっちで答える? この前ある会社へ行ったところ、面白いカレンダーを見かけました。 西暦2014年 平成26年 昭和89年 大正103年 と書いてあったのです。 私は昭和生まれなのですが和暦で回答すると、年齢がすぐに割り出せないですよね。

専門家に質問してみよう