整数访问中的 CSV 导入小数

CSV Import Decimal in Integer Access

我必须每天将 .CSV 文件导入 Access。其中一个字段引起了问题。该值存储为“5,000”。这不是'5点0',而是'5000'(五千)。

我尝试了多种小数符号和数据类型的组合,但我似乎无法将数字转换为“5000”。

CSV 格式的示例行:

*Item;Supp Part Ref;description;Source;Descr;OrderCode;*Dest;LT;UPO;OrderPlaceDate;ActionDate;ReqdQty;Open Qty;RCVG QTY;OrdLineStat;FlmtPlnr;BuyerName
1929637;1929637;Ppc screw;XFV;VOSS FLUID GMBH;G;ODC;21D;23925340001;27/06/2017;06/09/2017;5,000;5,000;0;30;DA;WILL VERMEULEN

当前导入规格:

我有什么选择,最好是不必更改数据源。

从 text/xls 导入可能有很多其他 "surprises",所以最可靠的方法是导入临时 table,其中所有字段都具有 Text 数据类型,分析数据,然后复制到工作 tables。在应对期间,您可以进行任何转换。

我猜你使用的是欧洲区域设置的机器,你的数据来自美国。

在导入向导中,某处有 "Regional options",然后是 "Configuration",您可以在那里定义数字的小数点(通常是点或逗号),您的选择应该会自动适应千位分隔符相反。

请注意,您的 CSV 区域分隔符不应为逗号。

谢尔盖的回答也是一个很好的方法。

经过一些摆弄后,我设法让它与以下解决方法一起工作。

首先,我 link CSV 文件,我在其中将所有字段的数据类型设置为文本(感谢 Sergey S.)。

接下来,我创建了一个本地 table,从格式上讲,它是 CSV 文件的副本。但是在这个 table 中,我将必填字段设置为整数、日期等

最后,我使用以下追加查询(注意 Replace 函数)来填充 table:

INSERT INTO Tbl_JDA ([*Item], [Supp Part Ref], description, Source, Descr, OrderCode, [*Dest], LT, UPO, OrderPlaceDate, ActionDate, ReqdQty, [Open Qty], [RCVG QTY], OrdLineStat, FlmtPlnr, BuyerName)
  SELECT
    [*Item],
    [Supp Part Ref],
    description,
    Source,
    Descr,
    OrderCode,
    [*Dest],
    LT,
    UPO,
    OrderPlaceDate,
    ActionDate,
    REPLACE([ReqdQty], ",", ""),
    REPLACE([Open Qty], ",", ""),
    REPLACE([RCVG QTY], ",", ""),
    OrdLineStat,
    FlmtPlnr,
    BuyerName
  FROM [JDA Orderbook];

我现在有一个格式正确的本地 table,我可以在其他查​​询中使用它。