• ベストアンサー

Access 表を結合したい

かなりの初心者です。 以下の二つのテーブル(表1、表2)があるとします。 表1 氏名   電話番号      FAX番号 ------------------------------------------------ 田中   ×××-××××  ×××-×××× 山田   ×××-××××  ×××-×××× 井上   ×××-××××  ×××-×××× 田神   ×××-××××  ×××-×××× 表2 氏名   住所      ------------------------------------------------ 井上   ×××××××××××××× 田中   ×××××××××××××× 山田   ×××××××××××××× 田神   ×××××××××××××× この2つのテーブルから得られたいものは 氏名   電話番号      FAX番号     住所 ------------------------------------------------------------- 田中   ×××-××××  ×××-××××  ×××××× 山田   ×××-××××  ×××-××××  ×××××× 井上   ×××-××××  ×××-××××  ×××××× 田神   ×××-××××  ×××-××××  ××××××        です。クエリを使ってどうすればよいのでしょうか。

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

  • ベストアンサー
  • moon_myu
  • ベストアンサー率33% (39/118)
回答No.6

O_cyanさんが、書き込まれている通りですが、 ラジオボタンの一番上(両方のテーブルの結合フィールドが同じ行だけを含める)にチェックが付いている場合、 一つのテーブルに同じ名前が無ければ、8行の表示はされないですよ。 確認の方法として、表1・表2のテーブルを開いて 「田中」さんを探し出して、フィルタを掛けてみて下さい。 レコード → フィルタ → 選択フィルタ でも掛けられますよ。 もう一つの確認方法、結合プロパティで 2or3を選択して、データシートビューを開いてみて下さい。 それから氏名で並べ替えをしてみると、テーブルの重複データが判りますよ。 氏名の前後に空白が入っている、入っていない!でも変わってきますので、データを再確認してみる必要がありそうですね。

0000ai
質問者

お礼

何度も回答してくださってありがとうございました。 今アクセスをさわれない状態なので未だ解決していませんがまたやってみます。 ありがとうございました。

その他の回答 (5)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.5

>クエリを開くと8行だけありその8行とも全て一人のデータになっています これはテーブルに同じ氏名があります。 一度テーブルをデザインビューで開き氏名でリレーションしているのであれば氏名のフィールドを主キーにして保存しなおしてみてください。 インデックスか主キーかリレーションに重複する値があるとエラーが表示され保存できないはずです。 氏名に主キーを設定して保存できればそのテーブルには重複する氏名はありません。両方のテーブルを同様にして試してみてください。どちらかに重複する氏名があるはずです。 エラーが出たらそちらのテーブルに重複するレコードがあるので主キーの設定をはずして元に戻し重複するレコードを確認してください。 >結合線の結合プロパティを開くと3つのラジオボタンの一番上にチェックが入っています。そのラジオボタンをクリックしても選択解除されることはありませんでした。 結合の種類は解除は出来ません。3種類の中のどれかをチェックしなくては結合できません。

0000ai
質問者

お礼

現在アクセスがさわれない状態なので未だ試していませんがまたやってみます。 何度も回答してくださり、ありがとうございました。

  • moon_myu
  • ベストアンサー率33% (39/118)
回答No.4

氏名が重複して登録されているのでは? あと確認、クエリのデザインビューを開いてもらって 結合の線のところで、右クリックしてください。 中段よりも下のほうで 結合の三種類を選択できる部分があります。  チェック(丸の中に印が付いている)のは?

0000ai
質問者

補足

またまた回答ありがとうございます。 氏名が重複していることはありませんでした。 また、結合線の結合プロパティを開くと3つのラジオボタンの一番上にチェックが入っています。 そのラジオボタンをクリックしても選択解除されることはありませんでした。 ん~~何でだろう???

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

