使用分号分隔符从VBA / Access导出为CSV

时间:2014-12-09 13:53:18

标签: vba ms-access csv

我在受限制的公司网络上,我在编程上从查询中导出CSV文件时遇到了一些问题。以下命令:

DoCmd.TransferText acExportDelim, , "query_name", strPath

尝试使用逗号[,]作为分隔符导出CSV。这会导致错误,因为它等于我所在区域的小数点分隔符。在这种情况下,某种程度上不能正确应用Windows本地化设置。 Excel"另存为..."命令确实给出了一个适当的CSV文件[;分隔符。

this post开始,我尝试创建一个规范(SpecName)来应用分号。该对话框阻止我取消选中所有框并保存规范不是一个选项。我的猜测是,这是由于我的帐户受到限制。

因此,本地设置未正确应用,并且自定义规范是不可能的。我有什么选择?

2 个答案:

答案 0 :(得分:2)

这里有两种方法:

  1. 滚动自己的csv-Export。这不是太困难。打开Query以获取Recordset,然后使用Do While Not rs.EOF和带For Each myField In rs.Fields的Fields迭代行,并将数据连接成String。这样,如果值中包含分隔符,则可以在值周围指定自己的分隔符和引号。

  2. 创建Excel实例并使用Worksheet.QueryTables.Add()将记录集复制到工作表中。然后,您可以使用Worksheet.SaveAs sCSVName, xlCSVWindows将其写入csv文件。

答案 1 :(得分:0)

这会导致错误,因为它等于我所在区域的小数点分隔符。在这种情况下,某种程度上不能正确应用Windows本地化设置。 - 这里的错误是什么?请发布错误,以便我们进一步查看和分析。

该对话框阻止我取消选中所有框,并且无法保存规范。这看起来像什么,你能发布截图吗?请发布截图,以便我们进一步查看和分析。