プロが教えるわが家の防犯対策術!

テーブルのデータの中にまったく同じ内容のレコードがあった場合に、
重複しているレコードを削除し、ダブりをなくしたいのですがどのように
すればよいのでしょうか。

◎テーブルのデータ

ID:オートNo.
部門コード:テキスト
色コード:テキスト
色名:テキスト
   ↓
1 A1500 R01 あか
2 A1500 R01 あか
3 A1500 P02 ピンク
4 B1100 P02 ピンク
5 B1100 BR11 茶
6 B1100 BR11 茶
7 B1100 BR11 茶

上記の場合、1と2、5と6と7がそれぞれダブっているので重複している
レコードを消して、1つだけ残したい。

要するに、以下のように同じレコードを1つにまとめたいのです。

1 A1500 R01 あか
3 A1500 P02 ピンク
4 B1100 P02 ピンク
5 B1100 BR11 茶

できる方法があれば、教えてください。よろしくお願いします(*゜д゜*)

A 回答 (4件)

これは、単にNo2の方の回答を確認したに過ぎません。



ID_____部門コード__色コード____色名
3_______A1500_______P02_________ピンク
1_______A1500_______R01_________あか
5_______B1100_______BR11_______茶
4_______B1100_______P02_________ピンク

こういう結果を得ました。

Private Sub コマンド0_Click()
  Dim isOK As Boolean

  sOK = CnnExecute("SELECT First(ID) AS ID, 部門コード, 色コード, 色名 INTO 新部門色 FROM 部門色 GROUP BY 部門コード, 色コード, 色名;")
  MsgBox isOK
End Sub

なお、CnnExecute関数はテスト用に作成したものです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます!
皆さんの回答を参考にさせていただき、無事解決しました(u_u*)
ありがとうございました。

お礼日時:2007/03/01 10:26

1. 元のテーブルと同じ構造のワークテーブル(データは空)を用意します。


2. 元のテーブルの追加クエリを作り、SQLビューにします。

INSERT INTO [ワークテーブル]
SELECT DISTINCT [元テーブル].*
FROM [元テーブル];

こんな感じにして実行すると、求めるデータがワークテーブルに出来ます。

3. 元のテーブルを消して、ワークテーブルの名前を元のテーブルにすると出来ると思います。リレーションなどがある場合は同じように設定します。

4. 不安な場合は元のテーブルのデータを消して、ワークテーブルのデータをコピーするまたは追加クエリで戻しても可です。(*゜д゜*)
    • good
    • 0
この回答へのお礼

回答ありがとうございます!
皆さんの回答を参考にさせていただき、無事解決しました(u_u*)
ありがとうございました。

お礼日時:2007/03/01 10:26

選択クエリで集計フィールドを表示させて、部門コード、色コード、色名をグループ化、IDを先頭にしてクエリを作る。


SQLは、"SELECT First(テーブル.ID) AS IDの先頭, テーブル.部門コード, テーブル.色コード, テーブル.色名 FROM テーブル GROUP BY テーブル.部門コード, テーブル.色コード, テーブル.色名;"
実テーブルにしたければ、クエリを元に実テーブルを作成。
    • good
    • 0
この回答へのお礼

回答ありがとうございます!
皆さんの回答を参考にさせていただき、無事解決しました(u_u*)
ありがとうございました。

お礼日時:2007/03/01 10:25

こんにちは。



 下記サイトをご参照ください。
  http://office.microsoft.com/ja-jp/access/HA01034 …

では。
    • good
    • 0
この回答へのお礼

回答ありがとうございます!!
早速、サイトを見ながらやってみようと思います!!

お礼日時:2007/02/28 10:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!