• ベストアンサー

重複データを除いてインポート

bin-chanの回答

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

http://oshiete1.goo.ne.jp/kotaeru.php3?q=228783 に条件が増えたんですか? ではまたSQL文で検出ではいかが? select 個人コード,入力日,count(*) from テーブル名 group by 個人コード,入力日 having count(*)>1 ; > FDのデータをテーブルにインポートしたいのですが FD内のレコードと、もともとACCESS側のテーブルにある「レコードとの重複」なのか FD内の「レコードとの重複」なのかがとても気になります。 コード(モジュール)で記述する方法の概略としては 1.FDの1レコードを読む。 2.「個人コード」と「入力日」をキーとして ACCESSのレコードに該当があるか、読む。 (「個人コード・入力日」を主キーにしておくと検索が早い) 3.結果を判断。 該当のレコードがなければACCESSに書き込む。 あれば無視してFDの次のレコードを読む。 4.以下、FDのファイルのレコードが無くなるまで2.3.を繰り返す。 でしょうか。 VBAを使用して 1.ACCESS側に「主キー」を貼る。 2.FDのファイルをインポートする (重複エラーは別ファイルに吐き出される。不要なら削除コードを記述) 3.インポート後に「主キー」を削除する 方法もありますよ。

koichi_
質問者

お礼

