-PR-
解決
済み

csvファイルのインポート

  • すぐに回答を!
  • 質問No.95859
  • 閲覧数1974
  • ありがとう数6
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 10% (1/10)

Accessでcsvファイルをインポートさせようとしています。しかし、「F1フィールドがありません」のようなエラー表示が出て、できません。私の予想では、テーブルの型とcsvファイルの型が違うのではないかと思っています。テーブルには、数値型、テキスト型、日付/データ型があります。
保存したcsvファイルをExcelで開くと日付がApr-01や、2001/06/26となったりしていました。どこかで型変換のようなことをするのでしょうか?csvのことはよく分かりません。どうか、よろしくお願いします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル9

ベストアンサー率 55% (41/74)

回答が遅くなって申し訳ありません。
VBAで行っているという事は、使用しているメソッドは、

DoCmd.TransferText

でしょうか。その場合、CSVファイルにコンマ区切りでフィールド名を挿入したら、

DoCmd.TransferText [acImportDelim],,テーブル名,ファイル名,true…

と、ファイル名の定義の後ろにCSVファイルの一列目をフィールド名として使用するビット(True)を立ててあげる必要があります(注:[acImportDelim]は省略可能です)。
もし設定されていないようでしたら、変更してあげてみてください。
エラーは回避できると思います。
お礼コメント
yke

お礼率 10% (1/10)

できました!ありがとうございます。
ひょんなことでできるものですね・・・。
でもかなり感動です。
投稿日時 - 2001-06-27 22:04:39
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル9

ベストアンサー率 55% (41/74)

AccessでCSVファイルをインポートしようとした場合、一列目をフィールド名にしない限り便宜上「F1、F2、F3、F4…」とフィールド名が自動的に振られ、指定されたテーブルの、同名のフィールドへデータを保存していこうとします。そのため、 1.CSVファイルの一列目にテーブルのフィールド名が列記された列を挿入させる 2.テーブルのフィールド名をF1、F2…と変更する 3.フィールド名をF1、F2 ...続きを読む
AccessでCSVファイルをインポートしようとした場合、一列目をフィールド名にしない限り便宜上「F1、F2、F3、F4…」とフィールド名が自動的に振られ、指定されたテーブルの、同名のフィールドへデータを保存していこうとします。そのため、

1.CSVファイルの一列目にテーブルのフィールド名が列記された列を挿入させる
2.テーブルのフィールド名をF1、F2…と変更する
3.フィールド名をF1、F2…としたインポート用の一時収容テーブルを作成する

のいずれかの対応をしないと「F1フィールドがありません」等のエラーになります。それぞれ特に難しい事はないだろうと思いますが、テーブルをそのままユーザーに参照させるわけでなければ、「2」が最も実用的な対応方だとは思います。とりあえず環境によってどれがいちばん理想的かが変わりますので、いろいろ試してみる事をお勧めします。
補足コメント
yke

お礼率 10% (1/10)

回答ありがとうございます。
ユーザーがテーブルを参照することもあるので、テーブルをいじることはできません。
だからCSVファイルにテーブルのフィールド名を加えてみました。
しかし、それでも「F1フィールドがありません」となります。
Excelファイルのインポートはうまく動くので、それを利用して何とかできないものでしょうか?
VBAでやっています。
投稿日時 - 2001-06-26 20:57:56


  • 回答No.2
レベル8

ベストアンサー率 43% (22/51)

Accessのバージョンが不明なのと、どういう手段を使ってインポートしているのかが不明なのでどう回答していいかが難しいです。 とりあえず、、「F1フィールド...」という言葉が出ている事から、ウィザードを使ってのインポートと解釈してアドバイスします。 CSVファイルの1行目からデータのみになっているでしょうか?。 もし、1行目にフィールド名があるのなら、ウィザードのインポート設定で、「先頭行をフィー ...続きを読む
Accessのバージョンが不明なのと、どういう手段を使ってインポートしているのかが不明なのでどう回答していいかが難しいです。
とりあえず、、「F1フィールド...」という言葉が出ている事から、ウィザードを使ってのインポートと解釈してアドバイスします。
CSVファイルの1行目からデータのみになっているでしょうか?。
もし、1行目にフィールド名があるのなら、ウィザードのインポート設定で、「先頭行をフィールド名として使う」にチェックしてください。
また、ウィザードのインポート設定で、「フィールドのオプション」でデータ型が指定できますが、フィールドごとに指定してますか?。
この辺が問題なければ、CSVファイルのデータ自体にも問題があるかも知れないので、データの型を全てテキストにしてテストしてみてはどうでしょうか。
補足コメント
yke

お礼率 10% (1/10)

すみません。バージョンはAccess2000です。それと、処理はすべてVBAでやっています。
ファイル名を入力させて、ボタンをクリックすると自動的にインポートされるようにしたいです。
exsとcsvの2通りのインポート処理を作っています。
Excelファイルのインポートはうまく動くんです・・・。
投稿日時 - 2001-06-26 21:05:19
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