あなたの習慣について教えてください!!

Access2013のデータベースに、エクセル2013から数万件のデータを取り込みました。
主キーの重複エラーになりましたが、この修復数が結構多く、どのようにして解決しようかと考えています。数が多くて、そのデータの詳細をみて修正するのも時間がかかります。
枝番をつけることも考えていますが、基本的にこの主キーで重複しては良くないと考えています。なぜなら、全ての収益関係の金額が入っていますから。修正した場合の履歴を残すという意味では有りかと思いますが・・・

枝番をつけても、2項目で主キーにするとアクセスは速度が遅くなると思いますし、インポートする場合に、やりにくいのではないかとも思います。

良い解決策をご存知の方、アドバイスをよろしくお願いします。

A 回答 (2件)

そもそも、その項目を主キーとする理由はあるのでしょうか?


これまで、エクセル上のこととは言え、大量に重複していたのであれば、業務上、その項目では管理されていなかったのではないでしょうか?

「なぜなら、全ての収益関係の金額が入っていますから」とありますが、これは、その主キーにしようとしている項目に、収益に関する金額が入っているということではないですよね?

まずは、そのコードをそのまま使用する必要性を確認してみてください。
もし、必要がないなら、その項目は使用せず、新たに主キーとなり得る項目を親切してみては如何でしょうか。

また、枝番を付与する方法についてですが、別項目として、枝番を付与せず、同一項目内で、枝番を付与する(桁数を増やす)方法をとれば、複合インデックスにせずに済みますね。
    • good
    • 0
この回答へのお礼

この項目はID NO.と名づけていますが、アクセスのデータベースの中では重複しませんが、一度エクセルファイルにそのレコードを取り込み、エクセルで精算書を作り、登録ボタンを押した時点で、別のエクセルファイルに登録しにいき、そこでは重複チェックをしてなかったと思われます。ですので、意味あいとしては重複しないキーのはずが、運用上管理が全くされていなかったということで。ずさんな

この主キーは上で説明済みのように、収益関係のデータではありません。
このレコードの別フィールドに収益関係のデータが入っています。見積金額、原価、などなど

今の状況では、時間も少なく、全てのレコードを確認する暇がありません。ですので、おゃしゃる通り、同一フィールド内で枝番をつけ、桁数を増やします。
このID NO.は、主キーではないものとして残しますが。
プログラム上で、エクセル〜アクセスに登録するときにこのID NO.で登録済みの時には、それに上書きするというやり方を組みます。

ありがとうございました。

お礼日時:2015/06/19 22:37

なぜExcel上で『重複する主キー』が存在するのか


その訳は何か・挿入する場合の規則性を確認することから始まるのでは?
質問者さんの言われている「履歴」についても
新しいデータを既存のデータ下/上に追加とかいろいろ考えられそうです。

機械的に単純に・・・ならインポートの際にはExcelの主キー列/Accessの主キーフィールドを
除外してAccess上で新たにオートナンバー等々で割り振ってしまえば・・とも考えられますが
他のシステムとの整合性が取れなくなりますね。
なので、最初の二行に戻ってしまいますが
重複レコードの分析、元データ作成(入力)者へ確認・・からじゃないですかね。
以上ご参考までに。
    • good
    • 0
この回答へのお礼

このエクセルの1レコードは一つの工事の受注の詳細データと、複数の見積や売上金額、工事発注原価、部材注文原価などが1レコードに入っています。そして、書類を作成する人が見積書などを請求する相手によって二回作ったりする場合がありますが、その時に、登録ボタンを押して登録していると思われます。エクセル上の登録ボタンは、重複チェックなどはしておらず、履歴も見れるようにという意味で技と重複していたらしいですが、最近、それが変えられて、重複している場合には上書きするように変更になりました。
なので、重複しないようにするのが基本ですが、既に過去データは重複しまくりのようで・・・

何年も前の書類について担当者に聞いても覚えていないのではないかと・・・

お礼日時:2015/06/19 22:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す