我正在使用Access应用程序,我遇到了以下问题。目前我正在通过将查询导出为CSV文件来编写输出文件,但是此文件需要由较旧的数据库系统读取,并且需要包含一些标识数据的标题行。
我可以毫不费力地在VBA中为这个标题行构造字符串,但是我不太确定如何将它插入CSV文件的第一行,而不是在最后添加它。我该怎么做/达到预期的效果?
答案 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