• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACSESSでのデータの抽出にすいて)

ACSESSでのデータの抽出方法について教えてください

このQ&Aのポイント
  • 注文番号が同じで完成日がすべて入力されているデータを抽出する方法を教えてください。
  • データ抽出方法についてアドバイスをお願いします。注文番号が同じで完成日がすべて入力されているデータをフォームに表示させたいです。初心者レベルのVBAです。
  • ACSESS2000を使用している際のデータ抽出方法についてアドバイスをお願いします。注文番号が同じで完成日がすべて入力されているデータをフォームに表示させる方法を教えてください。初心者レベルのVBAです。

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

  • ベストアンサー
  • paz777
  • ベストアンサー率47% (77/163)
回答No.4

こんにちは。 う~ん、質問が間違っていましたか・・・・ では、こんな形でどうでしょうか? 1.元テーブルから「完了日」が入っていない(Null)のものを抽出し、「注文番号」でグループ化したクエリー(a)を作成する (これは前回と同じです) 2.元テーブルとクエリー(a)で不一致クエリー(b)を作成。(比較は「注文番号」) 表示する項目は「注文番号」「担当会社」「処理日」の3項目で良いです。  ウィザードで作った方が早いので、設定した後に一旦保存して下さい。  不一致クエリー(b)をそのまま開くと注文番号が"2"と"4"のものが表示されるはずです。 3.不一致クエリー(b)を再度デザインで開き、以下の設定を追加  ・「処理日」の「抽出条件」に「Is Null」を設定  ・ツールバーの「クエリ(Q)」から「クロス集計(B)」を選択。  ・再度、ツールバーの「クエリ(Q)」から「選択(S)」を選択。  ・集計の欄が全て「グループ化」になっていると思いますが「処理日」と「注文番号(クエリー(a)」の集計を「Where条件」に変更。  ・「処理日」の「表示」にチェックが入っていると思いますのでチェックを外して下さい。  ・これで設定終了ですので、保存して下さい。 これで、注文番号:"4"が表示されるはずです。 また何かあれば、補足をお願いします。 ではでは・・・

ohdorry
質問者

お礼

paz777さん、何度もありがとうございました。 実際のデータベースの構成はもっと複雑なので悪戦苦闘しましたが、おかげさまでなんとかうまく抽出できたようです。 ただし、 >1.元テーブルから「完了日」が入っていない(Null)のものを抽出し、「注文番号」でグループ化したクエリー(a)を作成する で、クエリー(a)を「注文番号でグループ化」するとうまくいかず、これをやめたらうまくいきましたが、大丈夫でしょうかね? とにかくホントにありがとうございました! また何かありましたらぜひよろしくお願いします。

その他の回答 (3)

noname#5584
noname#5584
回答No.3

SELECT   注文番号,   担当会社 FROM   TABLE GROUP BY   注文番号,   担当会社 HAVING   Count(注文番号) = Count(完成日)

  • paz777
  • ベストアンサー率47% (77/163)
回答No.2

こんにちは。 >>まず、「完了日」の入っていない(Null?)のものを抽出し、注文番号でグループ >>化したクエリー(a)を作って下さい。 > >この際、「注文番号」の他の項目はすべて「最大」などの表示でよろしいでしょ >うか? このクエリー(a)では、注文番号以外の項目は不要です。 他の項目は無くても良いですし「最大」でも「最小」でも「先頭」でも構いません。 >>次に、今作ったクエリー(a)と元テーブルでクエリー(a)の注文番号が無い元テー >>ブルの不一致クエリー(b)を作って下さい。 > >クエリー(a)と元テーブルで不一致クエリー(b)を作成するのですね。 >(注文番号が無い元テーブルとはなんでしょうか?) はい。その通りです。 日本語が少し変でした。すみません。 >その際、「関連付けるフィールド」は「注文番号」でいいのでしょうか? 「注文番号」で良いと思います。 ではでは・・・

ohdorry
質問者

補足

paz777さん、何度もありがとうございました。 どうしてもうまくいかないため最初から見直していましたところ、 私の質問の仕方が間違っていたようです。 正しくは 同じ「注文番号」の中で「完成日」がすべて入力されているにも係らず、 処理日が入力されていないものを抽出したい ということでしたm(__)m ↓の例ですと「注文番号4」のみが該当します。 本当に申し訳ございません。 お時間がありましたらアドバイスお願いいたします。 注文番号  完成日   担当会社  業務 No. 処理日   1    2003/12/1    A社    01   1     2003/12/2    A社    04    1              A社    05   1     2003/12/7    A社    11    2     2003/12/10    B社    32     2004/1/5   2     2003/12/30    B社    47     2004/1/5   2    2003/12/14    B社    02     2004/1/5          2    2003/12/9    B社    03     2004/1/5   2    2003/12/22    B社    12     2004/1/5   2    2003/12/5     B社    30     2004/1/5   3    2003/12/17    C社    56   3               C社    22   3    2003/12/17    C社    78   4    2003/12/3    D社    39   4     2003/12/9    D社    68   4     2003/12/10    D社    80   4     2003/12/20    D社    82   4     2003/12/11    D社    88

  • paz777
  • ベストアンサー率47% (77/163)
回答No.1

こんにちは。 余り難しく考えることはないですよ。 処理は遅いかも知れませんが、クエリーだけで対応できると思います。 まず、「完了日」の入っていない(Null?)のものを抽出し、注文番号でグループ化したクエリー(a)を作って下さい。 次に、今作ったクエリー(a)と元テーブルでクエリー(a)の注文番号が無い元テーブルの不一致クエリー(b)を作って下さい。 後は、不一致クエリー(b)で注文番号と担当会社をグループ化すれば、希望するデータが抽出できると思います。 一度、お試しください。 ではでは・・・

ohdorry
質問者

補足

paz777さん、さっそくの回答ありがとうございました。 ちょっとうまくいかないのですが、 >まず、「完了日」の入っていない(Null?)のものを抽出し、注文番号でグループ化したクエリー(a)を作って下さい。 この際、「注文番号」の他の項目はすべて「最大」などの表示でよろしいでしょうか? >次に、今作ったクエリー(a)と元テーブルでクエリー(a)の注文番号が無い元テーブルの不一致クエリー(b)を作って下さい。 クエリー(a)と元テーブルで不一致クエリー(b)を作成するのですね。 (注文番号が無い元テーブルとはなんでしょうか?) その際、「関連付けるフィールド」は「注文番号」でいいのでしょうか? お手数ですが、もう一度アドバイスをよろしくお願いします。

関連するQ&A