ACCESS インポートエラーの対処方法|Excel・CSVの原因確認から再発防止まで解説

概要

この記事の結論
Accessのインポートエラーは、まずインポート後に作成されるエラーログテーブルを確認し、「エラー」「フィールド」「行」から原因箇所を特定します。代表原因はデータ型の不一致、フィールドサイズ超過、キー重複、入力規則違反、必須項目のNullなどです。元データと取込先テーブルの定義を照合して修正し、再インポート後は件数と内容を必ず確認します。

この記事でわかること

  • インポートエラーテーブル(エラーログ)の「エラー・フィールド・行」の見方
  • データ型の変換エラー、フィールドの切り捨て、キー違反など代表原因と対処
  • Excel/CSV側でインポート前に確認すべきデータ型・列名・区切り・引用符
  • 既存テーブルへ追加するときの主キー・必須・入力規則・フィールドサイズの確認方法
  • 定期インポートを安定させる「一時テーブル→検証→本テーブル追加」の考え方

この記事の主な内容

  1. Accessのインポートエラーとは?まずエラーログで原因を確認する
  2. インポートエラーテーブルの見方|「エラー・フィールド・行」で場所を特定
  3. 代表的なインポートエラー6種類と対処方法
  4. Excel・CSV側で確認するポイント|データ型・先頭行・区切り文字
  5. 既存テーブルへの追加で失敗する場合|主キー・必須・入力規則を確認
  6. インポートエラーを繰り返さない実務設計|一時テーブル・検証・再取込
  7. まとめ|エラー箇所を特定してから安全に再インポートする
  8. よくある質問(FAQ)

想定読了時間:約10分~12分


1. Accessのインポートエラーとは?まずエラーログで原因を確認する

Accessでは、ExcelブックやCSVなどのテキストファイルを新しいテーブルへ取り込んだり、既存テーブルへ追加したりできます。ただし、取り込む値がAccess側のデータ型やフィールド設定に合わない場合は、一部のレコードだけが取り込めないことがあります。

ここで大切なのは、エラーメッセージだけを見て元データを勘で修正しないことです。インポートが一部成功している場合、Accessはエラー内容を記録したテーブルを作成します。まずそのテーブルを開き、どのデータが何の理由で失敗したかを確認します。

一方、インポート操作そのものが完全に失敗した場合は、「ファイルをインポートするときにエラーが発生しました」といったメッセージが表示され、エラーログだけでは切り分けられないことがあります。その場合は、ファイル形式、シートや範囲、列構成、Access側の権限やテーブル構造から確認します。

まず確認すること
「一部失敗」なのか「完全失敗」なのかを分けて考えます。一部失敗ならエラーログテーブルを確認し、完全失敗ならファイルやインポート設定そのものを先に確認すると、原因を絞り込みやすくなります。
Accessのインポートエラー発生時に、一部失敗と完全失敗を切り分けて確認する流れ

インポートエラーとは何が「合っていない」状態か

インポートエラーは、単に「Excelのデータが壊れている」という意味ではありません。多くは、取込元の値と、Access側が期待しているデータ構造のどこかが合っていない状態です。

● 数値フィールドへ文字列を取り込もうとしている
● 短いテキストのフィールドサイズを超える文字数が入っている
● 主キーや「重複なし」インデックスへ既存値と同じ値を追加している
● 入力規則に反する値を追加している
● 必須フィールドへ空白(Null)を追加しようとしている
● CSVの区切りやテキスト修飾子が崩れ、1行を正しく解析できない

したがって、対処は「元データだけを直す」「Accessだけを直す」のどちらかに決めつけず、取込元データと取込先テーブル定義を照合して判断するのが基本です。


2. インポートエラーテーブルの見方|「エラー・フィールド・行」で場所を特定

インポートが一部成功した場合、Accessのナビゲーションウィンドウにエラーログテーブルが作成されます。環境や操作によってテーブル名は異なることがありますが、インポート完了時のメッセージにエラーログの名前が表示されます。

