• ベストアンサー

クエリの抽出方法について

Ms-Accessのクエリの抽出条件の記述方法に関する質問です。 そもそも不可能なことかもしれないのですが、質問させていただきます。 T_時間割:年度、科目キー、曜日コード、時限コード、教員コード、・・・ T_科目:年度、科目キー、単位、・・・ T_教員:教員コード、教員名、・・・ cd曜日:曜日コード、曜日名称、・・・ cd時限:時限コード、時限名称、・・・ といったテーブルをもとにクエリを作成します。 1行目の抽出条件:曜日コード:1 2行目の抽出条件:単位:2 とし、3行目の抽出条件にクエリのもとになっていないテーブル ↓↓ T_受講者なし科目:年度、科目キー、・・・ の科目キーを指定したいのですが、どうにも抽出条件の記述方法がわかりません。 DLookUpを使うと、「T_受講者なし科目」の1行目のフィールド値のみが抽出条件となってしまいます。 「T_受講者なし科目:科目キー」の全てのフィールド値を抽出条件とする場合、どのようにすればいいのでしょうか?? よろしくお願いいたします。

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

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

DLookupはたまたま最初にも見つかった値ひとつしか返しません 該当するものが複数あるときにはサブクエリを使います 科目キーの抽出条件欄に In (select 科目キー from T_受講者なし科目 where T_受講者なし科目.年度=T_時間割.年度)

syd-hq
質問者

お礼

ご回答ありがとうございました。 抽出に成功しました! サブクエリというのは使ったことがなかったので、これを機会に 勉強してみようと思います。 ありがとうございました!

その他の回答 (1)

  • noah7150
  • ベストアンサー率46% (116/251)
回答No.2

文章を読む限りではDLookUpを使う?って云うのが理解できません。 何を抽出しようとしているのかが? 単純にT_受講者なし科目を参照テーブルに加え、T_時間割:年度、科目キーと結合するだけでは? 同一行が複数でるならクエリーのプロパティーで固有の値とかレコードを選択する。 もしくはCHRONOS_0さんの回答のようにサブクエリ(副問合せ)で T_時間割:科目キー: in (SELECT ...) または フィールド名 | True 条件 | exists(select * from T_受講者なし科目 where T_受講者なし科目.年度=T_時間割.年度 and T_受講者なし科目.科目キー = T_時間割.科目キー) など色々方法はあると思います。 現状のクエリーSQLが見えればもっと分かると思うけど

syd-hq
質問者

お礼

ご回答ありがとうございました。 言葉足らずで申し訳ございません。 >文章を読む限りではDLookUpを使う? > クエリの抽出条件の1つとして、   =DLookUp("科目キー","T_受講者なし科目") と記述してみました。 >T_時間割:年度、科目キーと結合するだけでは? > T_受講者なし科目を参照テーブルにして、結合するすると別の抽出条件を満たしているレコードが抽出されなくなってしまい、あれやこれや試してみました。 SQLは未踏の地でしたが、少しずつ勉強していきます。 ご助言ありがとうございました。