午前中に補足を書いたつもりだったのですが、最終確認のボタンを押すのを忘れてたみたいです ( ̄□ ̄; 返事が遅くなり申し訳ありませんでした。 >FD内のレコードと、もともとACCESS側の >テーブルにある「レコードとの重複」なのか >FD内の「レコードとの重複」なのか FDやACCESS側のテーブル自体には重複はありません。 定期的にFDのデータをACCESSにインポートする必要があり、その際に重複チェックをかけたいと考えています。 アドバイス頂いた方法のいずれかで試してみたいと思います。

関連するQ&A

  • ACCESS インポート時の重複チェック

    ACCESS2000を使用しています。 FDのデータをテーブルにインポートする処理があるのですが、データが重複しているかどうかのチェックはどうすれば出来るのでしょうか。 ご存知の方がいれば教えてください。 よろしくお願いします。 ※重複をチェックする項目は「個人コード」です。

  • 重複データの整理

    アクセス2000を使用。毎日データを分析して抽出されたデータを累積テーブルに追加して蓄積していますが、その日々の抽出されたデータにデータが重複してる場合があります。(これは2種類のコード{日付と企業コード}を重複キーとしているためとおもわれる) 累積された蓄積テーブルから同一日における重複コードを削除する方法を 教えてください。  日付は 20070907、20070908の形式  コードは4桁の整数   例示 20070901  1 20070901  2 20070901  2・・・(消す) 20070901  3 20070901  3・・・(消す)     20070901  4 よろしくお願いします

  • Accessのテーブルへのデータインポートについて

    Accessのテーブルへのデータインポートについて Access2002で、A.mdbのTESTテーブルからB.mdbのTESTテーブル(構造は同じ)へテーブルデータをインポートしたいのです。 TESTテーブルの主キーはSEQ(オートナンバー)しかありません。 そのときに、コピー元とコピー先の主キーに重複があった場合、オートナンバーなので自動で再付番しデータが追加して欲しかったのですが、 Accessの機能のエクスポート、インポートでは、コピー先に主キーに重複があったデータは上書きされてしまいます。 テーブルを開き、データをコピー&ペーストしますと、ペーストしたときにオートナンバーで自動で再付番されます。 この方法でもいいのですが、データが数百万件あるので、現実的ではありません。 Accessのインポート・エクスポートで、オートナンバーで主キーを再付番してから、B.mdbのTESTテーブルにデータ追加する方法はないでしょうか? よろしくお願いいたします。

  • Accessのデータのインポートで重複分を排除

    MicrosoftAccsessで最初から準備してあるデータベースに 外部から追加でデータをインポートする際、重複データがある場合に インポートしない方法はありますか? もしくは、インポートしてしまった後で重複する分だけ削除する方法はありますか? よろしくお願いします。

  • 重複するキーから一番古い年月日のデータのみ取得したい

    下記の事を実現するSQL文がどうしても分からず困り果てています。。。。 ご回答の程お願い致します。 テストテーブルにはコード、枝番、年月日の3種類のデータがあります。 テストテーブルはコードと枝番を主キーとします。 1つのコードに対して、重複しない枝番が複数登録可能となっています。 取得するデータはコード、枝番、年月日の3種類のデータを取得し、同じコードの中で年月日が一番若いデータのみ取得したいです。 同じような質問で http://okwave.jp/qa4089797.html と言うURLの回答を参考に SELECT コード , 枝番 , 年月日 FROM テストテーブル where (コード , 年月日) in (SELECT コード , MIN(年月日) FROM テストテーブル GROUP BY コード ); というSQL文を考えたのですが、 コードは同じで枝番は違うが年月日が同じデータがあると 望んでいない結果にならず、困り果てています・・・・ ■テストテーブルのデータ コード │ 枝番 │ 年月日 ----------------------------- 1 │ 1 │ 2009-01-01 1 │ 2 │ 2009-01-03 2 │ 1 │ 2009-02-15 2 │ 2 │ 2009-02-10 2 │ 3 │ 2009-02-20 3 │ 1 │ 2009-03-15 3 │ 2 │ 2009-03-10 3 │ 3 │ 2009-03-05 3 │ 4 │ 2009-03-01 ↓↓↓ ■望んでいる取得結果 コード │ 枝番 │ 年月日 ----------------------------- 1 │ 1 │ 2009-01-01 2 │ 2 │ 2009-02-10 3 │ 4 │ 2009-03-01

  • エクセルのデータをアクセスのテーブルにインポート

    エクセルのデータをアクセスのテーブルにインポートしたくて、 アクセスから外部データのインポートでエクセルを指定してるのですが ************************************************************************ ワークシート インポートウィザード インデックス、主キー、またはリレーションシップで重複する値が生成されてるため、 テーブルを変更できませんでした。 重複する値のあるフィールドの値を変更するか、インデックスを削除してください。または重複する値を使用できるように再定義してください。 ************************************************************************ になってしまいます。 エクセルの列名を見ても重複していないし(COUNTIF関数で確認しました) アクセス側のウィザードでインデックスはどこのフィールドにもつけてないし、 「主キーを設定しない」もしくは「主キーを自動的に設定する」にしているのに、何をやっても上記のエラーがでます。 ググっても同じようなエラー内容が見つからないのですが、どうしたらいいでしょう? ヴァージョンはエクセルは2007、アクセスは2010です。バージョンの相違が原因でしょうか?

  • Accessで重複したデータを削除したい。

    AテーブルとBテーブルがあります。AテーブルとBテーブルのフィールド名は同じですがデータはそれぞれ違います。AテーブルとBテーブルにあるデータを一つにまとめたいのですが、その際に、 「AテーブルとBテーブルの間で重複したデータがあるのでそれを削除したい。」のですが、手順としてどのような方法がスマートなのでしょうか。 (1)BテーブルをAテーブルに追加クエリで追加する。 (2)Aテーブルで重複クエリを作成し、重複しているデータを表示する。 ・・・・とここまで考えたのですが重複しているデータをどのように削除していけばいいかわかりません・・・。根本的にやり方が間違っているのでしょうか。どなたか詳しい方、いい方法を教えてください。よろしくお願い致します。

  • 重複削除をマクロで

    はじめまして。 データをACCESSにインポートしてテーブル をクエリ重複削除しその後 テーブルを構成でコピー貼り付けして「主キー」設定して テーブルに重複削除できたデータが完成できるのですが これらをマクロできませんか? テーブルを構成で貼り付けする際、データがでかいと 固まってしまいます。 DISTINCTもためしてみましたがうまくいきません。 よろしくお願いします。

  • Accessで重複クエリとその逆の2種類分けて抽出

    Access2002を使っています。インポートしたデータで、10種類程度の情報の中から、個人コードが重複するものは重複クエリで抽出しエクスポートしています。 今回の質問は個人コードが重複していないものだけ抽出する方法を教えていただきたいのです。 重複した個人コードは、重複した他の必要な項目を別集計し重複していないデータに加工し、最後は個人コードが重複していない抽出データと合体させるため 2種類のエクスポートデータが必要なんです。 条件は、インポートしたデータの中身は削除されないことです。 いろいろ検索したのですが、難関で長い期間悩んでいます。 よろしくお願いいたします。

  • エクセルで重複データを削除する方法

    エクセル2000です。 日付■お名前■住所■電話番号■メールアドレス■担当者■広告媒体■製品名■製品コード■ こんな感じのデータが約10000行あります。 でいろんなやり方があると思うのですが、重複データが100くらい存在します。 この重複データを削除する方法として、どんな方法があるのでしょうか? (ピボットテーブルを利用してデータの個数をかぞえて重複しているセルを 行を削除していくという方法しかいまのところ思い浮かびません。) VBA等は利用できません。 どなたかご教授いただけると幸いです。