• ベストアンサー

Accessのデータをテキストファイルで出力する方法を教えてください。

Accessのデータをテキストファイルで出力する方法を教えてください。 クエリで抽出したデータをテキストファイルに出力したいのですが、下記のような記述では""や,で区切られてしまいます。 DoCmd.TransferText acExportDelim, "", "クエリ名", "出力ファイル.txt" フィールドごとに改行して出力する方法はないでしょうか? <クエリ結果> フィールド1  フィールド2  フィールド3 aaa      bbb      ccc <出力テキストファイル> aaa bbb ccc

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

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.2

ADO の GetString メソッドを使って直に文字列を作って出力してみてはいかがでしょうか。 (GetStringのヘルプを参照してください) 列間の区切り、および行間の区切りに vbCrLf を指定します。 出来上がった文字列の最終には vbCrLf が付いているので、それを削除した文字列を出力します。 記述例) Private Sub Sample()   Dim rs As New ADODB.Recordset   Dim vTmp As Variant   Dim ffn As Integer   Const sQueryName As String = "クエリ名"   Const sOutputFileName As String = "C:\Hoge\HogeTest.txt" '出力ファイル名   rs.Open sQueryName, CurrentProject.Connection, adOpenForwardOnly, adLockReadOnly   If (Not rs.EOF) Then     vTmp = rs.GetString(adClipString, , vbCrLf, vbCrLf)   End If   rs.Close   If (Not IsEmpty(vTmp)) Then     ffn = FreeFile     Open sOutputFileName For Output As #ffn     Print #ffn, Left(vTmp, Len(vTmp) - Len(vbCrLf))     Close #ffn   End If End Sub

その他の回答 (2)

  • BIGEGG
  • ベストアンサー率0% (0/2)
回答No.3

<クエリ結果> フィールド1  フィールド2  フィールド3 aaa      bbb      ccc aaa2      bbb2      ccc2 が aaa aaa2 bbb bbb2 ccc ccc2 でよいならEXCELも考えますが、邪道なので。 VBAで行います。 TransferText を使わなければ、いろいろできます。 出力ファイルOPEN クエリ1件目取得 レコード無くなるまで繰り返し  1項目目出力&改行  2項目目出力&改行  3項目目出力&改行  ・・・  クエリn件目取得

回答No.1

VBA上でOPENコマンドとPRINT#でできると思います OPEN "C:\TEST.TXT" FOR OUTPUT #1 PRINT #1,フィールド1 PRINT #1,フィールド2 PRINT #1,フィールド3 CLOSE #1 てな感じで、データに合わせてループを入れるといいでしょうか

関連するQ&A