【发布时间】:2014-09-19 08:52:08
【问题描述】:
我有一些格式如下的 .csv 文件,其中列出了示例数据:
ID,Lat,Long
1,-43.76120167,158.0299917
2,-43.76119833,158.03
3,-43.7612,158.0299983
4,-43.76120167,158.0299967
值因文件而异,但它们始终具有相同的格式和相似的数量。您在上面看到的正是它在 .csv 文件中的显示方式(当使用不在 Excel 中的 texpad/记事本打开时 - 所以我们现在可以消除任何 Excel 问题)。
但是,当我将以下 INSERT 语句作为 Access SQL 查询运行时:
INSERT INTO Table1 SELECT * FROM [Text;Database=C:\;Hdr=Yes].[ImportFile.csv];
这是我的 Access 数据库表中显示的内容:
ID,Lat,Long
1,-43,158
2,-43,158
3,-43,158
4,-43,158
现在,我知道你在想什么。我只想说,我在 Access 中的表格设计设置为 ID 是数字/长整数,并且我的 Lat 和 Long 字段都设置为具有 4 个小数位的数字/双精度。我已经仔细检查了一百万次,并且可以确认,因为并非所有输入文件都有这个问题。
这就是困扰我的问题...我的小数点后的所有数字都到哪里去了?我需要它们。
更让我困惑的是,有些文件读取得很好,小数点也很好地保留在那里……同一张表,同样的插入查询。每个文件都是从相同的来源生成的,并且根据其价值采用相同的格式。
但是,如果我启动 Access 本身并运行从文本文件导入向导,这些值最终会很好。 Access 会自动使该字段成为带有自动小数的双精度数(我也尝试在所需的表中使用自动小数,但无济于事)。
有人知道发生了什么吗?
谢谢!
【问题讨论】:
-
您使用的是哪个版本的 Access?该查询适合我。您的字段是整数还是默认数据类型?
-
嗨,Arun,Jet 引擎根据前 16 个(?)记录左右分配它自己的数据类型。对于这些有问题的随机文件,前 16 条记录是 0 而不是 0.0。不太有意义,因为它们一开始就应该为空,但我认为我的代码在某处存在不同的问题。谢谢!