データの重複インポートの問題と回避方法

このQ&Aのポイント
  • 別ファイルからデータをインポートする際に重複が生じる問題について解説します。
  • 現在の設定では一致するレコード更新と一致しないレコードの追加を行っているが、重複が発生している理由について考察します。
  • 回避方法として、インポート時に重複をチェックする方法を提案します。
回答を見る
  • ベストアンサー

インポートの際データが重複して読み込まれてしまう?

いつも質問ばかりですみません。 別ファイルからデータをインポートする際にどうやっても 変にインポートされてしまいます。 ※リスト形式で表示した下記ファイルがあります  合計6レコード (フィールド)    (フィールド)   (フィールド) 1.「A日付・7/12」「伝票番号・001」 「名前・Z」 2.「A日付・7/12」「伝票番号・002」 「名前・W」 3.「A日付・7/12」「伝票番号・003」 「名前・Y」 4.「A日付・7/13」「伝票番号・004」 「名前・FA」 5.「A日付・7/13」「伝票番号・005」 「名前・W」 6.「A日付・7/13」「伝票番号・006」 「名前・Y」 これを別ファイルにインポートすると (フィールド)    (フィールド)   (フィールド) 1.「A日付・7/12」「伝票番号・001」 「名前・Z」 2.「A日付・7/12」「伝票番号・002」 「名前・W」 3.「A日付・7/12」「伝票番号・003」 「名前・Y」 4.「A日付・7/13」「伝票番号・004」 「名前・FA」 5.「A日付・7/12」「伝票番号・002」 「名前・W」 6.「A日付・7/12」「伝票番号・003」 「名前・Y」 と「名前・W の 伝票番号・002」と「名前・Y の 伝票番号・003」が 重複してインポートされます。(レコードは6個です) さらに再度インポートすると、また重複してインポートされ 且つ、レコードは重複の2を含め、8個になってしまいます。 設定では現在の対象レコード内で一致するレコード更新 一致しないレコードを追加にチェックをしているのですが? つたない説明ですがどなたか回避する方法をご伝授下さい。 使用環境・Mac OS10.3 FM6です

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

  • ベストアンサー
noname#83007
noname#83007
回答No.2

補足読みました。 でもまだ納得できてないのですが、基本を押さえさせて下さい。 >「元ファイル」のレコードを「全レコード」表示に >して、ボタンを押すと重複しなくなりました? インポートする時は、元ファイルのインポートしたいレコードを表示させている必要があります。 つまり、インポート元の「該当件数」が0の時は、いくらインポート先でインポートさせても0件しか読み込まれません。 それから、質問のインポート例を見ると、 1回目のインポート:1-6のレコードをインポートされる。 2回目のインポート:名前フィールドを照合フィールドにしてインポートされた。 3回目のインポート:謎? に見えます。 2回目のインポート(質問の例の状態)を詳しく書くと、 1-4までは問題なくインポートして2回目の 「名前・W」を見た時に、 また元ファイルの最初の「名前・W」のレコードをインポートしているのです。 「名前・Y」も同じですね。 スクリプトでは、インポート順を記憶させていると思うので、それもチェックしてみて下さい。 元ファイルの状態も要チェックです。

その他の回答 (1)

noname#83007
noname#83007
回答No.1

質問です。 照合フィールドは何にしていますか? 一度目と二度目の照合フィールドは同じですか?

hiromitu3505
質問者

補足

Kumfさん。どうもありがとうございます。 >照合フィールドは何にしていますか?  は、「伝票No」です。 >一度目と二度目の照合フィールドは同じですか? は、一度目と同じ内容の読込ませるために スクリプト(ボタン設定)で自動にしています。 また、本日色々いじっていたら 「元ファイル」のレコードを「全レコード」表示に して、ボタンを押すと重複しなくなりました? でも、またあれこれいじっていると 元の木網です(T T) 設定、その他すべてが悪いのですかね? ごめんなさい、素人の質問で・・・・

