プロが教えるわが家の防犯対策術!

ACCESS2000を使用しています。
テキスト型8桁の項目があり、yyyymmddの形で
データが格納されています。
これの書式を変更したいのですが、テーブルのプロパティで0000\/00\/00のように入力しても書式が変わりません。どのようにすればよいのでしょうか?

できればクエリで関数を使わずに実現したいです。

A 回答 (5件)

エクセルもアクセスも同じと思いますが、書式(表示形式)には、それぞれ、元になるデータ(アクセスではフィールド値)について、予定しているデータの型があります。


(A)数値
(B)文字列
(C)日付シリアル値(実はある範囲の正の整数値)
などです。
日付書式は(C)だけを対象にしたもので、(B)を対象にしたものは、ないはずです。
現在のデータが文字列型のようなので表示形式を適用することはできないと思います。
それで別列(フィールド)に(C)型のデータを関数で作り、
そこに日付の表示形式を適用することになります。
アクセスの日付の関数にDateValue、DateSerialがありますが、DateValueは2005/12/1のような形式でないと
ダメなようです。
式1: DateValue(Mid([フィールド1],1,4) & "/" & Mid([フィールド1],5,2) & "/" & Mid([フィールド1],7,2))
のような演算フィールドを作るわけです。
そうすると書式は○/○/○のような書式に自ずとなります(これが日付標準書式なので)。
    • good
    • 0
この回答へのお礼

できれば、エクセルエクスポートする場合もあるので、
書式でのみ設定を変えたいのですが、可能ですか?

お礼日時:2005/12/26 03:51

テーブルのデータ型を変更する意図はないんですね。


表示を変えるだけなら、書式を「@@@@¥/@@¥/@@」とするとうまくいきます。
ここでは全角で書きましたが、実際は半角で入力してください。
    • good
    • 0
この回答へのお礼

@で、うまくいきました。
ありがとうございました。

お礼日時:2005/12/26 03:49

1さんの回答ではクエリーオブジェクトをしようされていますが、テーブルとしてデータを引き継ぎたいという場合は一度Excelにエクスポートして、日付書式の列を作りデータを整理した後Accessにインポートすることになります。


この場合Excelのシートでワークシート関数を使用することとなりますが…
    • good
    • 0

#1です。


#2のご回答で、私の言った(B)の型に対する、表示形式がありましたね。日付の値にはなりませんが。忘れていました、すみません。#2さんありがとうございました。
あと日付け計算に使わないのなら、これで良いですね。
ちなみに、エクセルでは、文字列に/をはさむのは、表示形式は####/##/##ですね。@は繰り返しになってしまいます

#3のご回答のエクセルでの関数は
=DATE(MID(A2,1,4),MID(A2,5,2),MID(A2,7,2))
ですね。
    • good
    • 0

>書式でのみ設定を変えたいのですが、可能ですか?


不可能です。
VBAを使えば別ですが。
#1に書いたことは間違っていないと思いますが、値は文字列のままで!、#2のご回答の方法があるので、とりあえず、日付け計算などないのならその方法しかないでしょう。
>できれば、エクセルエクスポートする場合もあるので
エクセルへエクスポートする内容も、値だけなのか、書式やその他も
含めて写されるのか、関心を持ってチェックしてください。
値しか移らないと思います。そうするとエクセルに移っても文字列のままです。表示形式は移りません。もう一度、またエクセルの表示形式の設定が必要でしょう。
私が言いたいことは、本質問に限らず、データの文字列・数値・日付数値に常に注目してくださいということです。
    • good
    • 0

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