【Access】数値と文字列が混ざったフィールドの貼り付け時の貼り付けエラー

数値と文字列が混ざったデータについて、ExcelからAccessにデータをコピーする際に問題が発生します。対応方法についてまとめました。

エラー内容

貼り付け時に以下のいずれかのエラーメッセージが表示されます。

'(テーブル名)' フィールドに値を入力してください。
レコードを貼り付けることができないことを示すエラー メッセージを表示しないようにしますか?
貼り付けることができなかったレコードは、'貼り付けエラー' という名前の新しいテーブルに挿入されます。

上記エラーが出現すると貼り付けエラーテーブルが自動作成されます。
以下の各テーブルをデザインビューで開いた際、エラーが出たフィールドのデータ型は以下となっていました。

  • 貼り付け先テーブル:短いテキスト
  • 貼り付けエラーテーブル:数値型

エラーが発生したフィールドの型が短いテキストから数値型に勝手に置き換わっているようです。

原因

数値と文字列の入り混じった列をAccessにコピーした場合、Accessが入力データの多数決を元に型推論を行うためでした。
「このフィールドにコピーしようとしているデータは数値型である」と型推論したフィールドに、文字列型のデータを入れようとしているためエラーとなっていました。

以下は入力データと型推論結果の例です。

  • 0 1 2 a bの場合、数値型
  • 0 1 a b cの場合、短いテキスト

対策

貼り付け元のExcelにて、対象列のデータをすべて選択し、右クリックで「セルの書式設定」→「表示形式」タブで「文字列」を選択します。
これで文字列型としてAccessにコピーされます。

コメント