アプリ版:「スタンプのみでお礼する」機能のリリースについて

マイクロソフトAccess97を使って、テーブル上の「年月」のデータのうち、ある条件に該当するものについてクエリーで「1ヶ月前」あるいは「2ヶ月前」の年月にまとめて置換えようとしています。(例:200705→「200704」あるいは「200703」へ置換え)

クエリのフィールド欄に、
実年月:[○○テーブル名]![年月]-1 あるいは
実年月:[○○テーブル名]![年月]-2
と入力すると、月によっては求めたい結果が出ます。
ただ、年をまたがるような場合にはうまくいきません。
どんなケースでも(例えば、もとの年月が2007年1月の場合に、1ヶ月前→「200612」、2ヶ月前→「200611」と変換される)きちんと処理がされるようにするためには、どうしたらよいか教えて頂けないでしょうか。

A 回答 (4件)

>200705


これはAccessにとってはただの数字または文字列で年月とは見てくれませんん
これを日付と分かる形に変形してやらないと日付関連の関数は使えません

実年月: DateAdd("m",-1,DateValue(Format([数字],"0000\/00""/1""")))
    • good
    • 0
この回答へのお礼

CHRONOS_0様
早速に、どうもありがとうございます。
教えていただいた式を入れたら、200701のようなケースでも1ヶ月前or2ヶ月前が「2006/12/01」といった形で表示されるようになりました。

さらに贅沢な質問をさせていただいても良いでしょうか。
「2006/12/01」など「年/月/日」での表示ではなく、結果を「年/月」で表示させる場合は、式をどう変えればよいでしょうか?

また追加の質問になってしまうのですが、もともとの年月データはテキスト型でしたので、そのデータと今回変換した年月(日付時刻型)を後々紐付けするのは無理なんですよね?
今回の作業の後、次は別のテーブルにある200701のテキスト型データと今回変換した200701の日付時刻型データでリレーションシップを設定するといったことが必要になってくるため、お伺いしています。

リレーションシップをかけるのが無理な場合、今回日付時刻型に変換して年月を置き換えたデータを、年月はそのままでまたテキスト型に変更するようなことはできますか?(200701(テキスト型)→2006/12に変更(日付時刻型、1ヶ月前)→200612(テキスト型に変更))
それができないなら、もともとの年月の方を日付時刻型に変えるしかないですよね?

お礼日時:2007/10/24 10:29

回答はNo3さんが出しておられますが


根本的な改良法は
>もともとの年月の方を日付時刻型に変えるしかないですよね?
これでしょうね
    • good
    • 0
この回答へのお礼

どうもありがとうございます。
確かに、根本的にはそうした方がよいのでしょうね。
もう少しいろいろ考えてみたいと思います。

お礼日時:2007/10/24 14:03

Format(DateAdd("m",-1,DateValue(Format([数字],"0000\/00""/1"""))),"YYYYMM")



でテキスト型でご希望の結果になるかと思います。
    • good
    • 0
この回答へのお礼

どうもありがとうございます。
やってみたら、求める結果がでました!

本当に助かりました。

お礼日時:2007/10/24 14:01

[年月]フィールドのデータ型は?

この回答への補足

遅くなりましてすみません。[年月]フィールドはテキスト型です。

補足日時:2007/10/24 10:26
    • good
    • 0

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