エラーログは「エラー」「フィールド」「行」の3項目で読むと分かりやすくなります。競合記事でも、この3つから「何のエラーが、どの列の、どの行で起きたか」を特定する流れが紹介されています。

Accessのインポートエラーテーブルで、エラー種類・フィールド・行を確認する方法
項目確認する内容読み方の例
エラーAccessが判定した失敗理由データ型の変換エラー/キー違反など
フィールド問題が起きた取込先フィールド売上金額/商品コードなど
行元ファイル側で問題になったレコード位置5行目など

元Excel・CSVと照合するときの注意点

エラーログで「5行目」と分かっても、Excelの画面上の行番号と必ず同じに見えるとは限りません。先頭行をフィールド名として扱っているか、シートの範囲を指定しているかなどで、見た目の行番号との対応が分かりにくくなることがあります。

そのため、行番号だけで決め打ちせず、「フィールド名」と実際の値もセットで確認してください。例えば売上金額フィールドのエラーなら、該当レコードの売上金額に「未定」「N/A」「-」など、数値として扱えない文字が混ざっていないかを見ます。

再インポート前の注意
一部の行が既に正常に追加されている状態で、同じ元データをそのまま再追加すると、重複データやキー違反を増やす可能性があります。既存テーブルへ追加する場合は、成功済みデータの扱いを確認し、必要ならバックアップを取得してから再実行してください。

3. 代表的なインポートエラー6種類と対処方法

Microsoftのサポート情報では、インポート時のエラーログに表示される代表的なエラーとして、フィールドの切り捨て、データ型の変換エラー、キー違反、入力規則違反、必須フィールドのNull、解析不能レコードなどが整理されています。まずエラー名ごとの意味を理解すると、修正箇所を絞り込みやすくなります。

数値フィールドへ文字列が混在してAccessでデータ型の変換エラーになる例
Accessインポート時の代表的な6種類のエラーと、それぞれの原因・対処方法
エラー意味代表原因対処の方向性
データ型の変換エラー値が取込先のデータ型に合わない数値列に文字、日付列に不正な値、Excelのエラー値元データの型をそろえる。取込先データ型も確認する
フィールドの切り捨て値がFieldSizeの範囲を超える文字数超過、数値フィールドサイズ不足文字数・数値範囲を確認し、値またはFieldSizeを見直す
キー違反主キーや一意インデックスと重複する既存IDと同じ値、元データ内の重複重複を除外するか、キー設計・追加条件を見直す
入力規則違反ValidationRuleに合わない許容範囲外、コード値不正入力規則と元データを照合して修正する
必須フィールドのNullRequired=Yesのフィールドが空必須列の空欄、Excelエラー値がNull化欠損値を補うか、必須条件が妥当か確認する
解析不能レコードテキスト1行を列へ正しく分解できない引用符の閉じ忘れ、修飾子の不整合CSVの区切り文字・引用符・改行を確認する

データ型の変換エラー|最も多いのは「列の中で型が混在」するケース

例えば、売上金額の列に「12000」「9800」といった数値が並んでいるのに、1行だけ「未定」と入力されていると、数値フィールドへのインポートで失敗します。見た目が数字でも、セルに文字列として保存されている場合や、全角数字・不要な空白が混ざる場合も確認が必要です。

また、Excel側のセルに #NUM! や #DIV/0! などのエラー値が含まれる場合、Accessでは対応する値がNullとして扱われることがあります。その結果、必須フィールドへの追加で別のエラーにつながる場合もあります。

フィールドの切り捨て|表示幅ではなくFieldSizeを見る

「フィールドの切り捨て」は、単にAccessのデータシート上で列幅が狭いという意味ではありません。取込先フィールドのFieldSizeより大きい値を保存しようとした場合に発生します。短いテキストなら文字数、数値型ならByte・Integer・Long Integerなどの範囲を確認します。

キー違反|主キーと「重複なし」インデックスの両方を確認

