• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CSV入力 手動ではできるのにVBAでは?)

VBAでCSVインポートができない理由は?

このQ&Aのポイント
  • VBAを使用してCSVファイルをインポートすると、手動で行う場合と同じ結果が得られないことがあります。
  • 手動の場合、外部データからテキストファイルを選択し、新しいテーブルにインポートすることができます。
  • しかし、VBAの場合、IDフィールドが設定されず、同じ結果が得られない場合があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • bonaron
  • ベストアンサー率64% (482/745)
回答No.1

> どうすれば手動でやったときと同じ結果が得られるのでしょうか? 手動のように主キーのフィールドを付加することはできません。 手動は、一度きりの処理の場合が多いですから、 アクセスが気をきかせているのですね。 VBA で繰り返し同じ処理をするなら 手動でできた ID フィールド付きのテーブルに インポートすれば良い訳で 毎回、新しいテーブルを作る必要はありませんね。 というか、 毎回、テーブルの削除、インポートを繰り返していると DB が破損する可能性が高くなります。 テーブル自体を削除せず、 削除クエリなどで、データのみを削除する方がベターです。 オートナンバーを、必ず 1からにしたいということなら それなりの手段もあります。 現在進行ですが こちらも参考になるでしょう。 http://www.moug.net/faq/viewtopic.php?t=55738

meron_
質問者

お礼

>VBA で繰り返し同じ処理をするなら >手動でできた ID フィールド付きのテーブルに >インポートすれば良い訳で なるほど。やってみました。うまくいきました。 てっきりインポート定義の中に設定されるものと思っていました。 >毎回、テーブルの削除、インポートを繰り返していると >DB が破損する可能性が高くなります。 >テーブル自体を削除せず、 >削除クエリなどで、データのみを削除する方がベターです。 >オートナンバーを、必ず 1からにしたいということなら この問題を解決すべく、いろいろ調べて見ましたが、 レコードの0件のマスタテーブルを作っておいて、 インポート時にこのテーブルをコピーして使うようにしてみました。 ナンバーも毎回1からになっています。 考え方としていかがでしょうか?ベターでしょうか?

関連するQ&A