- ベストアンサー
Accessのデータをテキストファイルで出力する方法を教えてください。
Accessのデータをテキストファイルで出力する方法を教えてください。 クエリで抽出したデータをテキストファイルに出力したいのですが、下記のような記述では""や,で区切られてしまいます。 DoCmd.TransferText acExportDelim, "", "クエリ名", "出力ファイル.txt" フィールドごとに改行して出力する方法はないでしょうか? <クエリ結果> フィールド1 フィールド2 フィールド3 aaa bbb ccc <出力テキストファイル> aaa bbb ccc
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
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)
<クエリ結果> フィールド1 フィールド2 フィールド3 aaa bbb ccc aaa2 bbb2 ccc2 が aaa aaa2 bbb bbb2 ccc ccc2 でよいならEXCELも考えますが、邪道なので。 VBAで行います。 TransferText を使わなければ、いろいろできます。 出力ファイルOPEN クエリ1件目取得 レコード無くなるまで繰り返し 1項目目出力&改行 2項目目出力&改行 3項目目出力&改行 ・・・ クエリn件目取得
- seiryu2989
- ベストアンサー率25% (3/12)
VBA上でOPENコマンドとPRINT#でできると思います OPEN "C:\TEST.TXT" FOR OUTPUT #1 PRINT #1,フィールド1 PRINT #1,フィールド2 PRINT #1,フィールド3 CLOSE #1 てな感じで、データに合わせてループを入れるといいでしょうか