最新閲覧日:

アクセスのクエリで日付の条件抽出をしたいのです。シャープ(#)が日付のリテラル値ということまではつき止めたのですが、ここで問題発生です。
文字列には*や?のような便利な文字が使えるのに、日付で使おうとするとエラーになってしまいます。
例えば#01/05/2?# のように2001年5月20日~29日を抽出しろ、としても出来ません。
日付抽出には*や?のような文字はないんでしょうか?
どうしてもないようなら関数でもしょうがないのですが、関数だと#01/1?/?3# (2001年10月~12月のうち、03、13、23日を抽出)みたいな複雑な命令が(簡単には)出来ないような気がするんです。

どなたかお助け下さい。

A 回答 (3件)

プロシージャとかを使わずに大体の事はできます。


フィールド数も、256個まではたしか「OK」ですから、頭の中だけで考えずに、フローチャートを作ってから進めば、頭から煙も出なくてすみます。後から見ても、他の人が見ても理解しやすいと思います。それを組み合わせれば、かなり大きな物も作れるようになります。管理表もあったほうが良いかも知れません。
私も、会社で使っている集計用を、上記のやり方で作りました。結構重宝されています。ただ、クエリーの数は多くなります。
    • good
    • 0

簡単に考えて見ましょう。


日付から年・月・日をそれぞれ違うフィールドに・・ year([日付]) month([日付])  day([日付])と分散してから、それぞれ、抽出条件を設定したらどうでしょう。それか、最初の設計で、年・月・日を分けて入力するようにして、必要で開けば、別のフィールドで、DateSerial([年],[月],[日])でくっつけるってのは、どうでしょう。 
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
なるほど、そういう考え方もあるんですね。CHOROLYNさんの解答欄にもあるようにごくごく単純化しなければならいので、i-haradaさんの回答は結構使えるかもしれませんね。
ただ、日付の項目がひとつではないので(届けた日、引き取った日など複数あります)、それだけ項目数が増えるという意味なんですよね。
お答えを参考にして検討したいと思います。
重ね重ねお礼申し上げます。

お礼日時:2001/06/22 21:26

日付の範囲で抽出する場合は、


Between #2001/05/20# AND #2001/05/29#
の方がいいですよ。

もうひとつの場合も、
WHERE (日付 Between #2001/10/01# AND #2001/12/31#)
AND ((Day(日付)=03) OR (Day(日付)=13) OR (Day(日付)=23))
などのように複数の条件を組み合わせするとか。



どうしてもワイルドカードを使う場合は

Format$([日付],"yyyy/mm/dd")で文字列型にしてから
Like演算子を使用してください。
この場合処理速度が遅くなりますが。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
僕自身はいいのですが、このファイルを会社の人のためにできるだけ簡単に作らなければならないのです。なにしろマイツールという今となってはマニアックなソフトからMS Officeへの移行なので・・・
お答えを参考に検討させていただきます。
重ね重ねお礼申し上げます。

お礼日時:2001/06/22 21:10

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


人気Q&Aランキング

おすすめ情報