• 締切済み

CSVからACCESSのフールドに取り込む方法

VBを使ってCSVからACCESSのフールドにデーターを取り込む方法を全般的に教えてもらいたいのですが。 <例> CSVファイル   ⇒   Accessテーブル A,100          名前 数 ←フィールド              A  100 初心者なので簡単なソースコードで教えてもらえれば ありがたいです。

みんなの回答

  • taseki
  • ベストアンサー率66% (155/233)
回答No.5

> CSVを読み取り、値を変数に格納して > SQL文を発行する 一行ずつ読み取って各フィールドをそれぞれ変数に格納、というのを全行分ループする、ということでしょうか。 もうしそうなら、SQLを発行せずにループの中でそのまま Recordset.AddNew などする方法があります。 > NO.1の方法をもう少し調べて見ます。 > 参考サイトなどあればよろしくお願い致します。 ANo.1の方法はAccessのVBAから使う方法で、 DoCmd.TransferText acImportDelim, , "テーブル名", "ファイル名" と書くだけです。これは参考サイトというよりヘルプを見たほうが早いかと思います。

taka_1
質問者

お礼

わざわざSQL文発行しなくてRecordset.AddNew で、出来ました。 ありがとうございました。

  • taseki
  • ベストアンサー率66% (155/233)
回答No.4

もしテキストドライバが使えるなら、 SELECT INTO テーブル名 FROM Connection文字列・テキストファイル で簡単に取り込めます。 あとはテキストをパースしながらループさせるなど。 繰り返しになりますが…、ANo.2の表現は誤解を招く書き方でした、すみません。 同じようなことができる、ということを言いたかったのでした。

taka_1
質問者

お礼

いろいろとありがとうございます。 DBにはADOで接続しています。 出力されたCSVを読み取り、値を変数に格納して SQL文を発行する方法しかうまくいきません。 NO.1の方法をもう少し調べて見ます。 参考サイトなどあればよろしくお願い致します。

  • taseki
  • ベストアンサー率66% (155/233)
回答No.3

すみません、ANo.2の書き方は誤解を招きますね。 とりあえず、接続方法を教えてください。

  • taseki
  • ベストアンサー率66% (155/233)
回答No.2

TransferText はADOなどからも使えますよ。 DBへの接続は何を使っていますか?

  • taseki
  • ベストアンサー率66% (155/233)
回答No.1

DoCmd.TransferText acImportDelim, , "テーブル名", "ファイル名" とするだけです。 構文や引数の意味など詳細は、ヘルプを見たほうが早いと思います。

taka_1
質問者

お礼

ありがとうございます。 Docmd...はVBでは使えないみたいです。 VBから操作したいのですが、なにか情報があれば よろしくお願いします。

