TransferText 导出到 CSV 不工作,但 TransferSpreadsheet 到 XLSX 工作
Posted
技术标签:
【中文标题】TransferText 导出到 CSV 不工作,但 TransferSpreadsheet 到 XLSX 工作【英文标题】:TransferText export to CSV not working, but TransferSpreadsheet to XLSX working 【发布时间】:2014-11-18 09:48:58 【问题描述】:我创建了一个表单,在其中创建了一个按钮,并通过上下文菜单激活了 VBA 的代码生成器。 单击按钮后,查询将正确导出为 .xlsx:
Option Compare Database
Private Sub Befehl0_Click()
DoCmd.TransferSpreadsheet acExport, , "queryname", "C:\test\queryname.xlsx", -1
End Sub
但是,当我修改导出时(根据这个FAQ):
Option Compare Database
Private Sub Befehl0_Click()
DoCmd.TransferText acExportDelim, , "queryname", "C:\test\queryname.csv", -1
End Sub
什么都没有发生。
我也尝试过设置导出规范,但这也无济于事。
这里有什么问题?
【问题讨论】:
您是否收到任何错误消息? 检查您的查询名称,检查您是否有权保存目标文件夹,检查目标文件夹是否存在.. @krishKM 没有错误消息,您的第二条评论中的问题也不是问题,因为我可以使用所有相同的查询名称、文件夹、目的地导出 .xslx。 如果你在行上放一个断点,它会运行该行吗? @Nick.McDermaid 嗯,我不这么认为。当我将两个导出函数放在一起时(CSV 第一个 XLSX 第二个),则不会导出 excel,所以我认为程序在 CSV 行中止。在直接窗口 (Ctrl+G) 中,当我尝试运行该行时,我实际上确实收到错误“3441”“文本文件规范字段分隔符匹配小数分隔符或文本分隔符”。当我在该窗口中添加规范时,我收到错误 3625“未找到具有该名称的规范”。所以我再次用谷歌搜索,显然你必须在“高级选项”期间保存规范,而此后不要导出...... 【参考方案1】:这个问题的答案是出现错误“3441”“文本文件规范字段分隔符匹配小数分隔符或文本分隔符”,该错误仅在尝试在直接窗口 (Ctrl+G) 中运行时可见。
显然,当您使用非英语操作系统时,这是分隔符默认设置的问题。
要解决这个问题,必须提供导出规范。但是,有两种方法可以创建,其中一种是错误的。
导入也是如此,为此我找到了on the web:
“是的,我已经创建了规范,可以通过导入查看 向导,但是在 MSysIMEXSpecs 中没有它的行。” 然后它 看来您可能没有创建真正的导入规范。
在 Access 2007 及更高版本中,您还可以保存“导入步骤”。这 与导入规范中的不同。
“已保存的导入”,不会出现在 MSysIMEXSpecs 中,而是真正的 进口规范应该。
可以肯定的是,...在导入过程步骤中,如果您单击 “高级”按钮实际创建导入规范。
导入过程的最后一步是“保存导入步骤”对话框 框,...再次,这与导入规范不相同。一种 “保存的导入/导出”将在以下位置可用: 外部数据-->导出-->保存的导出...所以也检查这里
利用这些知识,它通过添加在上述过程中创建的导出规范“exportcsv”来工作。
DoCmd.TransferText acExportDelim, "exportcsv", "queryname", "C:\test\queryname.csv", -1
【讨论】:
感谢您发布如此详细的答案以上是关于TransferText 导出到 CSV 不工作,但 TransferSpreadsheet 到 XLSX 工作的主要内容,如果未能解决你的问题,请参考以下文章
如何在 transferText 命令中添加“浏览文件”对话框?
Ms-Access 尝试使用“传输文本”创建具有唯一文件名的 csv 文件
MS Access VBA DoCmd.TransferText 如何分隔列?