我在从csv文件导入双号时遇到一些问题。这些文件有分号分隔符,逗号为小数分隔符。
我无法设置导入规格,因为csv中字段的顺序经常会发生变化,如果数据进入错误的字段,它就会变坏。
此外,csv文件必须先写入临时表。不要因为它而讨厌我,但由于我必须处理数据并设置一些信息字段以供以后的数据处理,这是迄今为止最简单,最快速和最安全的方法。
这是问题本身:
使用TransferText
时会导入,但当然会将逗号解释为分隔符。不好......
当用逗号替换逗号和用逗号分号时,它可以正常工作。但它会忽略完全停止,因此1.2变为12,1.333变为1333.该字段将为double类型。
我测试了很多东西。除了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
或如何使用INSERT INTO
内容,我会很高兴。
非常感谢!
答案 0 :(得分:0)
好的,我想我明白了!
区域设置和我的Access使用逗号作为小数分隔符的问题。我也无法通过手动导入创建导入规范,因为它需要定义哪些字段必须导入。
我现在做的是:
通过查询打开包含导入规范的表MSysIMEXSpecs
:
从MSysIMEXSpecs中选择*
然后添加一个新行并设置SpecName
=" Whatever",DecimalPoint
=","和' FieldSeparator` =";"以及其他必须进行的设置。
由于有这种解决方法,是不是有办法更容易做到这一点?