既存テーブルへ追加するときは、主キーだけでなく、Indexedプロパティが「はい(重複なし)」になっているフィールドも確認します。元データ内に重複がなくても、すでにAccess側へ存在する値と重複すれば追加できません。

解析不能レコード|CSVの引用符と区切り文字を疑う

CSVでは、カンマそのものを含む文字列を二重引用符で囲むなど、区切り文字とテキスト修飾子のルールがあります。値の途中に引用符があるのに正しくエスケープされていない、改行を含むデータが崩れている、といった状態では1行を正しく解析できません。


4. Excel・CSV側で確認するポイント|データ型・先頭行・区切り文字

インポートエラーを減らすには、Accessを操作する前に元ファイルを整えることが重要です。特にExcelとCSVでは、Accessがフィールドのデータ型を判断する仕組みが異なるため、同じ「列内の型混在」でも確認すべき範囲が違います。

AccessがExcelの先頭8行を基準に列のデータ型を判断し、型混在でインポートエラーが起こる仕組み
重要:Excelは先頭8行、テキスト/CSVは先頭25行
Microsoftのサポート情報では、Excelワークシートの新規インポートではAccessが先頭8行を見てデータ型を判断すると説明されています。一方、テキスト/CSVでは先頭25行をスキャンして型を判断します。先頭付近に数値と文字列が混在すると、意図しない型判定や欠損の原因になります。

Excelをインポートする前のチェック

● 同じ列には原則として同じ種類の値を入れる。商品番号など数字と文字が混在する列は「文字列」として設計する
● 先頭8行に、列の代表的な値を入れておく。数値だけの先頭行の後ろに文字コードが続く構成は注意する
● 1行目を見出しとして使うなら、列名を重複させず、既存テーブルへの追加ではフィールド名と一致させる
● 不要な空白行・空白列・結合セルを整理する
● セル内の #NUM!、#DIV/0! などのエラーを解消する
● インポート前に元Excelブックを閉じる。開いたままだとデータ変換エラーの原因になる場合がある

CSVをインポートする前のチェック

● 区切り文字がカンマ・タブ・その他のどれかを確認する
● 文字列を囲むテキスト修飾子(二重引用符など)がファイル全体で統一されているか確認する
● 値の中にカンマ、引用符、改行が含まれる場合、CSVとして正しくエスケープされているか確認する
● 先頭25行に異なるデータ型を混在させない
● 列数と列順、フィールド名を固定する。定期取込ではファイルごとに構造を変えない
● 文字コードや日付表記を取込元システムとAccess側で共通化する

CSVの区切り文字・テキスト修飾子・引用符の不整合でAccessがレコードを解析できなくなる仕組み
確認項目ExcelCSV/テキスト確認理由
データ型の統一特に先頭8行特に先頭25行Accessの型推定を安定させる
列名見出し行を統一見出し行を統一既存テーブル追加時の対応付け
空欄・エラー値#NUM!等を解消空フィールドを確認Nullや型変換の連鎖を防ぐ
結合/余分な文字結合セル・空列を整理余分なタブ・改行を整理列ずれを防ぐ
区切り・引用符通常は不要必ず確認解析不能レコードを防ぐ
ファイルを閉じる推奨推奨変換・読み取りの不整合を避ける

5. 既存テーブルへの追加で失敗する場合|主キー・必須・入力規則を確認

新しいテーブルへ取り込めるのに、既存テーブルへの追加だけ失敗する場合は、取込先テーブルの設計条件を確認します。Microsoftも、追加インポートの失敗の多くは、ソースデータが取込先テーブルの構造やフィールド設定に一致しないことが原因と説明しています。

