顧客情報の入ったテーブルにメイン担当者IDとサブ担当者IDがあり、別テーブルの社員情報から
社員名などを引っ張ってくるクエリを組んでいます。
現在は、メイン担当者名とサブ担当者名を持ってくる為に社員情報を2回追加して、それぞれで
両方にある担当者IDをキーにして結合させているのですが、テーブル1回の追加でメインとサブ両担当者の社員名を持ってくる方法はあるのでしょうか?
まだ、ACCESSを勉強中のため色々と調べてみましたが知識不足のためか出来る出来ないの判断も出来ませんでした。
出来ないなら諦めがつくのですが、もし1回の追加で済むならその方がシンプルで良いと思うのでもし方法があるようでしたら教えていただければと思います。
No.2ベストアンサー
- 回答日時:
【要旨】
『顧客情報』テーブルの『メイン担当者ID』と『サブ担当者ID』に相当する担当者名を、
1つしか追加していない『社員情報』テーブルとの「結合線」によって同時に表示させることは、
残念ながらできません。
【詳細】
> テーブル1回の追加でメインとサブ両担当者の社員名を持ってくる方法はあるのでしょうか?
『メイン担当者ID-担当者ID』と『サブ担当者ID-担当者ID』の2つの結合線を作成すると、
それは「メイン担当者ID=担当者ID」と「サブ担当者ID=担当者ID」を同時に満たすレコード、
つまり「メイン担当者=サブ担当者」(兼任というか単独担当)を抽出することになります。
(大雑把に言ってしまえばAnd検索に相当する、と)
ですので、現状のテーブル構成では、prius770cさんが既に行っているように、面倒でも
『担当者』テーブルは2回追加するのが、一般的(かつ結果表示も速い)です。
【その他の対応案】
◆A案・『顧客情報』テーブルで担当者名を表示
『社員情報』テーブルのレコード数が多かったりすると、上記の方法よりも動作がもたついて
しまいますが(汗)、『メイン担当者ID』と『サブ担当者ID』にコンボボックスを使用すると、
クエリなしでも対応できます。
『顧客情報』テーブルをデザインビューで開いて『メイン担当者ID』の行を選択したら、
『データ型』のコンボボックスの一番下にある「ルックアップウィザード」を指定して下さい。
後は、ウィザードに従って操作を行うことで、『社員情報』の担当者名を表示させるように
することができます。
(『サブ担当者ID』についても、同様の操作を繰り返します)
※上記ウィザードを実行する代わりに、テーブルのデザインビューの左下の『ルックアップ』
タブで『表示コントロール』を「コンボボックス」にし、『値集合ソース』などを設定しても
Okです。
(なお、ウィザードを使用した場合は、リレーションシップも自動で設定されます)
なお、テーブルでこの設定を行うと、以降、同テーブルを元にしたフォームでフィールドリスト
からのドラッグ&ドロップで『メイン担当者ID』を追加すれば、自動的にコンボボックスでの
表示になります。
また、テーブルではあくまでIDの数値を表示したいという場合は、同テーブル1個だけを
追加したクエリで、『メイン担当者ID』のプロパティシートの『ルックアップ』タブで、同様の
設定を行えばOkです(残念ながらウィザードはないので手動になりますが)。
(クエリ上でIDと担当者名の双方を表示したい場合は、コンボボックスでの表示を設定
した側の『フィールド名』欄を、「メイン担当者ID」から「メイン担当名: メイン担当者ID」
と、「フィールド名として表示したい名前」+「半角コロン(:)」を追加してやります)
◆B案・担当者情報の記録方法を変える
※こちらの方法は、実際にはテーブル構成の全面改修になってしまいます。
あくまで、今後の参考情報ということで概略だけ・・・(汗)
顧客に対して複数の担当者が置かれる場合は、「顧客情報」部分と「担当者情報」
部分を別テーブルとして、1対多の関係にした方が、他のテーブルとの連携が簡単に
なりますし(→メイン/サブの担当者に対して、1つの『社員情報』テーブルの追加で対応
可能)、担当者の数が3人、4人・・・と増えても、『担当者情報』テーブルへのレコード
追加だけで対応できます。
(「担当者が5人になったから『社員情報』テーブルを5個追加しないと・・・」なんてことに
ならないで済む、と)
※この場合、単純な選択クエリだと、「1つの顧客のレコード数=その顧客の担当者の人数」
になります。
(「1顧客1行」にする場合は、クロス集計クエリを使用することになります:
但し、この形での編集は不可、表示専用になります)
回答と対策案ありがとうございます。
基本的な自分の考え方が誤っていないくてホッとしました。
対策案の二つ目は確かに出来そうなのですが、残念ながら顧客情報テーブルの定義は決まって
しまっています。(既存システムのテーブルをリンクしているため)
でも、勉強になりましたありがとうございます。
No.1
- 回答日時:
社員情報のテーブルには社員IDと社員氏名があるものとします。
社員情報のテーブルをコピーして二つにします。仮にE,Fと呼びます。Fのテーブルの社員IDの項目名を「サブ社員ID」と変えて、E,Fは別のテーブルのように見せかけておきます。そこで三つのテーブルの間でリレーションを組みます。メインテーブルを、仮にDと呼びます。Dのメイン担当社員IDとEのテーブルの社員IDの間に結合線、もうひとつはDのサブ担当社員IDとFのサブ社員IDの間に結合線を引きます。そこで三つのテーブルを入れたクエリーをつくり、クエリーを実行します。不要な項目は非表示にしたり、並べる順序は自由に変えられます。このことはすでにご存知と思います。これで一度に目的の表がつくれます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
2024年は「名探偵コナン30周年」「涼宮ハルヒ20周年」などを迎えますが、 あなたが「もうそんなに!?」と驚いた○○周年を教えてください。
-
メモのコツを教えてください!
メモを取るのが苦手です。 急いでメモすると内容がごちゃごちゃになってしまったり、ひどいときには全く読めない時もあります。
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
ギリギリ行けるお一人様のライン
おひとり様需要が増えているというニュースも耳にしますが、 あなたが「ギリギリ一人でも行ける!」という場所や行為を教えてください
-
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
Accessで、1つのマスターを複数のフィールドで参照する
Access(アクセス)
-
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
-
4
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
5
Access2003 クエリで、空の列は作れますか?
Access(アクセス)
-
6
ACCESS クエリの抽出条件に他のテーブルの値を参照する方法
Access(アクセス)
-
7
アクセスのレポートのヘッダーを2ページ以降にもつけるには?
Access(アクセス)
-
8
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
9
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
10
「フォームを作成できませんでした」
Access(アクセス)
-
11
Access レコードを追加できません。テーブル’○○’の結合キーがレコードセットにありません。
Access(アクセス)
-
12
ACCESS 「パラメータの入力」を消したい!!
Access(アクセス)
-
13
アクセスVBAのMe!と[ ]
Access(アクセス)
-
14
アクセスの初心者の質問です(空白の場合に他のフィールドを表示させたい。)
Access(アクセス)
-
15
OR関数
その他(Microsoft Office)
-
16
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
17
アクセスのエラー「クエリには出力フィールドが1つ以上必要です。」
その他(Microsoft Office)
-
18
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
19
Accessフォームが入力できません。
Access(アクセス)
-
20
「パラメータが少なすぎます。3を指定してください。」って???
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
2つのテーブルに共通するレコ...
-
最新日のデータのみ抽出するク...
-
Accessのリンクされたテーブル...
-
ACCESSでテーブルをコピーしよ...
-
access vbaにてテンポラリーテ...
-
Accessでリストの並び順を変更...
-
ACCESSユニオンクエリから新テ...
-
ACCESS初心者 - 同一テーブルの...
-
ACCESS テーブルを見比...
-
accessエラー回避について
-
アクセス・デザインビューのレ...
-
AccessVBAで任意の複数リンクテ...
-
Acccessで2つのテーブルから1...
-
クエリで同一テーブルの複数回...
-
Accessのテーブルで、リンク?...
-
テーブルに表示されているもの...
-
アクセス2000でのリンク先...
-
アクセスでフォームが消える(...
-
sql where 複数テーブル Aテー...
-
アクセスのクエリで集計
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2つのテーブルに共通するレコ...
-
最新日のデータのみ抽出するク...
-
ACCESSユニオンクエリから新テ...
-
テーブルに表示されているもの...
-
Accessのリンクされたテーブル...
-
access vbaにてテンポラリーテ...
-
Acccessで2つのテーブルから1...
-
Accessのテーブルで、リンク?...
-
ACCESSでテーブルをコピーしよ...
-
Accessでリストの並び順を変更...
-
ACCESS テーブルを見比...
-
access2000・・テーブルをデー...
-
ACCESS テーブルを見比...
-
accessのテーブルを閉じたとき...
-
クエリで同一テーブルの複数回...
-
アクセス 部分一致の抽出
-
Microsoft Access 「Form」のボ...
-
アクセスでフォームが消える(...
-
アクセス2000でのリンク先...
-
外部MDBのリンクテーブルの...
おすすめ情報