将数据附加到CSV文件的开头

时间:2015-12-08 10:41:07

标签: vba ms-access

我正在使用Access应用程序,我遇到了以下问题。目前我正在通过将查询导出为CSV文件来编写输出文件,但是此文件需要由较旧的数据库系统读取,并且需要包含一些标识数据的标题行。

我可以毫不费力地在VBA中为这个标题行构造字符串,但是我不太确定如何将它插入CSV文件的第一行,而不是在最后添加它。我该怎么做/达到预期的效果?

2 个答案:

答案 0 :(得分:4)

打开文件,读取文件,写入标题,写回数据:

Dim data As String
Dim hF As Integer: hF = FreeFile()

Open "c:\path\foo.csv" For Input As #hF
   data = Input$(LOF(hF), #hF)
Close #hF

Open "c:\path\foo.csv" For Output As #hF
   Print #hF, "Header data here" & vbCrLf & data
Close #hF

答案 1 :(得分:1)

考虑使用相应的标题列将查询列明确标记为别名。然后,使用VBA方法TransferText

将这些标头导出到csv

<强> SQL

SELECT Col1 As Header1,
       Col2 As Header2,
       Col3 As Header3,
       Col4 As Header4
       ...
FROM Table1 
INNER JOIN Table2
ON Table1.PKID = Table2.FKID

<强> VBA

Dim csvpath As String

csvpath = "C:\Path\To\CSVFile.csv"
DoCmd.TransferText acExportDelim, , "QueryName", csvpath, True