• ベストアンサー

ACCESS2002重複削除について

はじめまして。アクセスで100万から200万件大量データをファイル内重複(テーブル内)、ファイル間重複(他テーブル)とチェックする方法ありませんか?大量なので一時ファイルやダンプ出力してもかまいません。SQLコマンドにて抽出もよいかと思います。PCはP4 1.6G 512Mです。 ACCESS2002です。あまりACCESSには詳しくない初心者ものですがよろしくお願いします。

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

  • ベストアンサー
回答No.1

1. テーブル内で重複したデータを抽出するには (1.1) データベースウィンドウにて、問題のテーブルを選択 (1.2) メニューの「挿入」→「クエリー」 (1.3) 「重複クエリウィザード」を選択 2. 他テーブルとの重複をチェックするには (2.1) データベースウィンドウにて、問題のテーブル(Aとする)を選択 (2.2) メニューの「挿入」→「クエリー」 (2.3) 「デザインビュー」を選択 (2.4) メニューの「表示」→「テーブルの表示」 (2.5) チェック対象のもう一方のテーブル(Bとする)を選択 (2.6) 重複チェックしたいフィールドを結合する。 例えば、Aテーブルのフィールド1とフィールド2の組み合わせがBテーブルのフィールド1とフィールド2の組み合わせと重複していないか調べたい場合は Aテーブルのフィールド1をドラッグしてBテーブルのフィールド1にドロップする。同様にAテーブルのフィールド2をBテーブルのフィールド2にドロップする。 SQLの方がわかりやすければ、 1. クエリーを新規作成する 2. メニューの「表示」→「 SQL ビュー」 3. SQL を記述する。 でもよいと思います。

deaimax
質問者

お礼

ありがとうございます。重複クエリを抽出後 元の重複あるテーブルを構成のみでコピーし 主キーを設定します。そのTBLに重複なし(重複削除状態)でデータ入れ込みたいのですがどうしたらよいのでしょうか? 

その他の回答 (1)

回答No.2

テーブル内の重複の場合(重複クエリーウィザードを使用した場合)のことですよね? (1) クエリのデザインビューにて、「重複を調べるフィールド以外のフィールド」を削除します。つまり、「重複を調べるフィールド」だけ表示するようにします。 (2) 次のどちらかの方法で、重複データを表示しないようにします。 (2.1) プロパティの「固有の値」を「はい」にします。 (2.2) メニューの「表示」→「集計」を選択します。(新しく挿入された「集計」の行は自動的に「グループ化」になりますので、そのままにしておきます。) (3) メニューの「クエリ」→「追加」を選択し、テーブル名入力のダイアログボックスで追加先のテーブル名を入力またはリストから選択します。「レコードの追加」の行に追加先のテーブルのフィールド名が正しいか確認します。 (4) メニューの「クエリ」→「実行」を選択します。

deaimax
質問者

お礼

ありがとうございます。重複前件数とレコード削除されて追加されたのですが20件ほど合わないです。 http://www.deaimax.net/temp1.html の形でTBL追加すればいいのでしょうか? 重複しらべる例はフィールド1だけです。 selectは「*」でいいのでしょうか? また、tbl間の重複チェックでずがAのTBL によりBのTBLに該当するものだけAのTBL削除したいのですが よろしくお願いします。

