• 締切済み

Access2010 クエリー

お世話になっております。 Access2010を使用しています。 テーブルで、4桁の西暦を”文字列”として持っているフィールドがあります。 それを、”元号(和暦)”に変換する方法を教えてください。 例として 西暦:1965 を S40  西暦:1998 を H10 のように変換したいのです。 よろしくお願いいたします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

都合のよい例(月日を隠して)だけ頭に置いて、質問しているが、年号は西暦途中の日で変わることが多い。近時の今回もそうなりそう。 それを認識せずに、出来そうだ、というのは認識不足。米国でまず作られるソフトに対し、日本的な問題だし。エクセルは月日も含めた日付シリアル値では、変換は明治以後の変換や表示形式の変更は正確になされると思うが、アクセスにはそういう関数群はないのでは。ただし 「アクセス 年号変換」でGoogle照会すれば出てくるように、 表示形式(書式)は和暦に変換できる。年号+年数字だけとかの表示もできる。 しかし日付が(月日ふくめて)データがないとできない。 自己プロで変換しようなどと思うのは、もってのほか。日本マイクロソフトに任せておけ。 http://www.accessclub.jp/actips/tips_02.htm 日付を和暦で表したい:AccessTips002 http://accessclub.jp/bbs/0207/beginers64046.html 西暦をレポートで年号表示したい アクセスまで使おうという人が、こういう照会さえしないのは、不思議。 VBAがやれるなら、「アクセス vba format関数」で照会して、勉強したらどうです。文字列の表現になるから、フォーマット文字を工夫すれば、自由に日付表現の文字列の1部を取り出したり(表現したり)できるだろう。

mutans54031
質問者

お礼

imogasi さん 返信とリンクをありがとうございました。 契約年というフィールド名で、月日のデータは持っていないのです。 文字列を数値に変換して、計算式を使ってみます。

関連するQ&A

  • Access2010更新クエリについて

    こんにちは。Access2010を使用し更新クエリをかけたいと思います。 テーブル名、TABLE。対象フィールド名「ID」となります。 やりたいことは、IDには文字列が入っています。その文字列を下記の ルールによって更新をかけたいと思っています。 文字列が7桁以下なら頭に0を付けて8桁にする。 文字列が9桁以上12桁以下なら頭に0を付けて13桁にする。 文字列が8桁なら何もしない(そのまま)。 文字列が13桁なら何もしない(そのまま)。 14桁以上であるならば何もしない(そのまま)。 下記の関数を作り、「レコードの更新」エリアに埋め込みアップデートをしようとすると 意図した更新になりません。 IIF(LEN(TRIM([id]))<=8,FORMAT(TRIM([id]),"00000000"),FORMAT(TRIM([id]),"0000000000000")) どのような関数を組めば、良いかお教え頂けませんでしょうか? よろしくお願い致します。

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

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

  • Access2013 曜日 自動的表示のクエリ

    Access2013で、備忘録作成の為、[年月日] をテーブルに短いテキスト形式で、例20001205と初めの4桁を西暦、次の2桁を月、後の2桁を日で入力してあります。 この日の[曜日] を自動的に表示させるクエリのフィールドへの記入式を教えて下さい。宜しくお願いします。

  • 和暦→西暦(有効範囲を考慮)

    いつもお世話になってます。 VB2010(.NET2.0)、Winアプリ 和暦(元号)と西暦の相互変換についてです。 CultureInfo、JapaneseCalendarを使用して変換しています。 西暦→和暦の変換は問題ないんですが 和暦→西暦の変換時に有効ではない和暦を指定するとエラーとなります。 ここの「有効ではない和暦」というのは例えば「大正30年」とかです。 フォーム上にComboBoxとTextBoxが配置されており ComboBoxには「明治」「大正」「昭和」「平成」を格納、 TextBoxは数値入力のみですが2桁数値というだけで 他の制限はかけていない状態です。 各元号に有効な値を保持しといてって方法は最終手段です。 出来るだけ汎用性を持たせた形で上記エラーを回避したいと思っています。 思いついてる方法はあまりスマートではないので どなたか、こんな風にコーディングすれば出来るよって ヒントでもいいのでご意見いただけると幸いです。 よろしくお願いしますm(_ _)m

  • アクセスクエリ

    アクセスクエリのフィールド MS-accessのクエリで質問です クエリで、3つのテーブルがあります。 どのテーブルのフィールドにも[売上]があります。 この3つのテーブルの[売上] フィールド1列に表示させる方法はありませんか

  • Accessでの和暦の入力

    Accessで、データベースづくりをすることになりました。 初歩的な質問なのですが、教えてください。 日付入力で、今まで西暦は作ったことがあるのですが、今回和暦を入力する 方法がわからなくて困っています。 テーブルから、日付/時刻型を選び、定型入力から「和暦日付(T,S,H)」を 選びました。 入力できるようになったのはいいのですが、表示が西暦に直されて出てきます。 和暦でそのまま出したいのです。 どこが間違っているのでしょうか。本を見ても書いてなかったので、教えていただきたいと思います。 お願い致します。 OSはWinxp、office2000を使って作っています。

  • 和暦で入力してそのままテーブルに保存したい

    Access2000で質問です。 画面フォーム上のテキストボックスの書式を 日付(S)に設定し、PCのコントロールパネルより 日付の短い形式を和暦に設定しました。 画面の入力は、H19/mm/ddなどで入力できますが、 テーブルに保存する際、西暦に変換されて保存 されてしまいます。 テーブルの列は文字型です。 Access2.0のmdbを変換したもので、 すでにテーブルには、19/04/26などの データが保存されており、なんとか、 画面のまま登録したいと思っています。 お力をお貸しください!

  • Accessでのリンクテーブルについて

    Access2007でSQLServer2005のテーブルのリンクを張っています。 このリンクテーブル内のnvarchar型のフィールドをクエリでint型へ変換したいのですが、CInt(対象フィールド)としてもオーバーフローが発生していまいます。 nvarchar型のフィールドの内容は8桁の数字で、SQLServer側では変換できています。 Accessではnvarchar型の変換はできないのでしょうか? 変換したビューを引っ張ることも考えましたが、そのクエリ以外では文字列として扱いたいので、できればクエリ内で変換したいのですが・・・。 どなたか解決方法をご存じでしたら教えてください。 お願いします。

  • アクセスでのテーブルデータ入力

    テーブルでデータ入力を作成してますが 日付フィールドで    56/12/01 と入力したいのに、エンターキーで確定すると    31/12/01 と和暦で表示されてしまいます。 どうしたら西暦2桁で表示できますか? データ型は日付/時刻、定型入力は西暦日付の 年/月/日 に設定してあります。

  • accessリレーションシップ 1つのフィールド対2つのフィールド

    困っているので質問します。 テーブルAのフィールドをテーブルBのフィールドとリレーションシップを結ぶ時、テーブルAの1つのフィールドをテーブルBの2つのフィールドにリレーションシップを張ろうとするとできません。 例)テーブルA=元号テーブル         元号テーブルには元号CDと元号の2つのフィールドがあります。   テーブルB=管理テーブル 管理テーブルには作成年月日と更新年月日という2つのフィールドがあって、それぞれに元号テーブルにある元号というフィールドを元号CDを使って引っ張ってきたいのです。 どのようにすればよいのか教えてください。

専門家に質問してみよう