我必须每天多次从Access导出数据作为CSV文件。在我之前完成工作的人创建了这个VBA代码,只需点击一下按钮即可导出数据。但是,我需要修改它,以便它导出为没有BOM的UTF-8,以便国际字符显示在我导入它的软件中。
我可以手动导出为文本,然后将其保存为CSV,当我转到“高级...”设置时,我选择Code Page: Unicode (UTF-8)
,这非常有效。但正如我之前所说,我想更改VBA代码:
Private Sub Command6_Click()
Dim sExportPath As String
Dim qry As DAO.QueryDef
With Me.List0
For i = 0 To .ListCount - 1
If .Selected(i) Then
sExportPath = Application.CurrentProject.Path & "\final_" & Left(Me.List0.Column(0, i), InStr(Me.List0.Column(0, i), " ") - 1) & ".csv"
If QueryExists("Final") Then CurrentDb.QueryDefs.Delete "Final"
Set qry = CurrentDb.CreateQueryDef("Final", "Select Salutation,Email from " & Left(Me.List0.Column(0, i), InStr(Me.List0.Column(0, i), " ") - 1))
CurrentDb.QueryDefs.Refresh
DoCmd.TransferText acExportDelim, , "Final", sExportPath, True
End If
Next i
End With
End Sub
答案 0 :(得分:2)
使用值65001作为CodePage参数(TransferText方法的最后一个参数),它表示Unicode(UTF-8)。
答案 1 :(得分:1)
手动执行导出并选择"高级..."就像你之前做的那样。在您选择"代码页"和其他设置,点击"另存为..."用于保存导出规范的按钮。然后,您可以提供已保存规范的名称作为TransferText
方法的第二个参数,例如,
DoCmd.TransferText acExportDelim, "MyExportSpecification", "Final", sExportPath, True