2017-03-08 6 views
0

アクセスデータベースに保存されたExcelのインポートがあり、毎月「支払いデータ」が「支払い」テーブルに追加されます。Excelからのアクセス保存されたインポートで既存のレコードを再インポートするのを防ぐには?

誰かが間違ってインポートを2回実行すると、Accessは単にデータをテーブルに2回追加して重複したエントリを作成することに気付きました。

インポートが既にテーブルに存在するエントリをインポートできないようにするにはどうすればよいですか?

テーブルのフィールドが含まれます:

  • 請求書番号
  • 支払日
  • 支払額
  • カスタマーID
  • 顧客名
  • 支払タイプ

ありがとう

答えて

0

一時テーブルにデータをインポートし、メインテーブルに新しいデータのみをコピーします。 @cha answerのように、ユニークなインデックスをプラスします。しかし、単にインデックスは良い解決策ではなく、間違いやスタイルを防ぐべきで、キー違反などのエラーは発生しません。

+0

ありがとうSergey - 私はまもなくそれを試してみます – JDT

+0

一時テーブルは仕事を修正したようです。インデックスだけを使用してもメッセージは生成されているようです。両方に感謝します。 – JDT

0

これを行う最も良い方法は、テーブルに一意のインデックスを実装することです。データをユニークにするものはあなただけが知っています。時には、一意のトランザクション参照番号、または列の組み合わせです。

あなたの状況に適したユニークなインデックスの最適な候補は、[請求書番号]です。同じ請求書(分割請求書)に対して複数の支払いを許可する場合は、[Invoice Number] + [Payment Date]の2つの列を使用する必要があります。索引に2つの列を使用する場合は、それぞれが別個の索引ではなく、同じ一意の索引にあることを確認してください。

+0

ありがとうチャットしましたが、依然としてメッセージをポップする際に既存のレコードを再インポートするオプションをユーザに与えますあなたが進めたいと言っています。私はあなたがここで見ることができるこれに関する別の質問を提起しました。 http://stackoverflow.com/questions/42688999/importing-excel-data-into-access-using-index-how-to-prevent-popup-message – JDT

+0

メッセージは表示されますが、インポートした後に2番目のメッセージが表示されます主キーの違反によりレコードが挿入されていないことを通知するメッセージが表示されます – cha

+0

こんにちは。私は実際には、ユーザーがそのメッセージを完全に見るのを防ぐために、上記のリンクに関連する質問を記録しました。なぜなら、インポートされるレコードが重複しているとすれば、そういうメッセージボックスをユーザーに表示したいからですYes/Noオプションを使用してユーザーに複雑なアクセスメッセージを混同するのではなく、私はメッセージの写真を掲載しています。私は今のところ – JDT

関連する問題