• ベストアンサー

VBのわかる方教えてください!!!

VBでAccessに既存しているテーブルデータをCSV形式に変換する方法を知ってる方ぜひ教えてくださいm(_ _)m

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

  • ベストアンサー
  • CHOROLYN
  • ベストアンサー率60% (14/23)
回答No.2

テーブルをDAOを使用してレコードセットで開いてテキストファイルに書き出す方法です。 Dim strFileName As String Dim intFNo As Variant Dim fld As Field Dim rsTable As Recordset DoCmd.Hourglass True DoCmd.Echo False, "データ作成完了" '予めレコードセットを開いてrsTableにセットします。 'strFileNameは出力先のパス名となります。 intFNo = FreeFile Open strFileName For Output As #intFNo '********************************* '* 項目名の書き込み '********************************* strDat = "" For Each fld In rsTable.Fields If strDat = "" Then strDat = strDat & fld.Name Else strDat = strDat & "," & fld.Name End If Next Print #intFNo, strDat '********************************* '* データの書き込み '********************************* Do Until rsTABLE.EOF lngCNT = lngCNT + 1 DoCmd.Echo False, lngCNT & "件のデータを作成しました。" strDat = "" 'レコードセットのフィールドを列挙 For Each fld In rsTABLE.Fields If strDat = "" Then strDat = strDat & rsTable(fld.Name) Else strDat = strDat & "," & rsTable(fld.Name) End Select End If Next Print #intFNo, strDat rsTable.MoveNext Loop Close #intFNo rsTable.Close Beep MsgBox "「" & strFileName & "」に出力完了しました。", vbInformation, "確認" crtTXTFile2_Ext: DoCmd.Hourglass False DoCmd.Echo True, "データ作成完了"

hiro6295
質問者

お礼

ご回答ありがとうございました。 参考になりました。

その他の回答 (2)

  • sienna
  • ベストアンサー率35% (51/145)
回答No.3

既に解決されているかも知れませんが参考までに。

参考URL:
http://homepage2.nifty.com/inform/vbdb/dao_exportcsv.htm
hiro6295
質問者

お礼

ご回答ありがとうございました。 今回はEOFを使用しているので、参考にさせていただきます。

  • selenity
  • ベストアンサー率41% (324/772)
回答No.1

MS-Access(?)のマクロで出力って方が楽な気がします。 一旦MS-AccessでCSV出力するマクロを作成し、そのマクロを[モジュールに変換]してできたコードをVBに移植するのは如何ですか?

hiro6295
質問者

お礼

ご回答ありがとうございました。 今回のAccessはデータベースとしての機能として使ってるので。 参考になりました。

