• 締切済み

Accessで重複したデータを一件だけ数えて、他をカウントしない方法

いつもお世話になっております。 Accessでデータベースを作成中なのですが、重複データで困っています。選択クエリで抽出をするのですが、 理想: 条件を入力して検索   → 藤原                    小池  (検索結果2個) それぞれの詳細を見る  → 紀香、竜也                  → 栄子、徹平 なんですが、 現在: 条件を入力して検索   → 藤原                    藤原                    小池                    小池 (検索結果4個) となってしまいます。 現在の状態から、重複するデータ(藤原や小池)を1個だけ表示させる、[理想]のような状態は作れないでしょうか? この状態からマクロを使って、藤原、小池の数、詳細の数を数える表を作れるようにしたいのですが、 現在の状況ですと正確な数を数えることができません。 周りにAccessを使える人がおらず、一人で仕事を進めなければいけないので、大変困っています。 どうぞよろしくお願いいたします。                            

みんなの回答

noname#79209
noname#79209
回答No.5

> これは他テーブルと関連付けるために必要になるのではないでしょうか? 回答2への補足での主デーブルの内容がフィールド「番号1」の1つだけなら、主テーブルは意味がないと思います。 また、サブテーブルの「番号2」フィールドに「紀香」レコードと「竜也」レコードの二つのレコードがあるなら、 これを重複とは言えません。 質問者さんの要望だと、「紀香」と「竜也」を一つのレコードとして認識したい様に聞こえます。 普通は「藤原」で検索したら、「紀香」「竜也」の2つレコードが表示され、 検索結果の「紀香」をクリックすると詳細情報として「情報1~4」が表示されるという図式になるのでは?

boscopure
質問者

補足

説明不足で大変申し訳ありません。 主テーブルは「番号1」の他にも、番号1に関連付けられた、変化しない情報がいくつか入っています。 私の要望は、 「番号1」「番号2」「情報1~4」など、任意のものを検索フォームに入力すると、その検索にあてはまる情報をもつ「番号1」が、 検索結果フォームに帳票形式ですべて表示され、その隣にあるマクロボタンを押すことで、 「番号1」で関連付けられた情報のデータフォームが開く・・・というものを作成することです。 検索をして、関連情報のデータフォームを開く、ということはできるんですが、「情報1~4」が「番号2」に関連付けられているために、 検索結果の「番号1」が、上記のように表示されてしまって困っています。

noname#79209
noname#79209
回答No.4

まず、一テーブル内に同一のレコードが存在するのを是正するのが先sなのでは?

boscopure
質問者

補足

一つのテーブルに同一の情報が存在するのは、 サブテーブルの番号1と情報1~4になりますが、 これは他テーブルと関連付けるために必要になるのではないでしょうか?

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

カウント時に重複を除いてカウントする指定が出来る関数を持つDBもありますが Accessではサポートされていないので 重複を除くクエリを作りそれをカウントするという2段処理になります

boscopure
質問者

お礼

そうなんですね。 ありがとうございます。

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

具体的に、 テーブルに入っているデータのサンプル(数レコード)と どんなクエリかの説明がないと話が中々進まないと思いますよ。

boscopure
質問者

補足

ご指摘ありがとうございます。 以下のようなデータベースを作成しています。 主テーブル:   番号1             |(リレーションシップ) サブテーブル:  番号1 番号2 情報1 情報2 情報3 情報4                       |      |   |   |  詳細テーブル:            情報1 情報2 情報3 情報4 番号1→"藤原"、番号2→"紀香""竜也"、情報1→"男性""女性"、情報2→"俳優""グラビア"・・・というような感じで、 番号1に対して、番号2が複数あり、番号2に対して情報が複数存在します。 主テーブル・サブテーブルを元にして検索クエリを作成し、検索用フォームから検索して、 検索結果フォームに"番号1"が出力されるように設定をしたんですが、 "情報"が"番号2"に関連付けられているため、検索結果が上記のようになってしまいます。 目的は、検索で出力された番号1に関連付けられた"情報1×情報2"、"情報3×情報4"のクロス集計(個数のカウント)の表とグラフの作成、 そして、マクロを設定したボタンを押すだけで、それがレポートとして出力されるようにすることです。 毎回検索条件が変わり、また私の手を離れ、まったくAccessを知らない人が使用することになるので、そのたびに手動で重複情報を消すわけにはいきません。 あまり詳しくないので、できればSQL、VBA等は使いたくないのですが、GUIでそのような設定をすることは可能でしょうか? 稚拙な説明で申し訳ありません。 わかりにくい箇所がありましたら、再度ご説明いたします。 よろしくお願いいたします。

  • miyuyu
  • ベストアンサー率61% (30/49)
回答No.1

DISTINCT では如何でしょうか?

boscopure
質問者

補足

DISTINCT、、初めて聞く関数です。 知識が浅く、お恥ずかしいです。。。 毎回検索条件が変わり、その度に重複をカウントしないようにしたいのですが、 その場合はデザインビューのフィールドにDISTINCT関数を設定すればよいのでしょうか?それともSQLになるのでしょうか? 全く見当違いな質問でしたら申し訳ありません。

関連するQ&A