- ベストアンサー
VBのわかる方教えてください!!!
VBでAccessに既存しているテーブルデータをCSV形式に変換する方法を知ってる方ぜひ教えてくださいm(_ _)m
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
テーブルを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, "データ作成完了"
その他の回答 (2)
- sienna
- ベストアンサー率35% (51/145)
既に解決されているかも知れませんが参考までに。
お礼
ご回答ありがとうございました。 今回はEOFを使用しているので、参考にさせていただきます。
- selenity
- ベストアンサー率41% (324/772)
MS-Access(?)のマクロで出力って方が楽な気がします。 一旦MS-AccessでCSV出力するマクロを作成し、そのマクロを[モジュールに変換]してできたコードをVBに移植するのは如何ですか?
お礼
ご回答ありがとうございました。 今回のAccessはデータベースとしての機能として使ってるので。 参考になりました。
お礼
ご回答ありがとうございました。 参考になりました。