• ベストアンサー

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を多重に入れ子で使用する場合は 条件漏れがないかよく検討して設定する必要があります。 以上です。分からないところが補足してください。

関連するQ&A

  • アクセスのクエリについて

    アクセスのクエリにおいて   店コード、店名  変更日付  備考 1     A店  2004/1/1   2      B店  2004/2/1 3      C店  2004/5/1 1      A店  2005/12/17 2      B店  2005/11/1 3      C店  2005/10/1 上記のようなクエリで店名A店B店C店それぞれの最新の日付を抽出したいのですがわかりません。 ご回答よろしくお願い致します。

  • 【アクセス】 クエリの使用方法

    現在アクセスを使用してデータベースを作成して いるですが、複数のテーブルを一つのクエリに まとめたいのですが 例えば (Aテーブル) (Bテーブル) (Cテーブル)   日付      日付      日付 上記A~Cのデータの日付をクエリで一つにする ことはできますか? アクセス超初心者で基本的な質問かもしれませんが よろしくお願いします。

  • ACCESS2007 クエリで足し算したいができない。

    クエリで、足し算をしたいのですができません。 例えば、A+B=Cをしたいのですが、クエリ内でAとBが0のデータが空白になってしまっていて、足し算ができません。 AとBに数字が入っている場合は、足されています。 規定値を0に設定すればいいみたいですが、それがわかりません。 規定値を0に設定とはどうやるのですか? 元になっているテーブルに設定するのですか? クエリの方に設定するのですか?

  • Accessで煮詰まってます!!助けてください!

    初心者です。困っています。 テーブルAにはフィールドB、C、Dがあります。 B、Cには日付が入力されています。 今、抽出したいのはB、Cの日付が一致していているデータだけ抜きたいのです。Cには空白のところもありますが、表示させます。あくまでもB,Cが一致だけ抜きたいのです。 どうしたらいいでしょうか?助けてください。

  • 【エクセル(Googleスプレッドシート)】

    エクセル初心者になります。 つたない質問になってしまい申し訳ないですが 下記に関してご指導の程よろしくお願い致します。 下記の例の様にエクセル(Googleスプレッドシート)で 日付、日付以外、空白がある表に対して以下の結果を求めるにはどのような関数を使用すれば宜しいでしょうか? ●結果A A列、B列どちらかに日付や文字が打たれて、C列が空白のもの ●結果B A列、B列で両方に日付や文字が打たれて、C列が空白のもの ※日付は仕様上10/2といった通常の日付表記と、日付+アンダーバー数字といった打ち方をします。 ※空白は分かりやすく空と表記しています。 ※文字列は仮に"sumi"と"-"を打っていますが、様々なものがあります。 例 ================================ A列    B列    C列 10/2    10/3_2    空 10/1_2   10/1     10/2 空     10/2    空 空     空     空 空     10/5    10/5 10/1    空     空 sumi    空     10/2 -      10/4    10/4 ================================== ●結果A(A列、B列どちらかに日付や文字が打たれて、C列が空白のもの) 3 ●結果B(A列、B列で両方に日付や文字が打たれて、C列が空白のもの) 1 恐れ入りますが、何卒よろしくお願い致します。

  • Microsoft Query の抽出条件にデフォルト値を表示したい。

    EXCELからMicrosoft Queryを使用して基幹DBのデータを引っ張っています。 この時に仮にA、B、Cという3つの項目があったとします。 A:日付 B:時間 C:担当者コード ダウンロードする際にMS Queryにおいて抽出条件を設けています。 日付の項目だったら >=[日付を入力して下さい] っという具合にです。 この際に日付自体は基本的にデフォルト値(前日や固定日)が決まっている場合にインプットボックスに表示させて入力の手間を省く事は出来ますか?

  • Access2013で翌日のデータのみのクエリ

    お世話になります。 Access2013を使用しており、2つの日付フィールドを比較して 翌日のレコードのみ抜き出したい場合のクエリについて質問で ございます。 日付Aフィールド と 日付Bフィールドが あり、それぞれ日付と時刻が書式yyyy/mm/dd hhmmss で格納されております。 このうち、クエリで抽出したいのは、 日付Bフィールドに格納されている、 日付Aフィールドの翌日のレコードのみを 抽出したいです。 その際、時刻(hhmmss)は無視して翌日のレコードを 抽出したいです。 例えば、 日付Aフィールドに 2016/08/24 15:00:00 2016/08/24 16:00:00 2016/08/24 17:00:00 というデータが格納されていて、 日付Bフィールドに 2016/08/25 00:00:00 2016/08/25 17:00:00 2016/08/26 00:00:00 というデータが格納されていた場合、 日付Bフィールドの 2016/08/25 00:00:00 2016/08/25 17:00:00 のみ抽出したいです。 この場合のクエリの設定方法を教えてください。 どうぞ宜しくお願いいたします。

  • 初めて質問します。

    初めて質問します。 A1、B1、C1 3つのセルを使って下記のことができるか教えて下さい。 A1、C1 ともに空白であれば空白。 A1に日付が入れば、B1に金額が入る。 でも、C1に違う日付が入ればB1の金額が空白に変わる。 ということが出来ないか、何日も悩んでいます。 どうぞ、ご指導よろしくお願いいたします。

  • Accessフォーム/レポートのテキストボックスの表示について

    Access2000で クロスクエリーを元にしたフォームで、フィールドが存在しない場合でも エラーにせずに空白を表示したいのですが、うまくいきません。 なるべくなら複雑なVBAは使わずに作りたいのですが よい方法がありましたら教えてください。 例えば下のようなデータになるクロスクエリーがあります。 (a,b,cは一つのフィールドです)     a b c ----------- 北海道 1 1 0 東北  2 0 1 関東  0 1 1 ・ ・ それを条件をつけて北海道のみにした場合、次のようになります。     a b  北海道 1 1 フォーム上では、全てのとき(a,b,c全てある)と1つを選択したとき(cがない)でも ないフィールドは0として表示したいのです。 わかりにくい説明かもしれませんが、よろしくお願いします。

  • Accessの抽出

    今、何処へいくつ荷物を送るかのリストを 作成しています まず、テーブルAにデータが入っています クエリーBで日付にてデータ抽出させています クエリーCでクエリーBで抽出したデータの クロス集計をしています。 そして、その結果をレポートで印刷します。 ここまではいいんですが、 レポートで出したデータの中に レポートに出さなくてもよい荷物が数個あるんです その荷物がレポートに出ないようにする為には どうしたらいいのかわかりません。 ちなみにテーブルAは基本データなので いじりたくはありません。 このような条件で数個の印字しなくてよいデータを 出さずにどこへ荷物がいくついくのかがわかる リストを作成するにはどうしたらよいでしょうか? 説明がわかりずらいとは思いますが 宜しくお願い致します。

専門家に質問してみよう