【Access】数値と文字列が混ざったフィールドの貼り付け時の貼り付けエラー
ExcelからAccessにデータをコピーする際に問題が発生したためメモ。
エラー内容
貼り付け時に以下のエラーメッセージが表示される
'(テーブル名)' フィールドに値を入力してください。
レコードを貼り付けることができないことを示すエラー メッセージを表示しないようにしますか?
貼り付けることができなかったレコードは、'貼り付けエラー' という名前の新しいテーブルに挿入されます。
貼り付けエラーテーブルが作成される
以下の各テーブルをデザインビューで開いた際、エラーが出たフィールドのデータ型は以下となっている。
- 貼り付け先テーブル:短いテキスト
- 貼り付けエラーテーブル:数値型
エラーが発生したフィールドの型が短いテキストから数値型に勝手に置き換わっている。
原因
数値と文字列の入り混じった列をAccessにコピーした場合、Accessが入力データの多数決を元に型推論を行うため。 「このフィールドにコピーしようとしているデータは数値型である」と型推論したフィールドに、文字列型のデータを入れようとしているためエラーとなった。
以下は入力データと型推論結果の例。
0 1 2 a b
の場合、数値型0 1 a b c
の場合、短いテキスト
対策
貼り付け元のExcelにて、対象列のデータをすべて選択し、右クリックで「セルの書式設定」→「表示形式」タブで「文字列」を選択。 これで文字列型としてAccessにコピーされる。
以下に記事を移行しました。 https://algorithm.joho.info/access/paste-error-mixed-string/