• 締切済み

Access2000で一致しない値を抽出するには?

仕事でAccess2000を使ってデータベースを作らなければならなくなりました。 Accessはほとんどさわったことがなく、素人です。 どなたかご教授ください。 よろしくお願いします。 テーブルがAとBふたつあります。 テーブルAには建物名Aと住所Aの2つのフィールド、 テーブルBには建物名Bと住所Bの2つのフィールドがあります。 この4つのフィールドでクエリを作成しました。 この中で、 ・AとBで建物名は同じだが住所が違うもの ・AとBで住所は同じだが建物名が違うもの ・どちらか一方にしかない建物名と住所 この3つを抽出したいのですが、抽出条件はどのようにすればいいのでしょうか? クエリで フィールド 建物名A   住所A  建物名B  住所B 抽出条件 <>建物名B  <>住所B とやってみたのですがうまくいきません。 言い換えれば、建物名Aと住所A、建物名Bと住所B、 この2つが完全に一致しているもの以外を抽出したいと思ってます。 どなたか、よろしくお願い致します。

みんなの回答

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.8

どんなクエリを作ったの? 言った通に作ったのならabcdも表示されるはずですが >本当に表示させたい(g h)は表示されません。 だってghはどれとも比較していないのだから当然でしょう IDは比較したいもの同士を結ぶフィールドですよ それに最初のものと仕様が違ってきていますね >フィールド名  建物A 住所A 建物B 住所B >           a     b      a   b >           c     d   c e >           f     g      h   i >ここで抽出したいのは(f,g)(h,i)といった建物、住所とも違うものなのですが いったい何をしたいのかきちんと整理してください

chitoseo
質問者

補足

申し訳ありません。間違えておりました。 言った通りのクエリを作ればabcdも表示されます。 またご指摘の通り、少し自分自身の考えを整理したほうがいい様に思います。 整理してからまた改めて質問させていただきたいと思います。 よろしくお願い致します。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.7

>テーブルAとBではレコード数が違う、また並んでいる順番もバラバラという条件では >教えていただいたものではやはりうまくいかなくて。 うまくいかなかっただけではどうやってどううまくいかなかったのかぜんぜん分かりませんよ レコード数が違っても並び方ばらばらでも問題ありません 要は比較するレコード同志を結びつけるフィールドが必要なのです

chitoseo
質問者

補足

何度も申し訳ありません。補足させていただきます。 教えていただいた通り、それぞれのテーブルのIDを結合させ、 抽出条件に<>建物名 <>住所 とやってみました。 例えば、 テーブルA,Bに下のようなフィールド、レコードがあります。 ID  建物名A 住所A   ID  建物名B 住所B  1    a    b       1     c      d    2   c    d         2     e    f   3    g     h このようなものがあったとすると、クエリを実行すると表示されるのは c d e f だけです。 しかしながら(c d)はテーブルBにありますし、本当に表示させたい (g h)は表示されません。 このような状況です。 何度も申し訳ありません。よろしくお願い致します。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.6

テーブルは下のようなものですね 建物A  住所A  a     b      c     d   f    g      建物B  住所B a     b c e h   i うまくいかない原因は 1レコード目同士、2レコード目同志を比較することを(勝手に)考えているところにあります データベースのテーブルにレコードの順序というものはありませんから 何も指定しないで一つ目のテーブルと2つ目のテーブルを比較すると 全てのレコードを比較します 1レコード目同士を比較したいのなら1レコード目同士を結びつけるフィールドが必要です ID 建物A 住所A 1 a b 2 c d 3 f g ID 建物B 住所B 1 a b 2 c e 3 h i こういうテーブルならクエリでID同士を結合し 建物Aの抽出条件欄に <>[建物B] 住所Aの抽出条件欄に <>[住所B]

chitoseo
質問者

補足

CHRONOS_0 さん 返事が遅くなり申し訳ありません。 上の条件ではうまくいくのですが、 テーブルAとBではレコード数が違う、また並んでいる順番もバラバラという条件では教えていただいたものではやはりうまくいかなくて。 説明が不十分で申し訳ありませんでした。 このような条件下でもできるものなのでしょうか? 何度もすいません。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.5

>建物名と住所の両方を結合したクエリを作るだけではうまくいかないのです。 うまくいかないってどううまくいかないのですか 非常に基本的なクエリですうまくいかないわけがありません

