• ベストアンサー

Access2002 テーブルとクエリについて

Access2002を使用しています。 研修実績のデータを作成中です。 下記2つのテーブルで、担当者名を表示させることはできるのですが、アシスタント名を表示させる方法が、何をどう設定すればいいのか分かりません。どなたか教えてください。 ※リレーションシップを、1 対 多 で設定しています。  担当者テーブル(担当者コード)=実施テーブル(担当者コード) 【担当者テーブル】担当者コード・担当者名・・・ 【実施テーブル】実施コード・実施日・コースコード・担当者コード・アシスタントコード(担当者コードを使用) よろしくお願いします。

  • smi
  • お礼率47% (54/114)

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

  • ベストアンサー
回答No.1

つまり、担当者名とアシスタントが同一のテーブルの別レコードだから困っている、ということでしょうか? でしたら、テーブルに別名をつければOKです。 SELECT JI.*, TT.担当者氏名, TA.担当者氏名 AS アシスタント名 FROM (実施テーブル AS JI LEFT JOIN 担当者テーブル AS TT ON JI.担当者コード = TT.担当者コード) LEFT JOIN 担当者テーブル AS TA ON JI.アシスタントコード = TA.担当者コード;

smi
質問者

お礼

ご回答ありがとうございます。 全く同じ情報のテーブルを複数作成する点が疑問でしたので、別名については閃きませんでした。 早速試してみます。

その他の回答 (1)

noname#182251
noname#182251
回答No.2

既にご回答が出ているように AS を使用して一つのテーブルを二つに見なせばよいのですが、これは Access のGUIでクエリを操作するとき、同じテーブルを二度選択してやればあとは Access がやってくれます下記は「担当者名 AS アシスタント名」を別にすれば、 Access が作成してくれたものをSQLビューで見たものです。 SELECT 実施テーブル.*, 担当者テーブル.担当者名, 担当者テーブル_1.担当者名 AS アシスタント名 FROM (実施テーブル LEFT JOIN 担当者テーブル ON 実施テーブル.担当者コード = 担当者テーブル.担当者コード) LEFT JOIN 担当者テーブル AS 担当者テーブル_1 ON 実施テーブル.アシスタントコード = 担当者テーブル_1.担当者コード;

smi
質問者

お礼

ご回答ありがとうございます。 Accessは初心者なので、単純な機能のみでは浮かびませんでした。 別名で試してみたいと思います。 ありがとうございました。

