访问VBA,通过TransferText导入csv文件,逗号作为小数分隔符,分号作为分隔符

访问VBA,通过TransferText导入csv文件,逗号作为小数分隔符,分号作为分隔符,vba,csv,import,Vba,Csv,Import,我在从csv文件导入双倍数字时遇到一些问题。这些文件具有分号分隔符和逗号作为十进制分隔符 我无法设置导入规范,因为csv中字段的顺序经常发生变化,如果数据进入错误的字段,这将是一个desaster 此外,必须先将csv文件写入临时表。不要因此讨厌我,但因为我必须处理数据并为以后的数据处理设置一些信息字段,这是迄今为止最简单、最快和最安全的实现方法 问题就在这里: 使用TransferText时,它将导入,但当然会将逗号解释为分隔符。不好 当用句号替换逗号,用逗号替换分号时,它会起作用。但它将忽略

我在从csv文件导入双倍数字时遇到一些问题。这些文件具有分号分隔符和逗号作为十进制分隔符

我无法设置导入规范,因为csv中字段的顺序经常发生变化,如果数据进入错误的字段,这将是一个desaster

此外,必须先将csv文件写入临时表。不要因此讨厌我,但因为我必须处理数据并为以后的数据处理设置一些信息字段,这是迄今为止最简单、最快和最安全的实现方法

问题就在这里:

使用TransferText时,它将导入,但当然会将逗号解释为分隔符。不好

当用句号替换逗号,用逗号替换分号时,它会起作用。但它将忽略句号,因此1.2变为12,1.333变为1333。该字段将为双精度类型

我做过很多测试。除了TransferText,我还尝试过:

DoCmd.RunSQL ("INSERT INTO Tabelle1 SELECT cdbl(a1) as aa FROM[TEXT;FMT=Delimited;HDR=YES;CharacterSet=437;DATABASE=C:\SPOT].[test.csv]")
但似乎什么都不起作用,即使我在使用TransferText之前创建了一个字段类型为DOUBLE的新表。。。小数仍然被忽略

因此,如果您能告诉我如何在第一步中使用TransferText并替换或不替换分号和逗号,或者如何在stuff中使用INSERT,我将非常高兴

多谢各位

好的,我想我明白了

区域设置和my Access使用逗号作为小数分隔符的问题。我也无法通过手动导入创建导入规范,因为它需要定义哪些字段必须导入

我现在做的是:

通过查询打开包含导入规范的表msysimexspecs: 从msysimexpecs中选择*

然后添加一个新行并设置SpecName=Whatever、DecimalPoint=、和'FieldSeparator`=;以及任何其他必须进行的设置

既然有这样的解决办法,难道没有一种方法可以更容易地做到这一点吗