既存AccessテーブルへExcelやCSVを追加するときに、データ型・FieldSize・主キー・必須・入力規則を確認するポイント
確認項目Access側で見る場所失敗例対処
フィールド名テーブルのデザインビュー列名が対応フィールドと違う見出し名を一致させる
データ型/FieldSizeデータ型・フィールドサイズ文字列を数値へ追加、文字数超過元データかテーブル定義を見直す
主キー鍵マークのフィールド既存IDと重複重複除外・採番方法を確認
インデックスインデックス:重複なし商品コード等が重複一意条件に合うデータだけ追加
Required必須:はい空欄を追加値を補完するか必須設計を確認
ValidationRule入力規則許可範囲外の値規則とマスタ値を照合
AutoNumberオートナンバー型Nullや任意値を直接追加しようとする通常はAccess側に採番させる

列名がある場合は、順番より「名前と型」が重要

元ファイルの1行目をフィールド名として扱う場合、列の順序がAccessテーブルと同じでなくても、対応する列名とデータ型が一致していれば追加できます。逆に、列名が異なれば、見た目の並びが同じでもインポートに失敗する可能性があります。

主キーがオートナンバーなら、元ファイルのID列を取り込むか再検討する

Access側でIDをオートナンバー採番しているテーブルへ、新しいレコードを追加するだけであれば、元ExcelやCSVのID列を無理に取り込まない方が安全な場合があります。一方、外部システムのIDを保持する必要があるなら、別フィールドとして管理するなど、用途に応じた設計が必要です。

既存テーブルを直接試行錯誤しない
本番データが入っているテーブルへ何度もインポートを繰り返すと、正常行だけ追加される、一部重複する、採番が進むなど、元に戻しにくい状態になることがあります。事前バックアップ、テスト用コピー、一時テーブルの利用を優先してください。

6. インポートエラーを繰り返さない実務設計|一時テーブル・検証・再取込

単発のインポートであれば、エラーログを見て元データを修正する方法で十分なことがあります。しかし、毎日・毎週のようにExcelやCSVを取り込む業務では、毎回人がエラーを探して直す運用は属人化しやすく、データ欠落にも気付きにくくなります。

インフォースでは、定期取込を安定させる設計として、いきなり本テーブルへ追加せず、まず一時テーブル(ステージングテーブル)に受ける考え方を推奨します。一時テーブルではできるだけ元データを保持し、検証クエリでエラー候補を可視化してから、条件を満たすレコードだけ本テーブルへ追加します。

インポート前チェックリストを固定する

AccessへExcelやCSVをインポートする前に確認するデータ型・列名・重複・空欄・CSV形式のチェックリスト
確認項目チェック内容
ファイル構造列名・列順・列数が決めた仕様どおりか
データ型数値・日付・文字列が列の用途と合っているか
空欄必須列にNull相当の値がないか
重複主キー・一意項目が元データ内/既存テーブルと重複していないか
文字数・数値範囲FieldSizeを超えていないか
CSV形式区切り文字、引用符、文字コードが所定の仕様か
バックアップ本テーブルへ追加する前に復旧手段があるか
結果確認取込件数とエラー件数を記録できるか

一時テーブル→検証→本テーブルの流れ

  1. Excel/CSVを一時テーブルへ取り込む
  2. 必須、型、重複、コード値、日付などを検証クエリでチェックする
  3. エラー行を一覧化し、元ファイルまたはマスタを修正する
  4. 正常データだけを追加クエリで本テーブルへ登録する
  5. 取込件数、エラー件数、実行日時、対象ファイル名をログへ残す
ExcelやCSVを一時テーブルへ取り込み、検証クエリを通して正常データだけ本テーブルへ追加する安定運用フロー

CSVの定期取込は「保存済みインポート定義」で仕様を固定する

CSVの列構成や区切り文字が固定されている業務では、インポートウィザードの設定を保存し、同じ定義を再利用すると設定差を減らせます。VBAで自動化する場合も、保存済みのインポート仕様を指定して一時テーブルへ取り込むと、手作業による設定ぶれを抑えやすくなります。

DoCmd.TransferText _
    TransferType:=acImportDelim, _
    SpecificationName:=”CSV_受注取込”, _
    TableName:=”T_ImportStage”, _
    FileName:=filePath, _
    HasFieldNames:=True