関連するQ&A

  • アクセス クエリ抽出

    アクセスのクエリについてお伺いします。各フィールド毎に行をずらして抽出条件を入れて、1つでも条件があった場合にはそのデータ全てを抽出するようにしています。その抽出されたデータの中で、条件が一致したものについてのみフォントの色(例えば:赤)を変えて表示する事はできないでしょうか。よろしくお願いします。

  • アクセス クエリー 抽出条件について

    アクセス クエリー 抽出条件について たとえば文字列で5桁の仕入先コードフィールドが有るとします。で1と3と5を除くレコードを表示させたいときは 抽出条件をどの様に設定したらよろしいでしょうか?

  • ACCESSクエリーの抽出条件について

    OS WIN7 ACCESS 2007使用です。 クエリーの抽出条件について何ですが、テーブルにコードというフィールドがありまして、そこには数値が入力されています。 コード 1 2 3 4 5 ・ ・ このテーブルを元に選択クエリーを作りたいのですが、条件としてコードの値に2と3両方がある場合、2のレコードだけを表示せず、どちらか一方の数値だけの場合またはどちらもない場合は、全てのレコードを表示するようにしたいのです。 抽出条件はどのように書けばよいのでしょうか? いろいろ試したのですが、うまくいきません。 どなたかお助け下さい。

  • Accessのクエリのデータ抽出のエラー?について

    お世話になります。 Accessのクエリでのデータ抽出について教えてください。 テーブルからフィールドを商品コードと出荷日の2つを選択し、 集計を使用して、商品コードでグループ化して、出荷日で最大にします。 すると、抽出条件で商品コードを指定すると抽出できるのですが、抽出条件で 指定せずすべてのデータを抽出すると出てこない商品コードがあります。 たとえば[A]という商品コードを抽出条件に指定すると抽出できるのですが、 抽出条件で指定せずすべてのデータを抽出するとこの[A]という商品コードが 抽出されません。 何が理由なのかお分かりになりましたらどうぞよろしくお願いいたします。 当方SQLがわかりませんのでクエリのデザインビューでご説明いただけますと 幸いです。

  • 【Access】フィールドにつけた別名を同じクエリで抽出に使いたいです

    【Access】フィールドにつけた別名を同じクエリで抽出に使いたいです。 Access2003を使っています。 困っている状況は以下のようなもです。 ■テーブル1  ・フィールド1 ■クエリ1  ・フィールドA:フィールド1  ・フィールドB:[フィールドA]   【抽出条件】>=10 このような条件で、クエリを実行すると、 「パラメータの入力 フィールドA」というダイアログが立ち上がってしまいます。 上記載のクエリ1でフィールドAの[]は自然についてしまうのではずせません。 今はもう一つクエリを作る事でこの状況はなんとかしましたが、フィールドに別名をつける毎にクエリを作るとクエリの数が多くなってしまうので困っています。 クエリでフィールドに別名をつけた場合は、そのクエリ上でその別名を使って抽出をかけることはできないのでしょうか? よろしくお願いします。

  • access2007 クエリで抽出

    初心者です。クエリで抽出したのですが、一部のデータが抜け落ちます。抽出条件のフィールドはテキスト型で、元のテーブルでコピペで統一しましたが、同じデータが抜け落ちます。削除してやり直しても同様でした。重複クエリを作成するとこのフィールドが重複して出てきます。どこを直したらいいのか見当がつきません。よろしくお願いします。

  • アクセスでクエリーによる抽出方法

    アクセスでクエリーによる抽出方法を教えてください。 例えばテーブルに    フィールド1  フィールド2  フィールド3    ---------------------------------------      a     100     700       a      200     600       a     300     700 とします。そしてすべてクエリーにとりこみます。ここから抽出するのですが、      フィールド1  フィールド2   フィールド3    ---------------------------------------       a        100    700        a        200     600        a        300   700 抽出条件   [問1] または           [問2]                     [問3] 上記はクエリーのデザインビューですが、[問1]、[問2]、[問3]のパラメータすべてを入力するのであれば何も悩みません。しかし例えばフィールド1は"a"でフィールド2は検索せず(検索対象からはずす)、フィールド3は"700"を検索したい場合、[問1]では"a"を入力し、、[問2]は何も入力しなくて、[問3]は"700"を入力し検索すると、   フィールド1  フィールド2  フィールド3   ---------------------------------------      a    100    700      b    200    600      c    300    700   となるのです。どうにかして フィールド1  フィールド2  フィールド3 --------------------------------------    a     100     700  というような検索結果をだしたいのです。 アクセス初心者です。お願いします。

  • acccess:クエリの抽出条件

    助けてください_(._.)_ アクセスの選択及び更新クエリで あるテーブル「t_抽出」の「社員番号」フィールドと一致したレコードのみ選択して情報を更新したいのですが。 式ビルダを使ってで抽出条件のところに [t_抽出]![社員番号] と入れるのですが 実行するとパラメータが出てくる どうして?何がいけないのでしょうか(・・? どうぞよろしく

  • クエリーで全部のデータを抽出する方法

    アクセスのクエリーでデータを抽出する時、具体的にはフォームでデータを入力し抽出するのですが、たとえばフォームのテキストボックスに数字を入れないとそのクエリーのフィールドは抽出がかからないようにしたいのです。(抽出フィールドが1つなら数字をいれなければクエリーのデータすべてが表示される) ----------------------------------- フィールド   A      B     c テーブル   テーブル1 テーブル1 テーブル1 抽出条件    []    [] または    ---------------------------------- 上はクエリーのデザインですがクエリーをひらくと抽出条件をきいてきますがA列は何も入力しないでB列では1と入力するとBの列に1の入ってるレコードを表示させたいのです。(もし空欄が無理ならAの列の時何かある文字を入力すると全部表示になる、でもいいです。) まわりくどくなりましたが、アクセス超入門者です。よろしくおねがいします。

  • Accessのクエリーで、*が入っているデータを抜出す方法って?

    助けてください! Accessのクエリーで、*が入っているデータを抜き出すのってどうやるんですか? クエリーの元になるテーブルは1つ、非常に単純なテーブルです。  ●フィールド1=「*」もしくはNullもしくは「英数字」  ●フィールド2=製品番号  ●フィールド3=メーカ番号 テーブルには上記3つのフィールドしかありません。 このテーブルの、「フィールド1に『*』が入っているデータを抜出したいのです。(抜出すのはフィールド1~3全て) 単純に選択クエリーで「抽出条件」に「“*“」と入れると、「フィールド1に英数字が入っている」行まで選択しちゃうんです。そりゃそうだよなーとは思うのですが、じゃあ、どうやったら英数字の入っている行は無視して、純粋に「*」だけの行を抜出せるのかわかりません。 誰かー!助けて―!

専門家に質問してみよう