• 締切済み

アクセスのクエリ作成

アクセスについてです。訪問先テーブルに「社名、住所、電話番号」等が入力されてあります。訪問分担テーブルに「訪問者、訪問先1、訪問先2、訪問先3」等のデータが入力されています。訪問分担テーブルの「訪問先1、訪問先2」等は訪問先テーブルの「社名」とリンクしてあります(ルックアップ列です)。クエリを作成する際に、「訪問者、訪問先1」につづけて、「訪問先1」の住所を表示させるためにはどうしたらよいのでしょうか。同様に「訪問先2」、「訪問先3」というクエリも別に作成したいのですが、どうしたらよいのでしょうか。

みんなの回答

  • prius770c
  • ベストアンサー率35% (91/258)
回答No.1

デザインビューをイメージして書きます。 訪問分担テーブル 訪問先テーブル×3(テーブルを3回追加してください。) 訪問先1と訪問先テーブル(1つめ)の社名を結合させる。 同様に訪問先2と訪問先テーブル(2つめ)の社名を結合させる。 さらに、訪問先2と訪問先テーブル(3つめ)の社名を結合させる。 訪問先1の住所は訪問先テーブル(1つめ)の住所を選ぶ。 訪問先2の住所は訪問先テーブル(2つめ)の住所を選ぶ。 訪問先3の住所は訪問先テーブル(3つめ)の住所を選ぶ。 実データがないので何とも言えませんが、結合は外部結合の方が良さそうな気がしますね。 あと何に使うのかわからないので一概には言えませんが、なぜ同じような訪問先というデータを わざわざ別のフィールドで管理されているでしょうか? 一つのフィールドで良さそうな気がするのですが・・・。 出来れば、社名で結合するのではなくて社名にIDを振ってデータ管理した方がいいと思いますよ。 テキストデータばっかりだとデータ重たくありませんか? 質問とは直接関係ありませんが少し気になったので。

matsuahiruouji
質問者

お礼

ありがとうございました。 アクセスを使い始めたときに作成したものなので、初期の設計が不十分のように思います。 記入していただいたものをヒントに作成できました。 書き忘れていましたが、一応、社名にIDはふってあります。結合も番号によるものだと思います。 ルックアップ列作成で結合したので、無自覚なのですが…。 フィールドは、訪問時期で分けています。どの時期にどこへ訪問したかを把握するために別にしてあります。 いずれにしても、全体のデザインを考えなければならないときかなと思っています。 ありがとうございました。