※コード例は考え方を示す最小例です。実際の自動取込では、ファイル存在確認、エラーハンドリング、トランザクション、取込件数ログ、重複防止などを要件に応じて追加します。

実務視点

「エラーを直す」から「エラーを見つけやすい仕組み」に変える
定期取込では、すべての入力データを完全にきれいにすることより、「どの行が、何の条件に違反したか」を自動で可視化できる設計の方が保守しやすくなります。元ファイルの列名・型・日付形式・文字コード・必須条件を仕様書として固定し、一時テーブルと検証クエリで受けると、担当者が変わってもトラブルを追いやすくなります。

インポートエラーを毎回手作業で直していませんか?

単発のデータ修正で解決しない場合は、取込元ファイルの仕様、Accessテーブル設計、主キー・入力規則、VBA/マクロ、定期取込フローまで確認する必要があります。

インフォースでは、既存Accessの原因調査から、一時テーブルを使った取込安定化、VBAによる自動取込、SQL Server/Azure SQLと組み合わせたデータ基盤への拡張まで支援しています。業務を止めにくい形で段階的に見直すことも可能です。


7. まとめ|エラー箇所を特定してから安全に再インポートする

Accessのインポートエラーでは、まずエラーログテーブルの「エラー」「フィールド」「行」を確認し、原因箇所を特定するのが基本です。データ型の変換エラーなら列内の型混在、フィールドの切り捨てならFieldSize、キー違反なら主キーや一意インデックスを確認します。

Excelでは先頭8行、CSVなどのテキストファイルでは先頭25行がデータ型判定へ影響するため、先頭付近のデータを揃えることも重要です。既存テーブルへの追加では、フィールド名、データ型、主キー、Required、ValidationRuleまでAccess側の設計を確認します。

さらに、同じエラーが何度も起きる業務では、元ファイルから本テーブルへ直接追加する運用を見直し、一時テーブル→検証→本テーブル追加の流れへ分けると、原因調査と再発防止がしやすくなります。


8. よくある質問(FAQ)

一部のデータが取り込めなかった場合は、インポート完了時に案内されるエラーログテーブルを開きます。「エラー」「フィールド」「行」から、失敗理由と対象箇所を確認できます。

取り込む値がAccessのフィールドのデータ型に合わない状態です。例えば、数値フィールドへ「未定」などの文字列を追加する場合に発生します。元データの値と取込先のデータ型を照合してください。

列の中で数値と文字列が混在している、Excelセルにエラー値がある、Accessが意図しないデータ型を推定した、といった原因が考えられます。特に新規インポートでは先頭8行の値を確認します。

取込先フィールドのFieldSizeより値が大きい場合に発生します。短いテキストなら文字数、数値ならフィールドサイズの範囲を確認し、元データまたはテーブル設計を適切な範囲で見直します。

主キーまたは「重複なし」インデックスへ、既存値と同じ値を追加しようとしていないか確認します。元データ内の重複だけでなく、Accessテーブル内の既存データとの重複も確認してください。

区切り文字、テキスト修飾子、値の中の引用符・改行、文字コード、列数などを確認します。テキスト/CSVでは先頭25行の型混在にも注意が必要です。

既存テーブルへの追加で一部行がすでに成功している場合は注意が必要です。同じファイルを再追加すると重複やキー違反が起こるため、成功済みデータを確認し、必要ならバックアップや一時テーブルを使ってから再実行します。


参考情報

● Microsoft Support|Excel ブックのデータのインポートとリンクの設定
https://support.microsoft.com/ja-JP/Access/import-or-link-to-data-in-an-excel-workbook

● Microsoft Support|テキスト ファイルのデータにインポートまたはリンクする
https://support.microsoft.com/ja-jp/access/import-or-link-to-data-in-a-text-file

● Microsoft Support|追加クエリを実行するときによくあるエラー
https://support.microsoft.com/ja-jp/access/common-errors-when-you-run-an-append-query

TOP