Access - 使用 VBA 使用 headers 导出管道 delim CSV
Access - Export pipe delim CSV with headers using VBA
这是我发布的第一个问题,希望不要违反任何网站规则!我一直在寻找答案,但似乎找不到我要找的东西。
我有一段 VB 代码正在导出数据,但它不包括我需要的列 headers。
我使用的是 Access 2010,我正在将管道分隔的 CSV 文件导出到我选择的文件夹位置。我正在从使用多个查询从 parent table 创建的 table 中导出,所以它基本上只是我正在尝试的 table 结果以 CSV 格式导出。
这是我正在使用的代码,它导出为 pipe delim CSV 但不添加 headers;
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
在此先感谢您的帮助!
斯科特
您还需要将记录集字段的名称-属性写入文件。
将此插入到您的代码中以实现该目的:
[...]
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
[...]
这是我发布的第一个问题,希望不要违反任何网站规则!我一直在寻找答案,但似乎找不到我要找的东西。
我有一段 VB 代码正在导出数据,但它不包括我需要的列 headers。
我使用的是 Access 2010,我正在将管道分隔的 CSV 文件导出到我选择的文件夹位置。我正在从使用多个查询从 parent table 创建的 table 中导出,所以它基本上只是我正在尝试的 table 结果以 CSV 格式导出。
这是我正在使用的代码,它导出为 pipe delim CSV 但不添加 headers;
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
在此先感谢您的帮助!
斯科特
您还需要将记录集字段的名称-属性写入文件。
将此插入到您的代码中以实现该目的:
[...]
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
[...]