関連するQ&A

  • VBとExcelどっちが適してます?

    作る前から迷っているので、相談します。 元データ(csv)を操作して、別の変換データ(csv)に変換するソフトを作っています。 1.元データは、10フィールド×約5000行のcsv形式です。 2.元データを読み込み、11~550フィールドで1~10フィールドのデータを操作します。(中間データ) 3.1~550フィールドのデータを作業用データ(csv)として保存します。 この後も作業用データ(csv)を使って、変換データを作成したいのですが、 とりあえず、1~3の作業をするにあたって、VBもしくはExcel&VBAのどちらかで・・と思っていますが、 550フィールドとなると、Excel2000ではシートを3つは使用しなくてはいけないし、VBのほうが速いのかなと、 どっちがいいのか迷っています。 中間データの内容も確認したいので、表形式ならExcelかなあと思っていますが、 一般的にはどうなんでしょうか。 大ざっぱな説明でわかりにくいですが、皆さんの意見を参考にして考えてみたいので、お願い致します。

  • CSV変換

    現在VBからAccessにあるデータをCSVでエクセルに吐き出すという処理をおこなっているのですが、今やってる方法はAccessのテーブルにある項目を一つ一つプログラムによって出力しているのですがテーブルにある項目全てを一気にCSVに変換する方法はありますでしょうか?

  • 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テーブルに取り込む良い方法を教えてください。

  • VBでCSVデータをMDB

    VBでCSVデータをMDB ACCESSがあれば簡単ですが、その環境が無い時用に CSVデータをアクセス2000形式の.mdbに移すプログラムを作りたいと思いました。 Visual Basic 2010 Expressをダウンロードしてあります。 ネットで手法を検索してみましたが、これはというサイトを見つけられず 大きな本屋で関連書籍を探してみましたが、逆の方法は見つかるのですが CSV→MDBは見つかりませんでした。 アドバイスや参考サイトなどありましたら 是非教えて頂きたいと思い質問しました。 宜しくお願いします。

  • ACCESS2003 VBAよりVB.NETを使った方がいい?

    ACCESS2003 VBAよりVB.NETを使った方がいい? プログラマーでもないのですが、仕事でAccess2003でVBAを書いています。フォームにテーブルから引っ張てきたデータを表示させてデータを閲覧したり、データを加工してExcelにデータを吐き出したりしています。テーブルには10万件程度のデータがあります。 特に私は便利に使っているのですが、上司がVB.netとMYSQLでプログラム書いた方が楽じゃない?VB.NETよかったら買ってあげるよと言われました。買ってくれるのは嬉しいのですが、.netなんてやったこともないですし、DAOしか使ったことがなくADOなんて全くわかりません。 何かACCESS VBAよりVB.net+MYSQLのメリットって何かありますでしょうか?ちなみに業務で使うためのものなので、家からアクセスして何かするというのは考えていません。あくまで社内で使う時にメリットはあるでしょうか?

  • ACCESS VBA xlsファイルのインポート  

    accessのVBAでxls形式のファイルを既存のテーブルにインポートしたいんですが、インポートするファイルがテーブル形式になっていない状態(要望票みたいな感じなので不規則にデータが状態)なのでセルをひとつづつ指定して、テーブルに取り込んでいくことは可能なんでしょうか? どこのサイトを探してもCSV形式からのインポートの方法しか記述されておらずこちらで教えていただければ助かります。 またセルを結合しているのでその場合でもテーブルにインポートは可能なんでしょうか? よろしくお願いします。

  • VB.net

     今までACCESSでしか開発をしていなかった、一般企業のシステム部門の下っ端です。  今回、MySQLとVB.NETを利用して、商品管理システムを作成しようと考えています。  まず、ある程度MySQLの基本的な部分を勉強し、テーブルを作成して、旧システムでACCESSが持っていたデータを一旦CSVに保管して、インポート....といった具合にマスターとなるデータを作りました。  そこで、今度はそのデータをVBで操作してみようと思ったのですが、VB.NETからMySQLへ接続できません。  サーバーエクスプローラーで、どのプロバイダをつかってみても、エラーが出てしまいます。  せめて、どのプロバイダをしようしたら良いのか、分かればよいのですが。 また、VB6で行われていたのをちらっと拝見した覚えがあるのですが、プログラムで接続可能なら、そちらもご教授願えると、とても助かります。  長々とした質問で分かり難いかと思いますが、どなたか、教えていただけないでしょうか?

  • CSVデータをAccessのテーブルとして取り込み

    アクセスを勉強しはじめた初心者です。 csv形式のデータをアクセスのテーブルとして取り込みたいのですが、日付データがうまく取り込めません。 csvでは日付データが「20110101」という形式になっているためだと思うのですが、これをアクセスに日付「2011/1/1」として取り込むことはできないのでしょうか? csvをエクセルで開いて書式を修正すればできたのですが、csvファイルがたくさんあるため、アクセス側でなんとかできないかと思っています。 よろしくおねがいします。

  • CSVファイル取込時の文字化けについて

    はじめまして。 急遽VB6.0、Accessで開発を行っております。まったくの初心者です・・・。 DoCmd.TransferText でCSVファイルを一時テーブルに保存し、利用する機能を開発しているのですが、その際CSVのデータの中の電話番号(080-0000-0000というテストデータ)がyyyy/mm/dd型に変換されてしまい、困っています。 このような状況を解消するには、何か方法はありますでしょうか。 調べてみたのですが、なぜ変換されるかもいまいち分からず・・・ DoCmd.TransferTextでは無理、などお分かりでしたらご教授ください。 またCSVファイルのレコード数が多いので、一つ一つのデータを修正することは難しいかと思っております。 どうぞよろしくお願いいたします。

  • Accessのフィールドに不要なアップダウンボタンが表示されるのは?

    既存のデーターベースからCSV形式でデーターをインポートし、アクセス 2003に取り込みテーブルを作成しました。そのテーブルを基に表形式のフォームを作成したところ、ほぼすべてのフィールドに小さいアップダウンボタンが表示されます。これはなぜでしょうか?削除の方法をお教え下さい。下記のようなものです。 www.ky-housing.jp/oshiete-goo/q-1.jpg