Export to a text file with quoted fields

Export to a text file with quoted fields

As explained in another item in this Tip Bank, you can use the Recordset’s GetString method to export a Recordset to a comma-delimited or tab-delimited text file. However, if you are exporting string fields that might include commas or tabs, you should include the fields’ value within quotes. At a first glance, this seems to rule out the GetString method, but you can resort to the following trick:

Dim rs As New ADODB.Recordset, tmp As Stringrs.Open "authors", "DSN=pubs", adOpenForwardOnly, , adCmdTableOpen "c:authors.dat" For Output As #1' output the opening quotes for the first' field of the first rowPrint #1, """"' output the rest of the recordsetDo Until rs.EOF    ' blocks of 100 rows each    tmp = rs.GetString(, 100, """,""", """" & vbCrLf & """", "")    If rs.EOF Then        ' drop the double quote char printed in excess        tmp = Left$(tmp, Len(tmp) - 1)    End If    Print #1, tmp;LoopClose #1

Unfortunately, you can’t decide which fields are to be quoted, so this is an all-or-nothing decision.


Share the Post: