You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Access查询/数据表导出至CSV文件?导出报错求助

Access导出CSV失败但Excel导出正常的问题

问题概况

将数据表导出为CSV文件时持续报错,已自行排查但未解决。导出Excel文件的代码可正常运行,但三条导出CSV的DoCmd.TransferText语句均触发相同错误。查询名称为PromoAPIQuery,错误提示如图所示。

相关VB代码

Private Sub cmdGenerateExcelFilesPM_Click()

On Error GoTo HandleError

Dim fullPath As String
fullPath = CurrentProject.path

Dim CaseNumber As String
CaseNumber = Forms("Form").Controls("txtCaseNum").Value

Dim query As String
query = "Select * from PromoAPI"

' 此代码可正常生成Excel文件
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "PromoAPI", CurrentProject.path & "\" & CaseNumber & " Promo API" & Format(Now(), " mm dd yyyy"), True

' 需要导出CSV,但以下三条语句均报错
DoCmd.TransferText acExportDelim, , "PromoAPIQuery", CurrentProject.path & "\" & CaseNumber & " Promo API" & Format(Now(), " mm dd yyyy"), True

DoCmd.TransferText acExportDelim, , "query", CurrentProject.path & "\" & CaseNumber & "Promo API" & Format(Now(), " mm dd yyyy"), True

DoCmd.TransferText acExportDelim, "", "PromoAPI", CurrentProject.path & "\" & CaseNumber & "Promo API" & Format(Now(), " mm dd yyyy"), True

HandleExit:
    Exit Sub

HandleError:
    MsgBox Err.Description
    Resume HandleExit

End Sub

排查与修复建议

  • 补全CSV文件扩展名:所有导出语句都未添加.csv后缀,Access可能无法识别目标格式,需在文件名末尾补充.csv,示例:
    CurrentProject.path & "\" & CaseNumber & "_Promo_API_" & Format(Now(), "mm_dd_yyyy") & ".csv"
    
  • 修正数据源名称:第二条语句使用变量query作为数据源,但TransferText要求第三个参数是Access中已存在的查询/表名称,这条语句本身逻辑错误,需替换为实际的对象名(如PromoAPIQuery)。
  • 规范文件名格式:文件名中的空格、带空格的日期格式可能触发兼容性问题,建议用下划线替代空格,日期格式改为mm_dd_yyyy(去掉前后空格)。
  • 检查字段类型:如果PromoAPI表包含OLE对象等特殊字段,TransferText不支持导出这类字段,而Excel导出可以,需修改查询排除此类字段后再导出CSV。
  • 添加导出规格(可选):若字段包含逗号、引号等特殊字符,建议手动导出一次CSV并保存导出规格,在TransferText的第二个参数中填入规格名称,确保导出格式正确。

内容的提问来源于stack exchange,提问作者Natalia Fontiveros

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 19:05:23