- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CSV入力 手動ではできるのにVBAでは?)
VBAでCSVインポートができない理由は?
このQ&Aのポイント
- VBAを使用してCSVファイルをインポートすると、手動で行う場合と同じ結果が得られないことがあります。
- 手動の場合、外部データからテキストファイルを選択し、新しいテーブルにインポートすることができます。
- しかし、VBAの場合、IDフィールドが設定されず、同じ結果が得られない場合があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> どうすれば手動でやったときと同じ結果が得られるのでしょうか? 手動のように主キーのフィールドを付加することはできません。 手動は、一度きりの処理の場合が多いですから、 アクセスが気をきかせているのですね。 VBA で繰り返し同じ処理をするなら 手動でできた ID フィールド付きのテーブルに インポートすれば良い訳で 毎回、新しいテーブルを作る必要はありませんね。 というか、 毎回、テーブルの削除、インポートを繰り返していると DB が破損する可能性が高くなります。 テーブル自体を削除せず、 削除クエリなどで、データのみを削除する方がベターです。 オートナンバーを、必ず 1からにしたいということなら それなりの手段もあります。 現在進行ですが こちらも参考になるでしょう。 http://www.moug.net/faq/viewtopic.php?t=55738
お礼
>VBA で繰り返し同じ処理をするなら >手動でできた ID フィールド付きのテーブルに >インポートすれば良い訳で なるほど。やってみました。うまくいきました。 てっきりインポート定義の中に設定されるものと思っていました。 >毎回、テーブルの削除、インポートを繰り返していると >DB が破損する可能性が高くなります。 >テーブル自体を削除せず、 >削除クエリなどで、データのみを削除する方がベターです。 >オートナンバーを、必ず 1からにしたいということなら この問題を解決すべく、いろいろ調べて見ましたが、 レコードの0件のマスタテーブルを作っておいて、 インポート時にこのテーブルをコピーして使うようにしてみました。 ナンバーも毎回1からになっています。 考え方としていかがでしょうか?ベターでしょうか?