関連するQ&A

  • Accessのcsvエクスポートに関して

    Accessでのcsvエクスポートに関して、ご教授頂けましたら幸いです。 テーブルを基にした帳票形式のフォームがあります。チェックボックスにフラグが付い たデータのみcsvでエクスポートし、かつ、保存するファイル名をフィールドに値を使用 したいのですが、このような処理は可能でしょうか。 フォーム表示例: 商品コード 数量 チェックボックス A     10  チェックあり B     10  チェックなし この時、チェックありの商品コードAの情報のみをcsvでエクスポートし、かつ、ファイル名を「A.csv」としたい。あわせて、商品Bが対象となった場合は「B.csv」としたい。 お手数ですが、宜しくお願い致します。

  • ACCESSで、毎回、内容の変わるCSVの取り込み

    ACCESSで、毎回、内容の変わるCSVの取り込みを行いたいと思っています。 対象のCSVはフィールド名付きですが、順序が、  名前・年齢・職業だったり、  名前・職業だったり、  名前・年齢・趣味・職業だったりと、 エクスポートしたデータの内容によって、フィールドが変わります。 これを、必要なフィールドだけ(名前・職業だけ)をクエリで取り出したいのですが、なにか良い方法はありますでしょうか? ちなみに、テーブルのリンクで、必要なフィールドだけを取り出したりなどを試したのですが、データがずれて取り込まれたりと、うまくいきませんでした。

  • csvファイルをAccessに取り込むとデータ数が増える

    項目をカンマで区切っただけの単純なcsvファイルをAccessでインポートしてテーブルを作成したら、データ数が増えてしまいました。 (csvファイルをテキストで開いたときの行数と、Accessの行数が異なる) 5000件ぐらいなら、csvもAccessもデータ数は同じなのですが、データ数が大きくなると、csvとAccessのテーブルで6万件とかの差分が出てしまいます。 csvファイルとAccessで、データ数を同じにするにはどうしたら良いでしょうか。 参考になるURLでも良いので、教えて頂ければと思います。 よろしくお願いします!

  • Access2000でのCSV出力(エクスポート)

    お世話になります。 Access2000を利用して、あるテーブルデータをCSVファイルとしてエクスポートしようとしています。 そのときに、すべての要素を「"」(ダブルコーテーション)で囲み(「,」カンマで区切り)たいのですが、 データ型が文字型のときは設定で上手く囲めるものの、数値型では値がそのまま出力されてしまいます。 数値型のフィールドもダブルコーテーションで囲む方法はありませんでしょうか? よろしくお願いいたします。 例)"ああああ","A10000",100         ↓   "ああああ","A10000","100" ← ここ

  • VBでCSVファイルを取り込み、Accessに格納する方法

    VBから、csvファイルを取り込んで、Accessのテーブルに格納したいので すが、Input# でうまくいきません。 csvファイルは、基本的に,区切りですが 1)値の両端を"でくくる。 2)値として"がある場合は、""に変換する。 という仕様です。(ExcelでCSVファイルを作るときと同じ) 3)先頭13列が、上記のような仕様   さらに14列目から290列目までは数値データで、値を""でくくらない。 データ例として、 "aaa","""値""",""",,","""値2,,""","bbb",・・・"ccc",0,1,2,・・・,276 === ====== ==== ========== === === = = = ===  1 2 3 4 5 13 141516 290 1の値:aaa 2の値:"値"," 3の値:",, 4の値:"値2,," 5の値:bbb としてテーブルに取り込みたいです。 Access2000では、255列以上は取り込めないため、 14列目以降の値を9個ずつ別レコードに分けています。 つまり、22列のテーブルにレコード化しています。 レコード1:列1~13の値+列14~22の値 レコード2:列1~13の値+列23~31の値 ・・・ 255列の制限は仕方ないとしても、上記のようなCSVファイルを VBでAccessテーブルに取り込む良い方法を教えてください。

  • CSVファイルをAccessに取りこみたい

    以下のような2つのCSVファイルがあるとします。 【hoge1.csv】 aaa,bbb,ccc,ddd 1,2,3,4 【hoge2.csv】 aaa,bbb,ddd,eee,fff 1,2,4,5,6 Accessをあまり使用したことがないので教えていただきたいのですが、 hoge1.csv、hoge2.csvを、以下のような形で Accessの1つのテーブルにインポートする事はできるのでしょうか? ---------------------------- | aaa | bbb | ccc | ddd | eee | fff | | 1 | 2 | 3 | 4 |  |  | | 1 | 2 |  | 4 | 5 | 6 | ---------------------------- ※「aaa」「bbb」…をフィールド名としたいです vb等でプログラムを自作するしかないのでしょうか? 何か良い方法がありましたら教えてください。お願いします。

  • アクセスでcsvに出力した際、頭の0が消えてしまいます

    アクセスからテーブルをcsv形式でエクスポートしようとしています。 エクセルでは頭の0がきちんと残りますが、csvだと消えてしまいます。 (取引先コード012345が頭の0が落ちて12345になってしまう) これを最初の0もきちんとある状態でcsv形式にエクスポートするには どうすればいいのでしょうか? 尚テーブルの時点ではフィールドの型はテキスト型になっています。 どうしてもcsv形式でないとならない為、困っています。 宜しくお願いします。

  • access vbaでCSVファイルを文字列にしてエクスポートする方法

    ACCESSのVBでクエリのフィールドデータをCSV形式にして なおかつすべてのセルを文字列にしてエクスポートしたいんですが 基本的なやり方がわかりません。 データが00012の時だとCSVにすると12として表示されるのそのまま 00012で表示させたいんです。 詳しい方教えていただけないでしょうか? よろしくお願いします。 ACCESSは2003を使っています。

  • 【ACCESS】文字列を抜き出したい

    初心者ですが。分かる方お願いいたします(__)(至急ですみません) 会社の専用システムからCSVデータをダウンロードしました。 その時点で、「商品コード」のフィールドが「"=0123456"」 のようなってしまっています。(「0123456」のように数字だけになっていてほしい) CSVの段階で、文字列関数を使用して数字だけにしてしまえばいいのですが、何万件とデータが重く、ファイルも複数あることから時間がかかってしまいます。 そこで、ACCESSにデータをインポートして加工しようとしましたが、どのようにすれば数字だけ抜き取ることができるでしょうか。 Right関数、left関数も考えましたが、商品コードの文字数が一定していないためできません。 インポートした時点で商品コードのフィールドがテキスト型にされていたので、数値型にすれば数字だけになるかな?と思ってやってみましたがデータがすべて失われてしまいました・・。 良い知恵をお貸しください。 どうぞよろしくお願いいたします。 それをACCESSにインポートしてテーブルを作成致しました。

  • Access2003を使いバラバラのCSVをひとつにまとめる

    5種類位のCSVデータをひとつの統一したテーブルにまとめたいと 考えています。以下、その例です。 Aデータ:郵便番号、都道府県、市区町村、残り住所、苗字、名前、電話番号 Bデータ郵便番号、住所、氏名、電話番号市外局番、市内局番、局番 これを 統一データ:郵便番号、都道府県、市区町村、残り住所、苗字、名前、電話番号 というデータにまとめたいと思います。 AとBのデータは日々増えていくので増えた分をAccessを使って統合し 別の用途に利用するつもりです。ですので毎日作業は発生します。 このような場合のベストなテーブル構成やクエリー等をアドバイスいただけ ますでしょうか?