関連するQ&A

  • accessで重複データの削除について

    accessというよりSQLについてなのかと思いますが、教えていただけないでしょうか。 重複するIDがあり、1件を除いて他のデータを削除してデータを抽出したいです。 抽出条件としては、[年月日]カラムがあるため、日付が一番直近のものを残したいです。  ※こちらも重複しております。 また、[フィルタ]カラムが「2」のレコードのみを対象としたいと思っています。 accessの場合、重複クエリを用いるのかと思い、クエリウィザードから作成しましたが 一意とはなりませんでした。 SELECT テーブル1.[共通ID], テーブル1.[連番], テーブル1.[郵便番号], テーブル1.[住所], テーブル1.[担当者名], テーブル1.[年月日], テーブル1.[フィルタ] FROM テーブル1 WHERE (((テーブル1.[共通ID]) In (SELECT [共通ID] FROM [テーブル1] As Tmp GROUP BY [共通ID] HAVING Count(*)>1 )) AND ((テーブル1.[フィルタ])=2)) ORDER BY テーブル1.[共通ID], テーブル1.[年月日] DESC; distinctも使ってみましたがうまくできませんでした。 何が原因でしょうか。 申し訳ありませんがご教示いただきたくお願いいたします。

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

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

  • ACCESS2007 重複について

    ACCESS2007を使用してます。 下記のように、IDコードのフィールドがあり、このコードに対して、重複しているデータ全てにフラグ1をたてたいのです。 <現在のテーブル> IDコード  ――――――+ 12345  12345  12378  12378  23457  23489  23456  <作成したいテーブル> IDコード 重複フラグ ――――――+――――――――+ 12345 1 12345 1 12378 1 12378 1 23457  23489  23456  重複フラグのフィールドは、現在のテーブルにありません。 どのようなクエリやSQLを作成すればいいでしょうか? よろしくお願い致します。

  • Accessでの電話番号重複チェック

    Accessでの電話番号重複チェック 10万件ほどの顧客データが入ったcsvがあります。 「ID」「電話番号(1)」「電話番号(2)」「電話番号(3)」 とデータが並んでおり、この「電話番号(1)(2)(3)」が1つでも他のIDのものと 重複しているものを抽出したいのですが、方法はありますでしょうか。 10万件でExcelが使えなくなってAccessで出来るかなと思い立ったのですが、 あまりにも勝手が違い困り果てています。 とりあえず重複クエリで(1)と(2)(3)の重複は出せたのですが、 (2)が(3)と重複しているものや、(1)同士・(2)同士・(3)同士が重複しているデータの、 重複元・重複先全てのIDを抽出したいのです。 抽出する方法はあるのでしょうか。 宜しくお願いいたします。

  • アクセス97で重複データを見つけたい

    アクセス97を使用しています。 テーブルの重複したデータを取得する方法はあるでしょうか? 取得して区別を付けたいのです。 例えば、下記のようなデータにチェックを付けたいのです。 データ チェック欄 1    ○  2    × 2    × 3    ○ 4    ○ 5    × 5    × 7    ○ クエリー又はSQLで実施したのですが可能でしょうか? 例えば 該当テーブルをデータをソートしてSELECTし 自データと次データの比較を全件行う ことを繰り返す。 という方法しかないのでしょうか?

  • access・複数のテーブル・重複除外したデータ

    accessで複数のテーブルで重複しないレコードだけを抽出するSQL文を知りたいです。 フィールドは多数あり、「フィールドの内容が全て一致するレコード」以外のレコードを 重複しないレコードとして抽出したいと思っています。 テーブルは3つ以上ありますが、2つのテーブルで実行するSQL文でかまいません。

  • accessのデータで重複している行を削除したい

    accessのテーブルで、データシートに顧客のデータが入っています。 そこに、まったく同じデータが存在していますので、それを削除したい のですが、簡単に抽出して削除する方法等あるのでしょうか?? 重複クエリを試してみましたが、ちょっと違うようなので、 なにかいい方法を教えてください。 初歩的な質問で申し訳ありませんがよろしくお願いいたします。

  • 重複チェック&削除

    現在、エクセル2003VBAでデータを抽出するファイルの「ファイル名」とそのファイルの中の様々な複数の項目を抽出し、データベースを作っています。(その「ファイル名」VBAで抽出して、データベース上にその「ファイル名」も入るようにしています) ここで質問なのですが、そのデータベースに新たなデータを投入する「前」に、既に投入済みデータと重複しないように、重複チェックと重複削除をエクセルVBAでしたいのですが、どのように組んだらいいのでしょうか? 「ファイル名」で重複しているか判断したいと思います。(既に投入済みのデータのファイル名はリスト化しています) よろしくお願いします。

  • アクセスで重複データの抽出について

    アクセスで添付画像のようなテーブルがあり、重複データの抽出を行いたいです。 抽出結果は 120 0 となるようにしたいです。 つまり、 ・フィールド1を基準に、フィールド2が全て0だった場合のみ抽出する という条件です。 どのように行えばよいか、お分かりの方お教え下さい。 よろしくお願いいたします。

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

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