0

这是我发布的第一个问题,希望不要违反任何网站规则!我一直在寻找答案,但似乎找不到我正在寻找的东西。

我有一段 VB 代码正在导出数据,但它不包括我需要的列标题。

我正在使用 Access 2010,并且正在将管道分隔的 CSV 文件导出到我选择的文件夹位置。我正在从使用多个查询从父表创建的访问表中导出,所以它基本上只是我试图以 CSV 格式导出的结果表。

这是我正在使用的代码,它导出为管道分隔符 CSV,但不添加标题;

Private Sub BtnExportCSV_Click()

Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim intFile As Integer
Dim strFilePath As String
Dim intCount As Integer
Dim strHold

strFilePath = "I:\Data\test.csv"

Set db = CurrentDb

Set rst = db.OpenRecordset("T_Export_CSV", dbOpenForwardOnly)

intFile = FreeFile


Open strFilePath For Output As #intFile

Do Until rst.EOF
   For intCount = 0 To rst.Fields.Count - 1
    strHold = strHold & rst(intCount).Value & "|"
   Next
   If Right(strHold, 1) = "|" Then
      strHold = Left(strHold, Len(strHold) - 1)
   End If
   Print #intFile, strHold
   rst.MoveNext
   strHold = vbNullString
Loop

Close intFile
rst.Close
Set rst = Nothing

MsgBox ("Export Completed Successfully")

End Sub

在此先感谢您的帮助!

斯科特

4

1 回答 1

0

您还需要将记录集字段的名称属性写入文件。

将其插入您的代码以实现:

[...]
Open strFilePath For Output As #intFile

If Not rst.EOF Then
   For intCount = 0 To rst.Fields.Count - 1
      strHold = strHold & rst.Fields(intCount).Name & "|"
   Next
   If Right(strHold, 1) = "|" Then
      strHold = Left(strHold, Len(strHold) - 1)
   End If
   Print #intFile, strHold
   strHold = vbNullString
End If

Do Until rst.EOF
[...]
于 2015-04-22T11:22:22.440 回答