- ベストアンサー
【Access】クエリでの日付処理(常に新しい更新日を作る)
テーブルに以下のようなデータがあります。 名前 更新日 Aさん 2002-12-01 Bさん 2003-08-18 Cさん 2004-12-31 この【更新日】ですが、1年更新のため、それが過ぎると、常に次の更新日を表示したいのです。 ※2004-12-24現在 名前 更新日 Aさん 2005-12-01 Bさん 2005-08-18 Cさん 2004-12-31 (1) クエリで、上記のように実現するには、どのようにすればよいのでしょうか? (2) クエリで、日付の書式変更(例えば、2005-12-01 → 05-12-01に変更)はできますか? ※(1)ですが、私のイメージとしては、 →年と月日を分解 →(今年の年)+月日 を作る →もし、その日が既に過ぎていれば、 (翌年の年)+月日 →もし、その日がまだ過ぎていなければ、 (今年の年)+月日 こんなイメージですが、Accessでの方法がまったくわかりません。ビルダという画面で操作するのでしょうか?また、これより、もっと、よりシンプルな方法があるようでしたら、教えてください。 以上、ご指南頂けると助かります。宜しくお願い致します。 環境:Win Access 2003
- みんなの回答 (3)
- 専門家の回答
補足
有難うございました。 おかげ様でイメージができました。 補足ですが、アドバイス頂いた式の場合、一部ケースで意図通りにできませんでした。 今日を基準として、それより過去かどうかで判別していますが、この方法の場合、 今日:2004/12/21 日付データ:2003/12/31 上記の場合、日付データが過去のため、「2005/12/31」となります。 正解は、「2004/12/31」とならなければいけません。 Date()の部分を、 今年の年: DateSerial(Year(Date()),Month([銀行テーブル]![日付]),Day([銀行テーブル]![日付])) として、それを基準とすることで対処できました。 今日:2004/12/21 日付データ:2003/12/31 今年の年:2004/12/31 ☆ 今日を過ぎていないので、そのまま(今年の年)を表示 → 2004/12/31 OK! 今日:2004/12/21 日付データ:2003/01/31 今年の年:2004/01/31 ☆ 今日を過ぎているので、(今年の年)+1年 を表示 → 2005/01/31 OK! おそらく、この方法で大丈夫かと。 もう少し、アドバイスを募って、特になければ、解決にさせていただきたいと思います。 また、機会があれば宜しくお願い致します。