カテゴリー
IT

AccessでExcelファイルのインポートエラー時の原因と対処法まとめ

この記事ではVBAによるエラーは扱っていません。ACCESS初心者の初歩的なミスにより引き起こされるエラーの際のチェックリスト的な記事になります。
割と様々なエラーメッセージも出てきて、マイナーながらも結構困ることの多いこの問題。
考えられる原因とその対処法をまとめてみましたので、該当していないかチェックしてみてください。

[ad]

1.フォルダ名やファイル名、シート名の問題

大体こんなエラーが出ます。
「オブジェクト’シート名’が見つかりません。オブジェクトが存在している事、
名前やパス名が正しいことを確認して下さい。」

シート名に「.」や「’」をつけているケースが多いですが、フォルダ名やファイル名にも特殊な文字が使われていないかチェックしてみると良いでしょう。

2.ファイル形式の問題

基本的にExcel2007で作成したけど、一部だけExcel2010でなおしているなど。バージョンの互換性の問題がある場合があります。
「このプロパティは、外部ソースまたは前のバージョンのJetデータベース
エンジンで作成されたデータベースではサポートされていません。」

のようなエラーメッセージが出たりします。
Excelで該当データをコピーして、Accessで空のテーブルにペーストすることで解消する場合もありますが、データ型の混在を引き起こす場合もあります。
その場合はCSV形式にしてインポートするのが手っ取り速い解決方法になります。
またここでは深入りしませんが、エクセルファイルがパスワード保護されている場合は一筋縄ではいかないようですので基本はパスワード保護無しにしてください。

3.先頭行の取り込みの問題

フィールド名に完全に同じになっていないと正常に取り込めません。
「インポートするときにエラーが発生しました。ファイルはインポートされませんでした。」などのエラーが出ます。
新規テーブルへのインポートは可能だが、既存テーブルだとインポート出来ない場合は、このケースが多いです。
インポートの際に[先頭行をフィールド名として使う]にチェックを入れたり、外したりしてどうなるか観察するのも良い手です。

4.データ型の不一致による問題 

通常、データ型の不一致が原因だと、「テーブル名_$インポートエラー 」 テーブルが出来ます。エラーの中身は「データ型の変換エラー」 となっています。
文字列なのに数値として扱われてしまったり、その逆のケースなどが原因としては考えられます。
MicrosoftによるとACCESSは最初の数行のレコードでデータ型をジャッジするようですので、先頭行のレコードに’をつけるなどして数値を文字列として認識させることで回避したりします。

5.主キーの問題

主キーを設定しているフィールドに空白や重複データがあるとインポートできません。
「キー違反のため、0件のレコードのデータが失われ、○○件のレコードが削除されました」
などのエラーが出ます。
主キーが重複して、同一キーのレコードが存在した場合は、エラーになります。

6.セル内のデータの問題

色々な原因が考えられますが、データの中に結合セルがあったり、Excelで行内改行(Alt+Enterキー)をしている場合など、正常にインポートできません。
改行の場合はCLEAN関数で対応できますが、個々のデータについては切り分けが難しいので、
データを半分に分けてインポートしてみて、正常にインポートできない側があった場合、それをさらに半分にわけてインポートしてみるなどして、問題のデータを特定するという方法が地味ながら有効です。

7.Microsoft参考情報

Microsoftも種々の情報を提供してくれていますので参考にどうぞ。
存在しない値または不適切な値のトラブルシューティング

  • [ACC2003] Excel ブックのデータを特定の方法でインポートするとエラーが発生する
  • [ACC2002] Excel からのインポートでエラーテーブルが 2 つ作成される
  • Microsoft Excel データのインポート時にデータ型の変換エラーが発生する
  • Access にて 複数のデータ型が混在する Excel のデータ (XLS 形式 または XLSX形式) をインポートするときに、エラー メッセージ “データ型変換エラー” が表示される場合がある
  • 以上が、割とありがちなミスのチェックリストになります。トラブルシューティングの一助にどうぞ。
    [ad]

    コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です

    CAPTCHA


    日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)