Access2013のデータベースに、エクセル2013から数万件のデータを取り込みました。
主キーの重複エラーになりましたが、この修復数が結構多く、どのようにして解決しようかと考えています。数が多くて、そのデータの詳細をみて修正するのも時間がかかります。
枝番をつけることも考えていますが、基本的にこの主キーで重複しては良くないと考えています。なぜなら、全ての収益関係の金額が入っていますから。修正した場合の履歴を残すという意味では有りかと思いますが・・・
枝番をつけても、2項目で主キーにするとアクセスは速度が遅くなると思いますし、インポートする場合に、やりにくいのではないかとも思います。
良い解決策をご存知の方、アドバイスをよろしくお願いします。
No.1ベストアンサー
- 回答日時:
そもそも、その項目を主キーとする理由はあるのでしょうか?
これまで、エクセル上のこととは言え、大量に重複していたのであれば、業務上、その項目では管理されていなかったのではないでしょうか?
「なぜなら、全ての収益関係の金額が入っていますから」とありますが、これは、その主キーにしようとしている項目に、収益に関する金額が入っているということではないですよね?
まずは、そのコードをそのまま使用する必要性を確認してみてください。
もし、必要がないなら、その項目は使用せず、新たに主キーとなり得る項目を親切してみては如何でしょうか。
また、枝番を付与する方法についてですが、別項目として、枝番を付与せず、同一項目内で、枝番を付与する(桁数を増やす)方法をとれば、複合インデックスにせずに済みますね。
この項目はID NO.と名づけていますが、アクセスのデータベースの中では重複しませんが、一度エクセルファイルにそのレコードを取り込み、エクセルで精算書を作り、登録ボタンを押した時点で、別のエクセルファイルに登録しにいき、そこでは重複チェックをしてなかったと思われます。ですので、意味あいとしては重複しないキーのはずが、運用上管理が全くされていなかったということで。ずさんな
この主キーは上で説明済みのように、収益関係のデータではありません。
このレコードの別フィールドに収益関係のデータが入っています。見積金額、原価、などなど
今の状況では、時間も少なく、全てのレコードを確認する暇がありません。ですので、おゃしゃる通り、同一フィールド内で枝番をつけ、桁数を増やします。
このID NO.は、主キーではないものとして残しますが。
プログラム上で、エクセル〜アクセスに登録するときにこのID NO.で登録済みの時には、それに上書きするというやり方を組みます。
ありがとうございました。
No.2
- 回答日時:
なぜExcel上で『重複する主キー』が存在するのか
その訳は何か・挿入する場合の規則性を確認することから始まるのでは?
質問者さんの言われている「履歴」についても
新しいデータを既存のデータ下/上に追加とかいろいろ考えられそうです。
機械的に単純に・・・ならインポートの際にはExcelの主キー列/Accessの主キーフィールドを
除外してAccess上で新たにオートナンバー等々で割り振ってしまえば・・とも考えられますが
他のシステムとの整合性が取れなくなりますね。
なので、最初の二行に戻ってしまいますが
重複レコードの分析、元データ作成(入力)者へ確認・・からじゃないですかね。
以上ご参考までに。
このエクセルの1レコードは一つの工事の受注の詳細データと、複数の見積や売上金額、工事発注原価、部材注文原価などが1レコードに入っています。そして、書類を作成する人が見積書などを請求する相手によって二回作ったりする場合がありますが、その時に、登録ボタンを押して登録していると思われます。エクセル上の登録ボタンは、重複チェックなどはしておらず、履歴も見れるようにという意味で技と重複していたらしいですが、最近、それが変えられて、重複している場合には上書きするように変更になりました。
なので、重複しないようにするのが基本ですが、既に過去データは重複しまくりのようで・・・
何年も前の書類について担当者に聞いても覚えていないのではないかと・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
Access テキスト型に対する指定...
-
Oracle 2つのDate型の値の差を...
-
SELECT文でLEFT関数を使うと未...
-
必須入力項目と入力必須項目
-
APN設定について教えていただけ...
-
datファイルからaccessにインポ...
-
Accessで数値型にNULLをInsert...
-
access2000:フォームで入力し...
-
ORACLEでLONG項目からCHAR項目...
-
[英語プレゼン]小結論のいいかた
-
OCNのwebメールを開くとき、シ...
-
株に関する用語集
-
セルの右クリックで出る項目を...
-
Wikipedia えっ、こんなことも...
-
Accessのハイパーリンク...
-
SUBSTRING 関数に渡した長さの...
-
Accessレポートで特定条件で改...
-
駐車場代は何の項目
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
セルの右クリックで出る項目を...
-
Access テキスト型に対する指定...
-
Oracle 2つのDate型の値の差を...
-
SUBSTRING 関数に渡した長さの...
-
必須入力項目と入力必須項目
-
APN設定について教えていただけ...
-
エクセルグラフの凡例スペース
-
VBAで複数の数式セルを最終行ま...
-
空白をそのままインポートする...
-
BIOSでAHCIに設定したいが、項...
-
アンドロイド おサイフケータイ...
-
Accessで数値型にNULLをInsert...
-
複数のレコードを1つのレコード...
-
ORACLEでLONG項目からCHAR項目...
-
SELECT文でLEFT関数を使うと未...
-
Access又はExcelで256項目を超...
-
Accessレポートで特定条件で改...
-
2行目を表示できますか?
おすすめ情報