chitoseo
質問者

補足

CHRONOS_Oさん 返信が遅くなりまして申し訳ありません。 どのようにうまくいかないかといいますと、 例えば、下記のようにテーブルA,Bから作成したクエリがあって、 (a~i)はレコードだとします。 フィールド名  建物A 住所A 建物B 住所B            a     b      a      b            c     d   c e            f     g      h    i ここで抽出したいのは(f,g)(h,i)といった建物、住所とも違うものなのですが、建物Aの抽出条件に<>建物Bとしたとすると、 (a.b)(c.e) (a.b)(h.i) . . といったようになってしまいます。 リレーションや抽出条件で解決するものでしょうか? 解決策を教えていただけたら幸いです。 よろしくお願い致します。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

No1,No3です。ふと思ったのですが テーブルAとテーブルBを見ながら新しいデータを作成するのが目的ならば エクセルで、データを一枚シートに合わせて 並び替えやオードフィルタで重複を無視するなどの方法で絞り込んで 不必要なデータの削除や入れ替えを手作業で行ったほうが作業ははやいかもしれません。

chitoseo
質問者

補足

hallo-2007さん 返信が遅くなり申し訳ありません。 >テーブルAからクエリ作成 式で建物A&住所Aの列追加 テーブルBからも同様に列の追加 新しくクエリAとエリBでクエリを作成する方法ダメですか。 ご指摘の通りやってみたのですが。。。 このときリレーションや抽出条件はどのようにすればいいのでしょうか? 何度も申し訳ありません。 また、私もエクセルでやったほうが早いと思ったのですが、 どうしてもアクセスで作成しなければならない状況にありまして。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

No2さんがいわれる方法ですが。 テーブルAからクエリ作成 式で建物A&住所Aの列追加 テーブルBからも同様に列の追加 新しくクエリAとエリBでクエリを作成する方法ダメですか。 多分 クエリAにのみある建物A&住所A  と クエリBにのみある建物B&住所B  になると思いますが。 同様ですが、テーブルAとテーブルBを加えたテーブルCを作って クエリでテーブルCにB、Aを追加すればひとつにならかも?

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

>この2つが完全に一致しているもの以外を抽出したいと思ってます。 これが最終目的なら 建物名と住所の両方を結合したクエリを作るだけです その他の作りたいといっているクエリも非常に基本的なものです >仕事でAccess2000を使ってデータベースを作らなければならなくなりました。 こういうことであるのなら本を買ってきちんと勉強しましょう こういうところで質問するのは断片的なやり取りしか出来ません 本で系統だった知識を得てそれを補完するというよな利用の仕方をしてください

chitoseo
質問者

補足

CHRONOS_0さん ご指摘ありがとうございました。 ただやはり建物名と住所の両方を結合したクエリを作るだけではうまくいかないのです。 申し訳ありませんが、上記以外の回答があれば是非教えてください。 よろしくお願い致します。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

目的は何でしょうか? やり方としては AテーブルにあってBテーブルにない一覧表(不一致)  と分けたほうがわかりやすいです。 クエリで フィールド 建物名A   住所A  建物名B  住所B で、テーブルのリレーションはどうなっていますか?建物Aと建物Bを 結んで、リレーションの線を右クリックして、プロパティで 1,2,3あるので変えてみて表示を確認してください。 多分、最終的にはひとつのテーブルを作成したいとおもいますが、 上記のクエリで修正しながら、片方に追加したいデータだけが表示されるようにします。 データの整理が終了したら、クエリの種類を追加クエリにして実行すれば片方に追加されます。

chitoseo
質問者

補足

hallo-2007さん さっそくの回答ありがとうございます! 補足させていただきますと、テーブルのリレーションはなにも結んでいませんでした。 ご指摘の通り、建物Aと建物Bを結んで、1,2,3を試してみたのですがやはりうまくいきませんでした。 さきにかいた ・AとBで建物名は同じだが住所が違うもの ・AとBで住所は同じだが建物名が違うもの この2つは解決したのですが、 ・どちらか一方にしかない建物名と住所 これがどうしてもうまく表示できません。 もう少しご教授していただけたらありがたいです。 無知なものですいません。 よろしくお願い致します。

関連するQ&A