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

MSofficeのAccessを使用して日付を比較したいのですが上手くいきません。

テーブル1のフィールドには実施日(日付型)、A期間開始日(日付型)、A期間終了日(日付型)があり
データ1は2012/04/20、2012/04/15、2012/05/02
データ2は2012/04/25、2012/04/10、2012/04,23と格納されています。

この実施日がA期間に入るかどうかのチェックを行いたいのです。
クエリに入力した関数は
IIf(CDate([テーブル1]![A期間開始日])<=CDate([テーブル1]![実施日])>=CDate([テーブル1]![A期間終了日]),"A期間","範囲外")
と命令を書きました。
実行させるとデータ1、データ2とも期間外が返されました。

実際、返して欲しいデータはデータ1はA期間、データ2は期間外と表示したいのです。

環境はWindows XP profissional、アクセスは2002 SP3です。

よろしくお願いします。

A 回答 (3件)

No2です。

テーブル名が・・・・・・・

IIf([テーブル1]![A期間開始日] <= [テーブル1]![実施日] And [テーブル1]![実施日] <= [テーブル1]![A期間終了日],"A期間","範囲外")

です。
失礼しました。
    • good
    • 0
この回答へのお礼

piroin654さま

ありがとうございます。
出来ました。一回では無理だったのですね。
andで繋げることで複合的に条件が入れられることがわかりました。

また、CDateについてはスラッシュを抜いた8バイトの日付(テキスト型)から
formatを使って日付型に換えてはいたのですが心配だったのでつけてみました。

ありがとうございました。

お礼日時:2012/11/21 08:31

以下では?



IIf([テーブル4]![A期間開始日] <= [テーブル4]![実施日] And [テーブル4]![実施日] <= [テーブル4]![A期間終了日],"A期間","範囲外")

フィールドが日付型ならばCDateは必要ありませんが。
    • good
    • 0

エクセルでデータの右側の4番目のセルに次の式を入れると、希望通りの計算をやってくれます。

参考にしてください。

=IF(B2<=A2,(IF(A2<=C2,"A期間","範囲外")),"範囲外")
    • good
    • 0
この回答へのお礼

optimumsoupさま

ありがとうございます。
Excelで試したところ必要とする結果が返されました。
Accessとはifの使い方はほぼ一緒ですが難しいですね。
ありがとうございました。

お礼日時:2012/11/21 08:34

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A