• ベストアンサー

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

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

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

  • ベストアンサー
  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.5

#3です 恐らくですが・・・ フォームのテキストボックスの「Value」(値)が書式のために「Variant/Date」(日付時刻型)で扱われ、テーブルの値が「Variant/String」(文字型)で扱われるために、フォームのコントロールからテーブルのフィールドに保管される際に型を変換して保管ってことになってる可能性が高いような気がします だから・・・テーブルの文字型の値は西暦でって・・・ mm/dd/yy か? mm/dd/yyyy とかで、保管されてません? Acc2000だと、挙動不審な事が良くあったのでSRで修正を行ったのですが、直らずAcc97へ戻しました・・・他のAccに比べると安定性が低い記憶があるので、あまり使ったことがないのですが・・・ 日付を文字型で入力し、データも文字型として扱う場合、書式は設定しません^^; まぁ・・・日付時刻型に変更することをお勧めしますが^^;

accessvba
質問者

お礼

回答ありがとうございます。 テーブルの中身は、登録される際、 yy/mm/ddで登録されます。 Access2000の問題?!

その他の回答 (4)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.4

>それがテキスト型なんです。 テキスト型なら >画面の入力は、H19/mm/ddなどで入力できますが、 >テーブルに保存する際、西暦に変換されて保存 >されてしまいます。 こんなことにはなりません 入力した文字列が勝手に別のものに書き換わったりしたら データベースとして成り立たないことになりますね

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.3

不思議な現象ですね~^^; で、テーブルの文字型の表示形式、定型入力は、どうなってますか? > H19/mm/dd で、入力したものが西暦で保管され・・・ > 19/04/26 で保管されているものもあるって・・・気にはなるのですが・・・ フォームのテキストボックスの書式に「日付(S)」が入ってるのが原因かも知れませんが・・・そもそも選択に出てこないはずのような^^;

accessvba
質問者

お礼

回答ありがとうございます! 不思議ですよね! おそらくテキストボックスに日付(S)が 入っているためだと思えてきました。 旧アクセスのmdbをバージョンアップしたものですが、 旧アクセスでは、これでテーブルにきちんと画面の 表示状態のままで書き込まれていたんですよね。 いまのままだと過去のデータを検索できなく なってしまうので、どうしようか検討しています。 ありがとうございました。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

日付時刻型というのは、表示されているような文字列が入っているのではありません 正体は浮動小数点型の数値が入っています(数値ですから和暦も西暦もありません) それを書式でいろんな風に表示させているのです >すでにテーブルには、19/04/26などの >データが保存されており、 これはそのような書式が設定されているからです 設定無しの場合にはウインドウズの設定になりますから その書式を削除すれば >画面フォーム上のテキストボックスの書式を >日付(S)に設定し、PCのコントロールパネルより >日付の短い形式を和暦に設定しました。 こうしてあれば和暦になるはずですよ >テーブルの列は文字型です。 これは間違いでしょう

accessvba
質問者

お礼

早速回答ありがとうございます! >>テーブルの列は文字型です。 >これは間違いでしょう それがテキスト型なんです。

  • nodatia
  • ベストアンサー率0% (0/4)
回答No.1

>画面の入力は、H19/mm/ddなどで入力できますが、テーブルに保存する際、西暦に変換されて保存されてしまいます。 西暦に変換されるということは、フィールドのデータ型は日付型になっていると思います。 和暦で表示されればいいだけなら、日付型のデータ型のままでプロパティの書式を「gee/mm/dd」に設定すれば和暦表示してくれます。

accessvba
質問者

お礼

早速回答ありがとうございます! >西暦に変換されるということは、フィールドのデータ型は日付型になっていると思います。 それがテーブルはテキスト型で書式設定は しておりません。

関連するQ&A