• ベストアンサー

Access2000での選択クエリの作り方

ARCの回答

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.3

いろいろ方法はあると思うんですが、クエリのみを使ったやり方を一つ。 ○予備知識 SQLビューについて。 クエリをデザインする時に、[表示]-[SQLビュー]と操作すると、クエリを文字の形で表示、編集できるようになります。その後、[表示]-[デザインビュー]で、元のクエリデザインに戻ります。 クエリ作成のようなマウス操作を文字で伝えるのは非常にメンドクサイため(笑)、ここではSQLの形でクエリを扱うことにします。 回答のSQLの部分をメモ帳などにコピーして、テーブル名、フィールド名などを適宜書き換えます。そして、クエリを新規作成して、SQLビューに切り替え、メモ帳からSQLを貼り付けてご利用ください。 ○作業用のクエリの作成 以下のクエリを新規作成して、「クエリ2」という名前で保存してください。 ---切り取り線--- SELECT [クエリ1].[選手ID], Val(Partition([年齢],0,200,5)) AS 年齢層, Int([50m走タイム]) AS 記録層 FROM クエリ1 INNER JOIN テーブル1 ON [クエリ1].[選手ID]=[テーブル1].[選手ID]; ---切り取り線--- ○クエリの作成 同様に、クエリを作成して、以下の内容を貼り付けてください ---切り取り線--- SELECT 選手ID,年齢層, 記録層, DLookUp("得点","テーブル2","[年齢] = " & [年齢層] & " AND [タイム] = " & [記録層]) AS 得点 FROM クエリ2; ---切り取り線---

Cloes
質問者

お礼

ARCさん、回答ありがとうございます。 後、もうちょっとのところまで来ていると感じているのですが、まだ、完全解決していません。 テーブル2については、実際は、50m走ではなく、立ち幅跳びのデータで、以下のような形でやっています。 ご教示のとおり、SQL文でやったところ、DLookupを使ったクエリの得点フィールドがエラーで、「抽出条件でデータ型が一致しません」となってしまいます。尚、テーブル2の年齢、距離(タイムの代わり)、得点ともテキスト型です。 再度、ご教示ください。 ID 年齢 距離 得点 1 :29 :188 0 2 :29 189:197 1 3 :29 198:206 2 4 :29 207:215 3 5 :29 216:224 4 6 :29 225:233 5 7 :29 234:242 6 8 :29 243:251 7 9 :29 252:260 8 10 :29 261:268 9 11 :29 269: 10