まずクエリの新規作成でテーブル1(表1)を選ぶとクエリウィザードが開きますのでウィザードに従い順次進めてください。テーブル1から氏名・電話番号・FAX番号を選択してクエリを作ります。 そのクエリをデザインビューで開きクエリ上で右クリックするとメニューにテーブルの表示があります。テーブル追加でテーブル2(表2)を追加します。 テーブル1の氏名とテーブル2の氏名をリレーションで結合します。(テーブル1の氏名をクリックしそのままテーブル2の氏名へドラッグすれば出来ます) そしてテーブル2の住所をクエリへフィールド追加すればできます。(テーブル2の住所をダブルクリックすればクエリ内に追加できます。) これでテーブル1・2の氏名が同じレコードが氏名・電話番号・FAX番号・住所の1行で表示できます。 ただし氏名が完全に一致しているレコード同士のみ表示となります。氏名以外に共通するキーのフィールドがあればキー同士をリレーションで結合してください。 これで表示できます。

  • moon_myu
  • ベストアンサー率33% (39/118)
回答No.2

同名の人がいなければ、順序は関係ないですよ。逆に、同名の人がいないように、テーブルの値を修正しておいて下さい。同名の人がいると、上手く出来ないですよ。その時は、社員番号のようなものを付けると良いですよ。 クエリの新規作成で、デザインビューから作る方法で説明しますね。(^^) 上下の二段に分かれている画面になります。 1.上の空白部分で、右クリック     テーブルの追加 表1と表2を選びます      2.表1の氏名のフィールド名を、表2の氏名フィールドへドラッグします。   結合の線が表示されます。   (同名の人がいるときは、社員番号のようなものでね。) 3.下の部分に表のような枠が出ているはずです。   一番、左側の枠内でクリックすると▼が出ますので    クリックして、氏名    右側の枠内でクリック → 電話番号 を選択    次の右側の枠内    → FAX番号 を選択    次の右側の枠内    → 住所 を選択 4.クエリ名をつけて保存してください。 5.出来上がったクエリ名を開く~ できてませんか?

0000ai
質問者

お礼

回答ありがとうございました。 クエリは出来上がったのですが そのクエリを開くと8行だけありその8行とも全て一人のデータになっています。 つまり 氏名   電話番号      FAX番号     住所 ------------------------------------------------------------- 田中   ×××-××××  ×××-××××  ×××××× 田中   ×××-××××  ×××-××××  ×××××× 田中   ×××-××××  ×××-××××  ×××××× というわけです。 いったい何が起こったのでしょう? 何か思いついたらよろしくお願いいたします。

  • moon_myu
  • ベストアンサー率33% (39/118)
回答No.1

選択クエリを使います。 氏名をキーにして(どちらの表からでもOK) 表1から電話番号、FAX番号 表2から住所 を下の表へドラッグしてくれば出来ますよ。

0000ai
質問者

お礼

ごめんなさい。 超初心者なので選択クエリの意味はわかるのですが、そこから先がわかりません。 選択クエリはテーブルやクエリからフィールドを選択して作るってことですよね? >氏名をキーにして(どちらの表からでもOK) >表1から電話番号、FAX番号 >表2から住所 >を下の表へドラッグしてくれば出来ますよ。 これらの部分をもう少し詳しく教えていただけないでしょうか。 よろしくお願いいたします。

0000ai
質問者

補足

表1の氏名の順番と表2の氏名の順番が違うというのが今回のポイントとなっています。 たとえば、山田さんは表1には上から2番目にあるのですが表2には上から3番目にあるというわけです。 これを山田さんの情報を全て同じ行に結合したいのです。 多分抽出条件に[***]=[++++]みたいなことを書くのだと思うのですが・・・・ よろしくお願いいたします。