関連するQ&A

  • ファイルメーカー10で重複データを削除したい

    ファイルメーカー10で重複データを削除したく(1)~(6)まで行い、(3)の計算結果の「データ削除」表示レコードを抽出して削除したいのですが、(3)の計算結果を保存できないため対象のレコードが削除できません。何かよい方法がありましたらよろしくお願いします。 (1)自己連結リレーションシップでフィールドAを連結 (2)計算項目のフィールド作成 Count (テーブル2::フィールドA)を作成 (3)計算項目のフィールド作成 If (フィールドA ≠ GetNthRecord (フィールドA ; Get (レコード番号)-1);"ok";"データ削除") (4) (2)の結果が2以上を抽出 (5) (4)の抽出後、フィールドAで重複データのソートを行う。 (6) 削除したいレコードに(3)の計算結果として "データ削除" は表示されます。   このあと、なんとも分かりません。そもそもこの方法では無理なのでしょうか?

  • ACCESS 重複データ削除の順番について

    追加クエリを使って重複データを削除する時に、削除されるデータについて質問です。 重複レコードを含むテーブルの構造のコピーを作成し、重複レコードを含むすべてのフィールドの主キーを作成して、元のテーブルから新しいテーブルへの追加クエリを実行して、重複レコードを一括削除をしています。 [操作についての参考URL] http://support.microsoft.com/kb/879852/ja =========================================== (テーブル) [ID]  [クラス]  [名前]   [時間]     1     A     ああ   11:00 ←重複 2     B     鈴木   12:00    3     C     アア   13:00     ←重複  4     A     ああ   14:00 ←重複 5     B     森    15:00   6     C     アア   16:00     ←重複  7     B     青山   17:00   8     C     アア   18:00     ←重複     9     A     ああ   19:00 ←重複 =========================================== 上記のようなテーブルで「クラス」と「名前」の2つのフィールドを主キーにした場合、 「A」の「ああ」さんと、「C」の「アア」さんが各3件ずつ重複しています。 しかし、「ID」と「時間」はそれぞれ違っています。 このような場合に、削除されないデータと削除されるデータの違いは何なのでしょうか? ACCESSの仕様でとか、レコードの若い番号順で削除されるとか、明確なルールが あれば教えていただけると幸いでございます。 御手数お掛け致しますが、何卒よろしくお願いいたします。

  • テーブルA、Bで、項目の重複の有無確認をしたい

    CSVファイルからレコードをインポートしたテーブルAがあります。 インポートした後に処理済みレコードを累積収納するテーブルBがあります。 インポート後、テーブルAのレコードをもとに処理してCSVファイルをエクスポートして、処理済みレコードをテーブルBに移しています。 テーブルA、同Bには「日付」項目があります。 テーブルAにインポート後、処理を実行する際に、テーブルBの日付とテーブルAの日付の重複がないことを比較チェックし、もし重複があればメッセージを出して処理を中断させたいのです。 If~Then~Else、IsNull、DLoolup関数を使って試みましたが、うまくいきません。 VBAでどのような記述をすればいいでしょうか?

  • Accessでcsvファイルをインポートした際のメッセージを出さない

    VBAにてCSVファイルをインポートする http://okwave.jp/kotaeru.php3?q=1705027 下記の質問で、インポートがうまくいくように 教えていただきました。 ただ、インポート先のテーブルに インデックスで「重複なし」と設定しているフィールド(数値型)が あるためインポート時に「○件はインポートできませんでした」と メッセージが表示されます。 重複しないようにインポートできないレコードがあるという インポートの結果はOKなので 「○件はインポートできませんでした」このメッセージのみ 表示したくありません。 メッセージを表示しないようにできないでしょうか?

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

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

  • アクセス インポートファイルの再インポートを防ぐ

    アクセス2003を使用しています。 アクセスにて、エクセルファイルをインポートしています。 既にインポートしたエクセルファイルを再度インポートしないように、再取込みを行おうとした場合、 「既に取り込んでいるファイルです」とエラーメッセージを表示させて、取込み防止を行おうとしています。 クエリの重複チェックを設定していたのですが、行き詰ってしまいました。 アクセスのテーブル先頭フィールドの日付データ(yyyy/mm/dd)でチェックしたいと思っています。 教えてください。よろしくおねがいいたします。

  • マクロによりテーブルをインポートする際の処理について

    マクロの動作によりあるテキストファイル(csv)をテーブルにインポートする際に、そのテキストファイルにない取り込んだ日のフィールドを追加してインポートしたいと思っています。 具体的にはテキストデータが 番号 内容 1 本 2 自転車 3 東京 となっていまして、このテキストデータをマクロ動作によりインポートすれば 日付 番号 内容 5/31 1 本 5/31 2 自転車 5/31 3 東京 というテーブルになるというイメージです。 もう一つがマクロによりインポートする際に読み込むファイル名が text_data_20060531.txt となっていましてフォームのボタンを押すだけで自動的に本日の日付からこのファイル名を指定するにはどうしたらいいのでしょう?マクロの中では決めうちでファイル名を指定しなければならないように見えます。 どなたかご存知の方ご教授ください。

  • ACCESS2000の重複クエリ

    よろしく、お願いします。 ACCESS2000+Win2000で使用しています。 ACCESS2000の”テーブルA”の”フィールドa”の”重複クエリ甲”の結果としてX、Y、Zというデータが出たとします。 そのうち、XのみにテーブルAの”フィールドb(Yes/No型)”にフラグを立てたいのですが、良い方法はありませんか? 私は重複クエリ甲に、更新クエリで更新する事は出来ませんよね? 甲と同じく”重複クエリ乙”を作って、乙は”集計”で先頭のみを出して、甲と乙の”不一致クエリ”で差分を出してみたりもしたのですが、更新クエリを使えない為に、フラグを立てられません。 何か良い方法を教えてください。 お願い致します。

  • outlook2003からHotmailへのアドレス帳のインポートの仕方について

    困ってます。ご回答お願いします。 outlook2003からテキストファイル(windows、カンマ区切り) という形式でエクスポートをして、cvsファイルを作りました。 それをhotmail上でインポートすると、名前や電話番号だけが インポートされ、肝心なemailがインポートされません。 outlookからエクスポート中に「フィールドの一致」というボタンがあったのですが、それに何か関係あるのでしょうか? 基本的にそこはさわってません。 お詳しい方、早急にお返事頂けると助かります! お待ちしています!

  • 「主キー以外重複データ(フィールド多数)」の抽出

    タイトルのような抽出方法が必要になり、その出し方で困っています フィールドが100以上ある大きなテーブルが複数(フィールド構造は全く同じ)あり、 そのレコードを一つにまとめる為重複データを抽出し削除したいのです 条件は「主キー以外の全てのフィールドのデータが一致してる重複データ」であり、 それをどうやればAccessの機能で出せるのか悩んでいます。 最初はクエリでグループ化して出そうと思ったのですがこのフィールド数では全て グループ化はできず、 VBAで一行ずつループで処理しようにもキー以外の全フィールド一致とする検索条件のSQLのWHERE式が複雑すぎると出て処理できませんでした フィールド数が多大なテーブルで主キー以外完全一致の重複レコードをうまく抽出するにはどうすればいいのでしょうか?