• ベストアンサー

Accessの重複データ非表示について

Accessのクエリで重複データを非表示にする際、「クエリプロパティ」シートで「固有の値」を「はい」に変更しても上手くいきません。 この場合、どういう原因が考えられますか? アドバイスをよろしくお願いします。

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

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.1

実際のSQLを見ないと何とも言えませんが、推測で・・・ 不必要なフィールドを出力しているのでは? 重複をチェックしたいフィールドのみ出力して下さい。 出来れば、SQLの内容を書いてください。もっと正確な回答が出ると思いますよ。 クエリのデザイン画面 表示→SQLビュー

doppelt
質問者

補足

お世話になります。 Access初心者なので、まだよく理解できていません。 とり合えずSQLを書きますので、よろしくご回答ください。 SELECT 顧客マスター.氏名, 販売.品番(品名、色) FROM 顧客マスター INNER JOIN 販売 ON 顧客マスター.顧客ID = 販売.顧客ID WHERE (((販売.品番(品名、色))="97111"));

その他の回答 (2)

  • venzou
  • ベストアンサー率71% (311/435)
回答No.3

>が「97」から始まる商品の購入者を検索しようとワイルドカードを使って「97*」で検索すると「97111」と「97112」を購入した同一人物が表示されます。これを購入者名を重複せずに表示することはできますか? 品番(品名、色)が異なるので表示すると、氏名が重複します。 品番(品名、色)の「表示」のチェックを外して、氏名だけ表示してください。 SELECT DISTINCT 顧客マスター.氏名 FROM 顧客マスター INNER JOIN 販売 ON 顧客マスター.顧客ID = 販売.顧客ID WHERE (((販売.品番(品名、色)) Like "97*"));

doppelt
質問者

お礼

教えていただいた通りにやってみたらできました。 どうも色々教えていただきまして、ありがとうございました。

  • venzou
  • ベストアンサー率71% (311/435)
回答No.2

