• ベストアンサー

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

ACCESS2000を使用しています。 FDのデータをテーブルにインポートしたいのですが、重複しているデータはインポートしたくありません。 キーとなるものは、「個人コード」と「入力日」です。 同じ個人コードでも入力日が違えば別データとしてインポートしたいと思います。 アドバイスの程よろしくお願いします。 ※VBAを使って処理をするつもりです。 複数回の手順で行う方法でもよいので、良い方法があれば教えて下さい。

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

  • ベストアンサー
  • a999a999
  • ベストアンサー率68% (11/16)
回答No.2

テーブルにキー設定、重複設定が ちゃんとされていれば、重複データだけは インポートされないと思います。 テーブルの設定を確認して 作業してみてください。

koichi_
質問者

お礼

主キーだけではなく複数のコードにキーがはれるということですよね? 早速方法を調べてみます。 ありがとうございました。

その他の回答 (1)

  • 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