【问题标题】:Export from VBA/Access to CSV with a semicolon delimiter使用分号分隔符从 VBA/Access 导出到 CSV
【发布时间】:2014-12-09 13:53:18
【问题描述】:

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

DoCmd.TransferText acExportDelim, , "query_name", strPath

尝试将带有逗号 [ , ] 的 CSV 导出为分隔符。这会导致错误,因为它等于我所在地区的小数点分隔符。在这种情况下,不知何故,Windows 本地化设置未正确应用。 Excel“另存为...”命令确实提供了带有 [ ; 的正确 CSV 文件。 ] 分隔符。

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

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

【问题讨论】:

    标签: vba ms-access csv


    【解决方案1】:

    这里有两种可能的方法:

    1. 滚动您自己的 csv 导出。这不是太难。打开您的查询以获取记录集,然后使用Do While Not rs.EOF 遍历行并使用For Each myField In rs.Fields 遍历字段并将数据连接成一个字符串。有了这个,你可以指定你自己的分隔符和值的引号,如果你在值中有分隔符。

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

    【讨论】:

    • 虽然两者看起来都有效,但我能够通过保存自定义导出规范并将名称作为参数传递给 DoCmd.TransferText 命令来解决问题。谢谢。
    【解决方案2】:

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

    该对话框阻止我取消选中所有框,并且无法保存规范。这个是啥样的,能发个截图吗?请张贴截图,以便我们进一步查看和分析。

    【讨论】:

    • 请看我的更新。第一条错误消息的扩展是分隔符不能等于十进制符号。在对话框中,第一个复选框被选中并显示为灰色。暂时解决了。稍后会进一步更新。
    猜你喜欢
    • 2017-02-14
    • 1970-01-01
    • 2016-03-13
    • 2014-08-14
    • 1970-01-01
    • 2018-08-21
    • 2021-05-23
    • 2011-06-16
    • 1970-01-01
    相关资源
    最近更新 更多