関連するQ&A

  • Accessで2つの表を結合して、クエリで表示させたいと

    Accessで2つの表を結合して、クエリで表示させたいと 思っています。 本屋でアクセスの本を読んだりしていろいろ試したのですが、 どんなに頑張ってもだめでした。どうかお力をお貸しくださいませ。 初心者です。 以下の二つのテーブル(表1、表2)があるとします。 ■表1■ 氏名   電話番号      FAX番号 ------------------------------------------------ 川田   ×××-××××  ×××-×××× 山田   ×××-××××  ×××-×××× 沢田   ×××-××××  ×××-×××× ■表2■ 氏名   電話番号      FAX番号 ------------------------------------------------ 田中   ×××-××××  ×××-×××× 鈴木   ×××-××××  ×××-×××× 井上   ×××-××××  ×××-×××× ■クエリ(このように出力したい!!)■ 氏名   電話番号      FAX番号 ------------------------------------------------ 川田   ×××-××××  ×××-×××× 山田   ×××-××××  ×××-×××× 沢田   ×××-××××  ×××-×××× 田中   ×××-××××  ×××-×××× 鈴木   ×××-××××  ×××-×××× 井上   ×××-××××  ×××-×××× このようなことは可能でしょうか? どうかよろしくお願いします。

  • ACCESS ピボットテーブルではなく・・・

    まだまだACCESS初心者ですが、どなたか教えてください。 エクセルで管理データを作成中です。 以下のようにテーブルにコードと担当者を入力しています コード 担当者 A11 山田 A13 井上 A15 田中 A11 鈴木 A13 吉田  ・   この入力をコードごとに コード 担当者 担当者(2) A11 山田  鈴木 A13 井上  吉田 A15 田中  ・   と表示をすることはできないでしょうか・・・。 ピボットテーブルではなく、テーブルやクエリなどで表示をしたいのですが上手くいきません。できるかできないかも分からないのですが、よろしくお願い致します。

  • アクセスのクエリについて教えてください。

    アクセス初心者です。 AテーブルとBテーブルを合体したCテーブルを作成したいのですが、 クエリを使って1工程でできませんでしょうか。 レコードが1000を越えると大変な作業になりますので、 何か良い方法を探しております。宜しくお願いします。 Aテーブル 顧客No  名前  住所  1     鈴木  東京  2     田中  横浜 Bテーブル 顧客No  名前  電話  1     鈴木  03  3     山田  044 Cテーブル 顧客No  名前  住所  電話  1     鈴木  東京  03  2     田中  横浜  3     山田      044              以上

  • Access2013テーブル結合クエリ

    Access2013 住所録テーブルと面談備忘録テーブルを、氏名で結合したクエリを作成したいのですが。 この二つのテーブルの氏名が重なり合わないものもあります。 この際、重なり合わない氏名などもクエリのデータシートビューに表示させる方法を教えてください。 フィールドの抽出条件になにか記入するのかなと思っています。初心者です。 宜しくお願いします。

  • アクセスのクエリで重複しているデータについて

    テーブルの一部分のフィールドを使ってクエリAを作成しています。 [クエリA] 番号 氏名  郵便番号 住所     電話番号 子供 1  田中守  111-0000 東京都・・・ 000-0000 章 2  佐藤健  122-0001 神奈川県・・・ 001-0001 花子 3  田中守  111-0000 東京都・・・ 000-0000 陽子 これを重複しているデータを省くのですが、[子供]の名前はすべて取り出したいと思っています。 どの様にすれば良いか教えて頂けないでしょうか? 氏名  郵便番号 住所     電話番号 子供 田中守  111-0000 東京都・・・ 000-0000 章,陽子 佐藤健  122-0001 神奈川県・・・ 001-0001 花子 最終的には、宛名印刷を行った時に、子供の名前も連名で表示したいと思っての事です。 現在、クエリで行っておりますが、クエリでなくても構いません。 足りない情報はすぐに補足致しますので、お手数ですが、どうぞよろしくお願い致します。 Access2003を使用しております。

  • ACCESSのテーブルでこういう表示は可能でしょうか?

    お願いします 下記のように名前・電話番号・年齢フィールドあるテーブルがあり同一の番号が存在した場合には年齢が一番上の人が代表者となりそれ以外の人は同一のレコードの家族フィールドに表示させたいと思います。 そのようなクエリを組むことは可能でしょうか? 名前 電話番号             年齢 ==================================================== 山田太郎 00-0000-0000  50 山田花子 00-0000-0000  45 山田一郎 00-0000-0000  20 田中次郎 11-1111-1111  55 ↓ 代表者 電話番号            家族1  家族2 ==================================================== 山田太郎 00-0000-0000  山田花子 山田一郎 田中次郎 11-1111-1111 以上よろしく願いします。

  • access2007同一構造のテーブルを結合

    複数の同一構造のテーブルを結合したいのですが、、、 下記サイトを見てユニオンクエリーとやらを使うまでは理解しましたが、 http://www.serpress.co.jp/access/no005.html 細部が理解できません。SQL文が理解できません。。。 ●テーブル1=saitama、テーブル2=chiba、テーブル3=tokyo、テーブル4=kanagawa ●フィールド内容=会社名/郵便番号/住所/電話番号/FAX/業種 と言う内容ならば、どの様なSQL文?を書けば良いのでしょうか?

  • Accessのユニオンクエリーで3つのクエリを集計

    Accessのユニオンクエリーで3つのクエリを集計したいのですが Aクエリ 氏名  役員名  就任月  任期 山田   会長   24    1 田中  副会長   24    1 Bクエリ 氏名  役員名  就任月  任期 山田  副会長   12    0 田中   理事   24    1 Cクエリ 氏名  役員名  就任月  任期 山田   会長    24    1 田中  副会長   24    1 結果 氏名  役員名  就任月  任期 山田   会長    48    2 山田  副会長   12    0 田中  副会長   48    2 田中   理事   24    1 このような結果を得ることは出来ますでしょうか? SELECT [氏名], [役員名],[就任月],[任期] FROM [Aクエリ名] UNION SELECT [氏名], [役名],[就任月],[任期] FROM [Bクエリ名] UNION SELECT [氏名], [役名],[就任月],[任期] FROM [Cクエリ名]; このように記述すると 氏名  役員名  就任月  任期 山田   会長   24    1 山田  副会長   12    0 山田   会長   24    1 田中  副会長   24    1 田中   理事   24    1 田中  副会長   24    1 このような結果になってしまうのですが・・

  • Accessのプロの方教えて!!

    前回も何度か同じ質問をしたのですが・・・。 どなたかわかる方、初心者でもわかりやすく対応お願いします。 例えば次のようなテーブルがあると仮定します。 本人テーブル 番号、氏名、住所、電話番号 申請者テーブル 番号、続柄、氏名、住所、電話番号、その他 (1)申請者は本人の場合もあります。申請者が本人の場合には、本人テーブルよりデータを引用したいのです。 (2)フォームを使って入力する際に、続柄が本人としたときには、本人テーブルよりデータを表示させ、本人以外ではそのままデータを入力できるようにしたいです。 (3)後で、申請者一覧を確認する際には、本人データも含めた一覧が必要になります。 色々やってみてはいるのですが、今現在は下のやり方にどうしてもなってしまいます。 (1)本人テーブル及び申請者テーブルを作成 (2)続柄が本人の場合には、本人テーブルのデータを表示させるクエリを作成。(本人確認クエリ) iif([続柄]="本人"、"本人氏名"、"") (3)申請者が本人ではないときには、申請者テーブルに直接データを入力する形になってしまいます。 (4)最後に、(2)と(3)のデータを一緒にした申請者一覧表をクエリで作成します。 iif((2)<>""、(2)、(3)) 上記のないようだとあまりに使いづらいのですが・・・。どこをどの様にすればいいのかわかりません。また、基本的な使い方しか解らないですし、プログラム?等で直したことはありません。 よろしくお願い致します。

  • テーブルの結合?

    accessのテーブル2つを1つのテーブルにする方法を教えていただけないでしょうか。 《テーブルA》 氏名,住所,電話番号,・・・・ 《テーブルA》 氏名,健康保険番号,雇用保険番号,・・・・ 氏名は、テーブルAとテーブルBで一致しています。 とりあえず、1個のテーブルにしてしまいたいのですが。

専門家に質問してみよう