重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Access2013 クエリ 他のテーブルに抽出条件と返す値があるような設定について

 

 

いつもお世話になっております。

受注管理を作っています。

 

テーブル①  顧客IDl注文日|・・・・

       1111 |2017/10/3

       2222 |2017/10/10

テーブル②  注文期間の開始日|注文期間の開始日|1回目納品日|2回目納品日|・・・|7回目納品日|

        2017/10/2  | 2017/10/8  | 2017/10/18 |2017/11/8|・・・   |2017/4/4

        2017/10/9  | 2017/10/15  | 2017/10/25 |2017/11/15|・・・   |2017/4/11

 

とあり、テーブル①をもとにクエリを組み以下のようなデザインになれば、と思いました。

  顧客ID|注文日|1回目納品日|2回目納品日|・・・|7回目納品日|

 1111 |2017/10/3| 2017/10/18 |2017/11/8|・・・   |2017/4/4

  2222 |2017/10/10| 2017/10/25 |2017/11/15|・・・   |2017/4/11

 

そこで、始めに  顧客ID|注文日|1回目納品日 のみで試すため、

1回目納品日のところに、以下の式を入れてみました

1回目納品日: IIf([注文日] Between [テーブル②]![注文期間の開始日] And [テーブル②]![ 注文期間の開始日],[ テーブル②]![ 1回目納品日])

 

すると、顧客IDごとにたくさんの行ができ、そのうちの1行だけに1回目納品日があり、そのほかの行には1回目納品日がブランクになってしまいました。

 

なにか式に間違いがあるのでしょうか?

年間注文日に当たる日付は3ヶ月しかないのですが、顧客数がおおいことと、他の管理がAccessで行われているため、

他の顧客データと後々あわせるため、Accessで作りたいのです

よろしくご教示いただければと思います。

A 回答 (1件)

テーブル② の2つ目のフィールドは「注文期間の開始日」ではなくて「注文期間の終了日」と仮定します。



作成されたクエリデザインでは、テーブル①とテーブル②が何も繋がれずに、個々に並んでいると思います。
そのような場合(繋がれていない)は全ての組み合わせが全て表示されます。
今回では 顧客IDの数 × テーブル②のレコード数 になるはずです。

1回目納品日に日付が入っているレコードだけを表示するには、式を入れたフィールドの
抽出条件に「Is Not Null」と記述すればよいです。
    • good
    • 0
この回答へのお礼

ありがとうございます
できました!
Is not null !以前使ったことありました。なのに忘れおもいつきもしなかった自分に愕然です。
繰り返し復習が大事ですね。
ありがとうございました。

お礼日時:2017/09/29 10:09

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