関連するQ&A

  • アクセスのクエリ作成について

    下記のようなテーブルとフィールドがあるとします。 Aテーブル  会社名 分類 都道府県 住所 HPアドレス  Bテーブル  担当者 部署 電話 メールアドレス Cテーブル  受付番号 分類 Dテーブル  受付番号 分類 ここでAテーブルの都道府県で一致するデータを抽出し、 下記のフィールドを表示するクエリを作成したいと思っています。 A 会社名 分類 都道府県 住所 HPアドレス B 担当者 部署 メールアドレス 電話 C 受付番号 D 受付番号 クエリを作成し実行しましたが、何もデータが出てきません。 全フィールド入力していないと抽出できないのでしょうか。 中にはHPアドレス等がない場合もあるのです。 すみませんが、どなたか教えて下さい。 よろしくお願いします。

  • ACCESSでクエリがうまく使えません。

    ACCESS2003初心者です。 製品区分というルックアップがあります。 ルックアップの列数は2、連結列は2になっています。 1列目 | 2列目 薬剤A | 1 薬剤B | 2 ・ ・ ・ 薬剤S | 19 まであります。 このデータの11までをクエリで抽出したいのですが、 クエリの製品区分の抽出条件に <="11" と入力して実行しても上手く処理してくれません。 1と10と11だけに該当して表示されます。 >="1" And <="11" としても同じ結果でした。 ※仮に、抽出条件に"8"と入力して実行すると 問題なく、8に該当するデータが表示されます。 他の数字も同じように抽出されます。 11以下に該当するデータだけを抽出したいのですが、 どこが悪いのでしょうか? そもそも、ルックアップの2列目を抽出するような方法は良くないのでしょうか?

  • アクセス2000のテーブル・クエリーについて

    アクセス2000でテーブル1(データ入力済み)、テーブル2(データ未入力)、 テーブル3(データ未入力)、テーブル4(データ入力済み)の4つのテーブルを作成しました。クエリーを上記のテーブルから作成しました。テーブル1とテーブル4はデータが入力されているので、クエリーに反映されています。その後、テーブル2に入力した後、そのクエリーに反映されないのは、どうしてでしょうか。 初歩的なことだと思いますが、教えて下さい。

  • accessのクエリの結果に列を追加したい

    accessのクエリで抽出したデータを、宅急便のソフトにインポートしたいと考えています。 宅急便のソフトのフォームには、アクセスのクエリに無い列(項目)があります。 クエリの結果に、定型の列を追加することは可能でしょうか? よろしくお願いします。 【クエリの結果】 お客様名 住所 電話番号 【希望のクエリ】 お客様名 住所 電話番号 宅急便の種類←(この部分をクエリに追加したい。この部分のデータは常に0を表示) クエリは、テーブルにある項目しか表示できないのでしょうか?

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

    下の2つのようなテーブルからクエリを作成しています。 (1)データマスタ(テーブル) 出席番号   入力日  入力時間  国語  算数  社会 001        6/4    14:00    2     3    2 001        6/4    14:00    2     3    2 002        6/4    15:00    3     2    1 002        6/4    15:00    3     2    1 003        6/4    16:00    4     2    0 003        6/4    16:00    4     2    0 003        6/4    17:00    0     0    2 003        6/4    17:00    0     0    2 (2)クラスマスタ(テーブル) 出席番号   学年   組 001        1    2 002        1    3 003        2    1 クエリを作成して、抽出したいデータ 1)重複したデータを非表示にしたい *レコード削除はしたくない 2)〔合計〕というフィールドを作って(国語+算数+社会)の和を表示したい 3)出席番号003のように、一日に複数回データ入力している者がいるので その者のデータは一行で和を表示させたい 4)001と002は1年生なので、1年生というくくりで各教科の和を表示させたい 私が理想としている、クエリを実行した結果 出席番号   入力日  学年  組  国語  算数  社会  合計 001        6/4    1    2   2     3    2    7 002        6/4    1    3   3     2    1    6                          5     5    3    13 *1学年の和 003        6/4    2    1   4     2    2    8 私が現在作成しているクエリの実行結果 出席番号   入力日  学年  組  国語  算数  社会  合計 001        6/4    1    2   2     3    2    7 002        6/4    1    3   3     2    1    6 003        6/4    2    1   4     2    0    6 003        6/4    2    1   0     0    2    2 1)の重複データ非表示はグループ化で用件を満たしました。 2)〔合計〕というフィールドを作っての和は、クエリで演算子を使って要件を満たしました。 合計フィールドに(国語+算数+社会)と設定して。 【質問】 3)出席番号003の、一日に複数回データ入力している者を一行で表示させることが出来ません。 入力時間の違うデータが複数あるので、003が上のように複数行で表示されてしまいます。 理想のように1行で表示するにはどうしたらよいでしょうか。 4)の1年生全組の和(ここでは1年2組と3組の各教科と合計の和)を表示させるには、 どのようにしたらよいでしょうか。 以上2点、お分かりになる方がいましたらアドバイスお願いしたいと思います。

  • アクセスのクエリで

    アクセス初心者です。 テーブルを作ってクエリもできたのですが 新規にデータを入力する欄が テーブルにはありますがクエリにはできません。 なぜでしょうか? あらゆる可能性を聞きたいです。 回答お願いいたします。

  • アクセスのクエリーについて

     アクセス初心者です。  例えばテーブル1に以下のようなデータがあります。  A     鈴木  佐藤  もう1つテーブル2があります  B  1  2 そこでクエリーを作成し テーブル1とテーブル2の列を1つにまとめます。この時テーブル1とテーブル2に関連性はなく、リレーションシップはつけません。そうすると A  B  鈴木 1 鈴木 2 佐藤 1 佐藤 2 となります。 イメージ的に A  B 鈴木 1 佐藤 2 というように単純に列をつけたいのです。エクセルなら簡単に出来ますがアクセスでは出来ないでしょうか。

  • Accessのクエリについて

    いつもお世話になっております。 Accessクエリについて、教えてください。 退職者の作ったMDBなのですが、ODBC経由でSQLServerに接続をしています。 リンクテーブルをはっているのですが、ここでよくわからないことがあります。 データベースウインドのクエリにたくさんのクエリが登録されているのですが、 そこでクエリの対象になっているテーブルがかならずしもリンクテーブルでは ないということです。もちろん、SQLServerには存在しているのですが、 私の理解レベルだとリンクテーブルでもないのに、クエリでデータが取得できて いることが不思議です。 詳しい人にはなんでもないのでしょうが、お分かりの方がおられましたら お教えください。

  • Accessのクエリ実行について

    すみません。ご存知でしたら、教えてください。 まず一点、基本(?)を確認させてください。 下記のように数個のテーブルとそれらを使用した数個のクエリがあったとします。 下記の場合に、もしどれかのテーブルを更新したとします。 その場合、アクセスを立ち上げて、クエリ3を実行するだけで、結果には反映されているのでしょうか?それとも、アクセスを立ち上げて、 クエリ1を実行し閉じ、クエリ2を実行し閉じ、最後にクエリ3を実行しないと、反映されていないのでしょうか? --------------------------------------------------------- テーブルリンクA 、テーブルリンクB、テーブルリンクC、テーブルリンクD ↓↓ テーブルAとテーブルBでクエリ1(マッチング)を作成 テーブルCとテーブルDでクエリ2(マッチング)を作成 ↓↓ クエリ1とクエリ2でクエリ3(マッチング)を作成 ------------------------------------------------- 続いて、もし上記でいちいち途中のクエリを実行しないと、 最後のクエリに反映されない場合、すべてをACCESSを立ち上げたと同時に自動実行し、自動で最後のクエリ(この場合、クエリ3)をエクスポートしたいと考えています。可能でしょうか? 素人な質問ですみません。 何卒よろしくお願いいたします。

  • ACCESSのクエリの考え方

    お世話になります。 現在、アクセスを参考書片手に取り組んでいます。参考書の通りに進んでいたのですが、 クエリのことで悩んでいます。 自分なりの理解なのですが…、テーブルにあるデーターを会議などの資料のために いろんな条件で抽出したりしないかぎりは、別にクエリを作成しなくてもいい、 (要するに、「こういう条件のデーターが欲しい!」って時以外は、基本的には テーブルへのデーター入力だけでOKで、クエリは別に必要ない) という認識で正しいでしょうか? 参考書がやたらとクエリを作成させたがるために、よく分からなくなっています。 下記が、アクセスの目的ですが、自分的にはフォームは扱いやすくする必要が あると思うのですが、いまいちクエリの必要性がわからないのです。 ―――目的――― ・顧客情報・商品情報・顧客ごとの見積・問い合わせを、 社員(10名程度)で  共有したいため。(現在は各々が紙にて管理) ・データーはNASかサーバーにアクセスのデーターを入れて、各々のPCから  閲覧・書き込みができるようにする予定。 ・共有したい情報(「顧客情報」「商品情報」「見積情報」「問い合わせ情報」「クレーム情報」)は  テーブルにて作成。 ・入力・閲覧がしやすいように、フォームについては作成予定。 ・見積書などはアクセスでは作成しない。

専門家に質問してみよう