関連する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クエリの作り方

    OS:Windows2000 Access Version:Access2002 大変基本的なことで申し訳ないのですが、どなたか教えてください。 以下のようなテーブルがあります。 ●問合せテーブル 受付NO 受付日 受付時間 社名 担当者名 ・ ・ 機器コード1 機器コード2 問題コード1 問題コード2 対応状況コード ●機器テーブル 機器コード 機器コード名 ●問題テーブル 問題コード 問題コード名 ●対応状況テーブル 対応状況コード 対応状況名 これらのテーブルを使って、単純にクエリで ●問合せクエリ 受付NO 受付日 受付時間 社名 担当者名 ・ ・ 機器名1 機器名2 問題名1 問題名2 対応状況コード としたいのです。 対応状況は、問合せテーブル内でもひとつなので、簡単にクエリで表示できるのですが、機器1・2、及び問題1・2はふたつあり、どのようにすれば名称がそれぞれ表示できるのかが分かりません。 テーブルのリレーションシップで、 対応状況テーブルと問合せテーブル はリレーションが張れました。 機器テーブルと問合せテーブルにリレーションを張ろうと思い、テーブルを追加して、2つ機器テーブルを表示させ、リレーションを張ってみましたが、それをクエリで編集しようとするとデータが参照できないのか、エラーもなく、クエリが開くだけになってしまいます。問題テーブルも同様です。 本当に初心者のお話で申し訳ないのですが、どなたか教えてください。 よろしくお願いします。

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

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

  • Accessの結合クエリフィールド選択について

    例えば、テーブルを2つ作成し、リレーションを設定し、 その2つのテーブルからフィールドをあわせた クエリを作成する際に、同じフィールド名があれば、 1対多の多の方を選択するようにと問題集などに書いてありますが、 なぜそうなのか考え方が分かりません。 教えて頂けないでしょうか? 環境:Access2003

  • クエリを使ってテーブルを更新したいのですが

    すみません、大学でやっているプロジェクトが行き詰ってしまい、初めて書き込みをさせていただきます。 今私はaccess 2003でレストランの在庫管理システムを作ろうとしているのですがフィールド間の計算がうまくいかないので困っています。テーブルは3つあり テーブル  :商品テーブル ーーーーーーーーーーーーーーーーーーーーー フィールド :商品名(主キー)text フィールド :販売数 number ーーーーーーーーーーーーーーーーーーーーー テーブル  :グラムテーブル ーーーーーーーーーーーーーーーーーーーーー フィールド :グラムテーブルId(主キー)auto number フィールド :商品名 text フィールド :食材名 text フィールド :食材に使うグラム数 number ーーーーーーーーーーーーーーーーーーーーー テーブル  :食材テーブル ーーーーーーーーーーーーーーーーーーーーー フィールド  :食材名(主キー)text フィールド  :食材の在庫 number ーーーーーーーーーーーーーーーーーーーーー リレーションシップは商品テーブルとグラムテーブルが1対多の関係で、食材テーブルとグラムテーブルも1対多の関係です。 私の中のイメージでは使用者が商品テーブルの販売数を打ち込んで食材の在庫数が変わっていくような感じで作りたいので、とりあえず、更新クエリを使って 食材テーブル.食材の在庫:[食材の在庫]-([商品テーブル.販売数]*[グラムテーブル.食材に使うグラム数]) という式を打ち込みましたが変化はありませんでした。なにか、間違っている部分もしくは変更しなきゃならない部分があるならご教授お願いいたします。 わかりにくい文で本当にすみません。

  • Accessリレーションシップについて

    お世話になります。 Access2010 普段はクエリにて、いくつかのテーブルやクエリを紐づけているのですが リレーションシップの設定は今までやったことがありません。 ネットで調べて、 ・「参照整合性」にチェックを入れることにより、1対多の多側で1側に存在  しないIDで登録しようとするとエラーになる。   →間違ったデータが入力されるのを防ぐ。 ・多側でリレーションシップが設定されているフィールドに値を入力しない  ことは可能。但し、当該フィールドの「値要求」プロパティを"はい"に  した場合は、入力しないとエラーになる。 ・「フィールドの連鎖更新」にチェックを入れると、1側で変更したものが  多側でも自動的に変更される。 ・「レコードの連鎖削除」にチェックを入れると、1側で削除した場合、  多側で該当するデータをもつレコードが自動的に削除される。 上記については実際に試してみて動きを確認しました。 ※上記の認識違いや、もっと大事なことがあればご指摘、ご教示頂けると  幸いです。 今までは、こっちのテーブルで削除したらこっちのテーブルでも削除 みたいなことをやってたので、便利だとは思うのですが。。 以下のテーブルでリレーションシップの設定を行ったとします。 売上テーブル  ID 商品 担当者コード  1 AAAAA  3  2 BBBBB  1  3 AAAAA  1  4 CCCCC  2  5 CCCCC  3 担当者テーブル 担当者コード 担当者名  1     担当者A  2     担当者B  3     担当者C 売上テーブルの担当者コードと、担当者テーブルの 担当者コードでリレーションの設定を行い、「参照整合性」及び 「レコードの連鎖削除」にチェックを入れたとします。 例えばフォーム上にリストボックスを設置し ID 商品 担当者名 を表示し、リストボックス上で選択されたレコードを、削除ボタンを 押したら、そのレコードが削除されるプログラムを作成します。 ※選択されたレコードのIDを取得し削除クエリで削除。 リストボックスでID:5のレコードを選択し、削除ボタンを押した場合 売上テーブルのID:5のレコードを削除しても、担当者テーブルから 担当者コード:3のレコードは削除されない・・という認識でよろしい でしょうか。 ※要するに、1対多の多側で削除されても1側には影響無し。 同様にリストボックスでID:5のレコードを選択し、削除ボタンを押したときに 担当者コード:3を取得し、まずは担当者テーブルで担当者コード:3の レコードを削除すると、併せて売上テーブルのID:1及びID:5が削除 される。 要するに、上記のケースで「レコードの連鎖削除」の設定を行うと 本来削除すべきID:5以外のレコード(ID:1)まで削除されてしまう ことになる?? ※そもそも例がちょっと悪かったかもしれません。。 何が言いたいかというと、「フィールドの連鎖更新」「レコードの 連鎖削除」は、よーく考えて設定しないと意図しないところまで 更新されたり削除されてしまうのかなと。。なので、設定することに よって、プログラムの作りも変わってきてしまうことになるので しょうか。 理解不足で質問自体もモヤモヤしたものになってしまいましたが、 ご教示のほど、宜しくお願い致します。

  • Access(リレーションシップについて) 

     Win XP Office 2003 Accessを勉強中です。  デザインビューでクエリを作成するときに、関連するテーブルを表示させると自動的に「結合プロパティ」の線が表示されますが、 この表示で自動的に「1対多」を表示する時としない時がありますが、これは何故でしょうか。  これはどこかから設定をしてやるのでしょうか。  また、同じような線としてメニュバーから「リレーションシップ」を表示させることが出来ますが、 内容的には「結合プロパティ」と同じものですが、これは「リレーションシップ」とはどのようなに使い分けるものでしょうか。

  • Access 参照整合性について

    一対多のリレーションシップで参照整合性の設定ができないし、1も∞も表示されず結合線のみです。一側のファイルは他のアクセスで作成したものをリンクしています。リンクファイルを使用していると参照整合性は設定できないですか?

  • アクセスで…、クエリの作り方のなのでしょうか?

    こんにちは、お世話になります。 料理のレシピみたいな物を、製品名と原材料名にコード番号をつけて管理し、ある材料を使用している製品を検索できるようにしたいと考えています。 そこで製品テーブルと原材料テーブルを作って、メインのフォームで製品名とコード番号、サブフォームにはその製品の原材料とコード番号が表示され、コード番号を入れると 原材料名が自動入力されるようにはなりました。 ところが、ほとんどの製品が違う製品を材料としているため、原材料テーブルだけでは対応できません。 新たに、使用している製品のみを別に表示するサブフォームを作ってはみましたが、製品テーブルを参照すると、メインフォームに表示されている物が自動的に入力されてしまいます。 こちらのサブフォームの中でもコード番号を入れるとそれに対応した製品名が入るようにしたいのですが、どうしたら良いのでしょうか? よろしくお願いします。