• ベストアンサー

microsoft Accessの使い方

下記のようなクエリデータがあり、Iffにてデータごとに判定を入れたいです。 日付1 日付2 日付3 判定 ・日付2と3が空白の場合、判定=空白 ・日付2と3に両方日付が入っている場合、判定=A ・日付2は日付が入っているが、日付3が空白の場合  日付1が未来日の場合、判定B  日付1が過去日の場合、判定C 上記のような判定はできますでしょうか? どなたか教えてください。よろしくお願いいたします。  

質問者が選んだベストアンサー

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

「判定」というフィールドはクエリで設定したものとします。 したがって、クエリのデザインビューで新しいフィールドに以下を貼り付けます。 なお、質問のいずれの場合にもあてはまらない場合は判定を"D"としています・ たとえば、 ・日付2は日付が入っているが、日付3が空白の場合  日付1が今日の場合 などです。 判定:IIf(IsNull([日付2]) AND IsNull([日付3]),"",IIf(not IsNull([日付2]) AND not IsNull([日付3]),"A",IIf(not IsNull([日付2]) AND IsNull([日付3]) AND Date() < [日付1],"B",IIf(not IsNull([日付2]) AND IsNull([日付3]) AND Date() > [日付1],"C","D"))))

skidaisuki316
質問者

お礼

今回IIfの複数条件の記載の仕方が本当によくわかりました。今後にも活かせれそうです。本当にありがとうございました。

その他の回答 (1)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

No1です。質問の内容についてですが、各条件に日付1について 記述がない場合があるので、その点について回答した内容に 即して結果を述べておきます。 質問の条件は、 ・日付2と3が空白の場合、判定=空白 ・日付2と3に両方日付が入っている場合、判定=A ・日付2は日付が入っているが、日付3が空白の場合  日付1が未来日の場合、判定B  日付1が過去日の場合、判定C なので、これをそのまま「判定」というフィールドを 設定すると、No1の回答のようになりますが、 その結果は、 ・日付2と3が空白の場合、判定=空白  「ただし、日付1について条件がないので日付1にデータが   入っていてもいなくても判定は空白」 ・日付2と3に両方日付が入っている場合、判定=A  「ただし、日付1について条件がないので日付1にデータが   入っていてもいなくても判定はA」 ・日付2は日付が入っているが、日付3が空白の場合  日付1が未来日の場合、判定B  「ただし、日付1にデータがなければ判定はD」  日付1が過去日の場合、判定C  「ただし、日付1にデータがなければ判定はD」 ・日付2は日付が入っているが、日付3が空白の場合  日付1が今日の場合は判定はD と、なります。 IIfは入れ子で条件を設定できます。VBAではSelect Case文の ようなものですが、IIfを多重に入れ子で使用する場合は 条件漏れがないかよく検討して設定する必要があります。 以上です。分からないところが補足してください。