海外旅行から帰ってきたら、まず何を食べる?

Ms-Accessのクエリの抽出条件の記述方法に関する質問です。

そもそも不可能なことかもしれないのですが、質問させていただきます。

T_時間割:年度、科目キー、曜日コード、時限コード、教員コード、・・・
T_科目:年度、科目キー、単位、・・・
T_教員:教員コード、教員名、・・・
cd曜日:曜日コード、曜日名称、・・・
cd時限:時限コード、時限名称、・・・

といったテーブルをもとにクエリを作成します。

1行目の抽出条件:曜日コード:1
2行目の抽出条件:単位:2

とし、3行目の抽出条件にクエリのもとになっていないテーブル
↓↓
T_受講者なし科目:年度、科目キー、・・・

の科目キーを指定したいのですが、どうにも抽出条件の記述方法がわかりません。

DLookUpを使うと、「T_受講者なし科目」の1行目のフィールド値のみが抽出条件となってしまいます。

「T_受講者なし科目:科目キー」の全てのフィールド値を抽出条件とする場合、どのようにすればいいのでしょうか??

よろしくお願いいたします。

A 回答 (2件)

DLookupはたまたま最初にも見つかった値ひとつしか返しません


該当するものが複数あるときにはサブクエリを使います

科目キーの抽出条件欄に

In (select 科目キー from T_受講者なし科目 where T_受講者なし科目.年度=T_時間割.年度)
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
抽出に成功しました!

サブクエリというのは使ったことがなかったので、これを機会に
勉強してみようと思います。

ありがとうございました!

お礼日時:2008/06/28 10:21

文章を読む限りではDLookUpを使う?って云うのが理解できません。


何を抽出しようとしているのかが?

単純にT_受講者なし科目を参照テーブルに加え、T_時間割:年度、科目キーと結合するだけでは?

同一行が複数でるならクエリーのプロパティーで固有の値とかレコードを選択する。

もしくはCHRONOS_0さんの回答のようにサブクエリ(副問合せ)で
T_時間割:科目キー: in (SELECT ...)

または
フィールド名 | True
条件 | exists(select * from T_受講者なし科目 where T_受講者なし科目.年度=T_時間割.年度 and T_受講者なし科目.科目キー = T_時間割.科目キー)

など色々方法はあると思います。
現状のクエリーSQLが見えればもっと分かると思うけど
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
言葉足らずで申し訳ございません。

>文章を読む限りではDLookUpを使う?
>
クエリの抽出条件の1つとして、
  =DLookUp("科目キー","T_受講者なし科目")
と記述してみました。

>T_時間割:年度、科目キーと結合するだけでは?
>
T_受講者なし科目を参照テーブルにして、結合するすると別の抽出条件を満たしているレコードが抽出されなくなってしまい、あれやこれや試してみました。

SQLは未踏の地でしたが、少しずつ勉強していきます。
ご助言ありがとうございました。

お礼日時:2008/06/28 10:32

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