関連するQ&A

  • Accessのクエリ作成について

    クエリを作成する際の、テーブルの設定の仕方がよくわかりません。 たとえば、「顧客リスト」テーブルと「販売履歴」テーブルに、それぞれ「顧客ID」フィールドがあり、「顧客ID」フィールドがリレーションシップで設定されているとします。 新たに、選択クエリを作成し、そのクエリに、「顧客ID」フィールドを設定するときに、どちらのテーブルの「顧客ID」フィールドを設定するかがわかりません。 ちなみに顧客IDフィールドには、リレーションシップを設定していて、1対多の設定をしています。 「顧客リスト」テーブルの「顧客ID」フィールドが、「1」の側で、 「販売履歴」テーブルの「顧客ID」フィールドが「多」の側です。 どちらのテーブルを使用しても結果は同じなのですが、 選択クエリを作成するときに、上記のように、同じフィールドを持テーブルが2つありリレーションシップを 設定している場合は、どちらのテーブルを使わないといけないというような決まりはあるのでしょうか? どちらを使用しても構わないのでしょうか。 特に、決まりがない場合は、一般的には、どのように設定されているのでしょうか?

  • Accessのクエリ作成について

    クエリを作成する際の、テーブルの設定の仕方がよくわかりません。 たとえば、「顧客リスト」テーブルと「販売履歴」テーブルに、それぞれ「顧客ID」フィールドがあり、「顧客ID」フィールドがリレーションシップで設定されているとします。 新たに、選択クエリを作成し、そのクエリに、「顧客ID」フィールドを設定するときに、どちらのテーブルの「顧客ID」フィールドを設定するかがわかりません。 ちなみに顧客IDフィールドには、リレーションシップを設定していて、1対多の設定をしています。 「顧客リスト」テーブルの「顧客ID」フィールドが、「1」の側で、 「販売履歴」テーブルの「顧客ID」フィールドが「多」の側です。 どちらのテーブルを使用しても結果は同じなのですが、 選択クエリを作成するときに、上記のように、同じフィールドを持テーブルが2つありリレーションシップを 設定している場合は、どちらのテーブルを使わないといけないというような決まりはあるのでしょうか? どちらを使用しても構わないのでしょうか。 特に、決まりがない場合は、一般的には、どのように設定されているのでしょうか?

  • ACCESSのクエリ計算

    Access2003でクエリで特定条件に一致するIDを出して 今度はそのそれぞれのIDから+100(IDが2なら2~102の範囲でというように)の元のテーブルの 値の中からフィールド1が5以上の条件に一致するものの最小のIDをもとめたいと思ってます。 始めたばかりの初心者です DMINでできるのかなと思って下記式にしてみたのですが パラメーターエラーでうまくいかなくて、、 DMin("[テーブル1].ID","[テーブル1]","[テーブル1].ID>=[クエリ1].ID&[ID]<[クエリ1].ID+100&[テーブル1]フィールド2>5")

  • Access2000 の選択クエリで・・・

    いつもお世話になってます。 特定のフィールドを見にいって、その値をもとに選択クエリに表示する文字を変えたいのですが、二者択一ではないので、Ilf関数を使えず代わりに何をどう使えばいいか分からず困っています。 例えば「顧客」テーブルの「履歴」フィールドを参照して、10以下なら「5P」11~20なら「10P」21~30は「20P」31以上は「30P」と表示できるような選択クエリを組みたいのですが・・・。 よろしくお願いします。

  • Accessクエリでのグループ化

    Accessクエリでのグループ化 以下の2つのテーブルが有ります。 ■社員テーブル ID 名前 1 Aさん 2 Bさん 3 Cさん 4 Dさん 5 Eさん ■受付テーブル ID 受付内容 受付日   社員ID 1  xxxxx 2010/3/1   1 2 xxxxx 2010/3/20   3 3 xxxxx 2010/4/10   2 4 xxxxx   2010/4/11  5 5 xxxxx 2010/4/15  1 6 xxxxx 2010/4/30  2 7 xxxxx 2010/5/3  4 そこで社員毎の受付数をカウントしたいと思っています。 ※受付日が2010/4/1以上5/1未満 名前 受付回数 Aさん 1 Bさん 2 Cさん 0 Dさん 0 Eさん 1 となるイメージです。 しかし、実際にクエリを作ると結果が 名前 受付回数 Aさん 1 Bさん 2 Eさん 1 と、なってしまいます。。 名前:グループ化 受付テーブルのID:カウント 受付日:>=2010/04/01 and <2010/05/01 ※社員テーブルの『ID』と、受付テーブルの『社員ID』を  紐つけており、結合プロパティでは『社員テーブルの  全レコードと受付テーブルの同じ結合フィールドのレコード  だけを含める』としております。 あらかじめ、受付テーブルで受付期間の条件でクエリ を作成しておき、それと社員テーブルを紐つけた場合は イメージ通りの結果になるのですが、1つのクエリで 上記イメージでの結果を表示したいと思ってます。 可能でしょうか? ご教授願います。

  • Access2007での選択クエリー

    先日下記の質問をしたところ ID DATE ITEM とテーブルの列にあります。DATEの列には何十年ものyyyy/m/d が入っています。 作りたいクエリーはこのDATEの中から今日と同じ月日のものを選択したいのです。 それもいちいち今日の日付を手動で入れるのではなく (例えばTODAY()) のような ものを使ってクエリーを実行したときぱっと出てくるものを作りたいのですが。 よろしくお願いします。 識者より下記を教えていただき 「日付フィールドの抽出条件欄に Like "*/" & Format(Date(),"mm/dd"」 これでばっちり出来たので喜んでいたところ これと同じ ID DATE ITEMを持つ他の(仮にa.accdbとする)データーベースにこのクエリーを試したところ全く選択できません。 いろいろ見比べてみましたが選択出来たものと出来ないものの違いが分かりません。 よろしくお願いします。

  • Accessの不一致クエリについて

    Accessの初心者です。二つのテーブルの異なるフィールどを比較する方法について、教えてください。 例えば、"6523610"という数字が両方のテーブルにあるかどうか調べたいとします。 テーブルA 523(フィールド名:契約コード)+610(ID) テーブルB 6523(フィールド名:取引コード)+61(フィールド名:地域コード) と、それぞれ構成が違います。頭につく"6"と最後の"0"は共通の数字です。クエリで新たなフィールドを作って、"6523610"にするまではわかるのですが、どのフィールドを関連づけていいかわかりません。このような場合は、不一致クエリではできないのでしょうか? 仕事で、明日中にデータを調べなければいけないので困っています。 よろしくお願いします。

  • Access更新クエリについて教えて下さい

    アクセス超初心者です。 入庫クエリでIDごとの入庫数を合計、 出庫クエリでIDごとの出庫数を合計し、 在庫クエリで在庫数を計算しています。 (入庫クエリの入庫数の合計)-(出庫クエリの出庫数の合計) 部品テーブルがあり、現在庫フィールドを作っています。 ID 部品名 現在庫 1  AAA   10 2  BBB   5 在庫クエリの在庫数を、部品テーブルの現在庫数に 代入したいと考えています。 在庫クエリを使い、テーブル作成クエリで現在庫テーブルを作成、 現在庫テーブルから更新クエリで、部品テーブルの現在庫数を 更新できるのではないかと考えたのですが、 つまづいてしまいました。 現在庫テーブル ID 在庫数 現在庫テーブルの在庫数を、IDごとに部品テーブルの現在庫に 置き換えることは可能ですか? また、その他よい方法がありましたら、教えて下さい。 ご指導のほど、よろしくお願いします。

  • Access 切り捨て合計クエリ

    Accessのクエリにて以下の集計・抽出を作成したいです。 抽出クエリの条件 (1):テーブルから商品名フィールで商品で始まるレコードを抽出する (2):抽出したレコードの数量フィールドの値を2000で割る (3):割り算後、小数点以下(1未満)が発生した場合は、0とする。 集計クエリの条件 (4):抽出クエリの条件式(1)~(3)を実施したのち、商品ごとに切り捨て後の整数を合算する ※数量が2000以上のレコードを抽出したいです。 どのようにすればよろしいでしょうか?

  • ACCESSのクエリで表示されるデータについて

    クエリで表示されるデータの範囲について教えてください。 <状況例> 例えばなのですが、取引先会社の管理データベースとして「テーブルA」と「テーブルB」があったとします。 「テーブルA]のフィールドは「会社ID」、「会社名」、「住所」とします。 「テーブルB]のフィールドは「連絡先ID」、「会社ID」、「担当者名」とします。 そして、「会社ID」をリレーションシップで繋いで、クエリで「テーブルA」「テーブルB」の全てのフィールドを表示したとします。 この時、「テーブルA」にデータが5つあり、「テーブルB」にはデータが2つしかなく、結果リレーションシップを通じて対をなすデータが2つしかない場合には、クエリでは2つしかデータが表示されないと思います。 <質問> クエリではリレーションシップで対をなさないデータは無効となるようですが、対をなさないデータも全てクエリで表示する方法はないのでしょうか。 上記例でいうと、「テーブルA」のデータ5件全てについて表示させたいのですが。もちろん、「テーブルA」のデータ中対をなしていないものについては、「テーブルB」のフィールド内容については「空白」での表示となりますが。