初めて自分の家と他人の家が違う、と意識した時

お世話になります。

OS:XP Pro
Access2003

Accessのフォーム上よりExcelをインポートするように作りました。
インポートする際にローカルにある空っぽのテーブル(データ型のみ指定有り)
をコピーし、そこにExcelのデータをインポートするようにしてます。

今まで特に問題はないので、プログラム的には問題なさそうです。

で、今日Excelをインポートした際に「キー違反のため、0件のレコードが失われ、0件のレコードが削除されました」というエラーが発生しました。

フォームからではなくファイル⇒外部データの取り込み より当該Excelをインポートしても特にエラーにはならずインポートできました(A)。

エラー時に「はい」を選択すると、とりあえずインポートはされるのですが(B)、AとBを比較するとBの方が2レコード少ないことがわかりました。
その2レコードのIDを調べ、ExcelからそのID2行を削除しインポートしたところエラー発生せず。

とりあえず何かしら問題のある行は分かったのですが。。
 ・その行のID以外のセルを全てまっさらにして、インポートしてもエラー。
 ・この行の書式がおかしいと思い、別の行の書式をコピーしてはりつけ後インポートしてもエラー。
 ・この行のリスト外のセルに余計なゴミがあるかもと思い、リスト外の列を全て削除するもエラー。
 ・いったんこの2行をコピーして別シートに貼り付け。その後、リストから2行削除し、2行挿入して
  コピーしておいた2行を値で貼り付け。で、エラー。
 ・IDが重複していないことを確認。

今までエラーが出たとしても上記対処でエラーは解消されていたのですが、今回ばかりは何が原因かわかりません。
どのようなことが考えられますでしょうか。ご教授の程よろしくお願い致します。

A 回答 (1件)

ID以外に「重複不可のインデックス」を定義してあるとか。



ACCESS側の「ローカルにある空っぽのテーブル」を確認してみてください。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。

空っぽのテーブルをデザインを確認したところ、「重複不可のインデックス」はなかったのですが、「数量」フィールドの値要求の箇所が「はい」となっておりました。

Excelの問題のあった行の「数量」が空白となっており、数値を入れてインポートしたところうまくいきました。

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

お礼日時:2013/07/04 10:10

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A