具有非美国区域设置的DoCmd.TransferText

时间:2014-06-10 12:24:50

标签: vba ms-access access-vba

我的客户端有一个Windows区域设置,其逗号为小数位分隔符,分号为列表分隔符,这是大多数欧洲国家/地区的典型格式设置。当我的代码尝试在没有导出规范的情况下运行DoCmd.TransferText时,会抛出此错误:enter image description here

所以我的解决方案是使用导出规范,如http://msdn.microsoft.com/en-us/library/office/ff835958%28v=office.15%29.aspx

所述

好吧,正如我发现的那样(例如:Docmd.TransferText question),创建用户规范的唯一方法是手动运行一些导出向导。在其中我可以设置我想使用哪个小数位分隔符和哪个列表分隔符。看起来不错,但是存在一个问题:导出规范还包含有关导出列及其格式的信息。但是我正在动态创建导出查询,每个导出运行的列都不同。我如何使用导出规范?或者我的问题还有其他解决办法吗?

注意:当然,我无法强制我的客户端更改其Windows区域设置。我不能只导出CSV文件,只是将值按值写入VBA中的原始文本文件输出,因为查询很大,这可能需要数小时才能完成。我不介意最后的CSV文件是否有逗号作为列表分隔符和点作为十进制分隔符(美国格式)或分号作为列表分隔符和逗号作为十进制分隔符(本地格式设置) - 我不在乎因为我可以调整其他步骤因此,在处理CSV时。

1 个答案:

答案 0 :(得分:0)

您有两种选择:(a)使用导出格式规范的内联文本版本,或(b)使用向导创建导出规范,然后使用常规Access数据库方法修改导出规范表中的值