パソコン情報

【Access】CSVファイルをインポートすると先頭フィールドの値が入らない

rakuten_design="slide"; rakuten_affiliateId="0f23ea38.2569a462.0f23ea39.89564f16"; rakuten_items="ctsmatch"; rakuten_genreId="0"; rakuten_size="600x200"; rakuten_target="_blank"; rakuten_theme="gray"; rakuten_border="on"; rakuten_auto_mode="on"; rakuten_genre_title="off"; rakuten_recommend="on"; rakuten_ts="1786427094851";

Accessも長年使っていますが、未だによくわからない部分があります。今回は、ローカルテーブルにCSVファイルをインポートするとい内容ですが、

ココに注意

CSVファイルの先頭フィールドだけがインポートされない

のです。

テーブル構成

インポート用CSVファイル

上記のようなCSVファイルを用意しました。

そして、Accessの空テーブルにCSVをインポートするだけなのですが、空テーブルには、

オートナンバーで連番を振るフィールドを先頭フィールドに設けています。





インポートしてみる

インポート先のローカルテーブルの先頭フィールドはオートナンバーの連番が振られるので、

ココがダメ

IDフィールドはスキップ

させました。

この段階までは、CSVファイルの先頭フィールドの「問い合せNo.」もちゃんと入っています。

先に進めていくと、

ローカルテーブルにフィールドが無いよってエラーになります。

ちなみに、インポート定義を設定して、VBAで動かすと、エラーにはならないのですが、しっかりと先頭フィールドが落ちている状態でインポートされます。

自分のインポート解釈が間違っている!?

操作をしていると、うまく行きそうな表示の仕方をしているので、勝手に行けるはずだと思い込んでいましたが、自分のインポートの理解が間違っているのかもしれません。

たぶん、スキップという意味は、

注意ポイント

インポート先テーブルのフィールドをスキップしてくれるのではなく、インポート元のCSVデータのフィールドがスキップされるのだと理解した方が正解だと思います。

最終フィールドへ設置でもダメ!?

スキップさせないで、CSVファイルをそのままインポートしたいというだけなんですが・・・

オートナンバーフィールドを先頭から、最終行に持ってきてみてインポートしましたが、全く同じエラーでインポートできません。

いったい何がダメなのでしょうか!?

冷静になってインポート定義を再設定

ちょっと、このインポート定義ってもの挙動が非常に怪しいです。

元ある定義に上書きをするとうまく行かない時があります。

なので、冷静になって、

ココがポイント

いったん削除して、再設定をした方が無難

かもしれません。

 

やっとうまくインポートすることができました。

こんな簡単な事なのですが、ちょっと時間を費やしてしまったので備忘録にしておけば間違いないですね。