補足ありがとうございます。検証してみました。 顧客マスター 顧客ID   氏名  1     Aさん  2     Bさん  3     Cさん 販売 顧客ID  品番(品名、色)  1     97111  2     1  2     2  3     97111  3     3  3     97111 SQL SELECT DISTINCT 顧客マスター.氏名, 販売.品番(品名、色) FROM 顧客マスター INNER JOIN 販売 ON 顧客マスター.顧客ID = 販売.顧客ID WHERE (((販売.品番(品名、色))="97111")); 結果 氏名   品番(品名、色) Aさん  97111 Cさん  97111 上の例では正しく動きました。(Cさんの重複データが表示されていません) >変更しても上手くいきません。 「上手くいかない」とはどんな風に上手くいかないのでしょうか? (最初に聞くべきでしたね、すいません。(^^;) 気になる点は、まず補足していただいたSQLが 「SELECT DISTINCT ~」ではなく「SELECT ~」になっていた点です。「固有の値」を「はい」にするとSQLに「DISTINCT」と言う命令が付くはずですので、確認して下さい。 もう1つ、今回の件とは関係ないかもしれませんが、顧客マスター内で氏名が重複している可能性はないですか?。氏名ではなく、顧客IDを出力した方が良いと思います。 SELECT DISTINCT 顧客マスター.顧客ID, 販売.品番(品名、色) FROM 顧客マスター INNER JOIN 販売 ON 顧客マスター.顧客ID = 販売.顧客ID WHERE (((販売.品番(品名、色))="97111"));

doppelt
質問者

補足

いろいろ親切に調べていただきまして、ありがとうございます。 自分でいろいろ試しているうちに、原因が何となく分かってきました。ブランド名で検索した場合は重複データが表示されませんが、例えば品番が「97」から始まる商品の購入者を検索しようとワイルドカードを使って「97*」で検索すると「97111」と「97112」を購入した同一人物が表示されます。これを購入者名を重複せずに表示することはできますか? いろいろ細かく質問してすみません。 よろしくお願いいたします。

関連するQ&A

  • Accessの重複データ除外について

    Accessクエリで重複データをしようとしていますが、 プロパティで固有の値を「はい」に指定したり、集計項目をグループ化したりすると データの順序が変わってしまいます。(昇順に並び変わってしまいます。) データの順序を変えずに重複データを除外する方法を教えてください。

  • ACCESS2010で重複データの削除についてよろしくお願いします。

    ACCESS2010で重複データの削除についてよろしくお願いします。 似た質問が多くいろいろ調べたのですが どうしても解決できなく質問させていただきます。 【クエリA】から【クエリB】を得たいです。 (メールアドレスを元に重複を削除したい) 【クエリA】 4月1日 田中 111@yahoo.com 4月2日 鈴木 222@cmail.com 4月3日 鈴木 222@cmail.com 4月4日 石田 333@ocn.com 4月5日 石田 333@ocn.com 【クエリB】 4月1日 田中 111@yahoo.com 4月2日 鈴木 222@cmail.com 4月4日 石田 333@ocn.com 日付のデータ自体(◯月◯日)がなければ、 クエリのプロパティーシートにある”固有の値”を ”はい”にすると重複の削除できるのですが、 日付がはいるとどうしても重複の削除ができません。 日付の項目が必要なのですが、良い方法 はないものでしょうか? 日付ははじめに登録があったほうを残したいです。 よろしくお願いします。

  • Accessでのクエリーデータ表示で重複データ非表示できますか?

    Accessでのクエリー表示で重複データを非表示にする方法はありますでしょうか?

  • アクセス重複データ

    今アクセスのクエリで重複したデータを1つ残してあとは表示させないものを作成したいのですが、クエリの「抽出条件」に何をいれたらいいでしょうか。 よろしくお願いします。

  • ACCESSの重複クエリについて

    ACCESSの重複クエリは、 重複する値を抽出してくれるということですが、 その際、二つのテーブルは全て同じフィールドでないと いけないのでしょうか? よろしくお願いします<m(__)m>

  • AccessでのDISTINCTROW 、DISTINCTの使い方

    Accessを勉強中です。 入力したデータ(テキストファイルのインポート)の重複除去として、 クエリに登録したデータフィールドすべてに対し、GroupByを実施しております(合計とか、平均とかは選択していない、単純に GroupBy)。 その一方で、最近、DISTINCTROW、DISTINCTを知りました。 DISTINCTROW ---クエリのプロパティで「固有のレコード」Yes DISTINCT-------クエリのプロパティで「固有の値」Yes DISTINCTROW、DISTINCTも、クエリのデータフィールドに登録した ものだけの話であろうと、考えているのですが、明確には理解できていません。 特に「固有のレコード」とは、何をいっているのか、分かりません。分かりやすく解説していただけないでしょうか? また、データの重複を除去する方法としてのDISTINCTROW、DISTINCTは、 一般的な方法なのでしょうか? 以上、宜しくお願いいたします。

  • アクセス97で重複データのときに

    アクセス97で、テーブルにデータを入力する時にそのフィールドで値が重複していた場合、メッセージを出すやり方を教えてください。 インデックスで重複なしにはできません。 (重複する場合もあるのです。ただし、確認のためメッセージだけは出したいのです。) よろしくお願い致します。

  • accessクエリでのデータ重複について

    お世話になります。 ACCESSクエリにてデータが重複してしまします。 SQL表示にて、SELECTの後、DISTINCTやDISTINCTROWを 加えましたが、それでも重複してしまいます。 何故なのでしょうか。 どなたか良い解決方法をお教え頂きたく宜しくお願い 致します。

  • 重複データについて

    accessで重複しているデータを抽出したいのですが、初心者のためよくわかりません。 1列目 2列目 A   2  A   3 B   4 C   5 C   5 C   5 というデータがあった場合、1列目は重複していて2列目は重複していないデータだけを抽出したい場合、どういうクエリにすればいいでしょうか? 重複クエリではこの場合、Cも出力されてしまうためどうしたらいいのか悩んでおります。 よろしくお願いいたします。

  • Access2000で重複データに・・・

    Access2000の重複データの処理について質問です。 あるフィールドの重複レコードを検索し、該当するレコードの別フィールドに「●」をつけようとしています。ただ、重複する最初のレコードには「●」をつけたくないのです。 例えば  aaa ・・・ (1)  bbb  aaa ・・・ (2)  ccc  aaa ・・・ (3)  eee というフィールドだった場合、(1)には「●」をつけずに(2)以降にのみつけたいのです。 重複クエリで重複レコードを抽出して重複テーブル作成→重複テーブルと元テーブルを組み合わせて更新クエリ作成という方法でやったのですが、そうすると(1)にも「●」がついてきます。(当然ですが・・・) 何か名案があれば教えてください。 やはり、VBAを使わないと無理でしょうか・・・?

専門家に質問してみよう