CSV在整数访问中导入十进制

时间:2017-09-05 11:09:24

标签: csv ms-access integer comma

我必须每天将.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

当前进口规格:

CSV File Import Specs

我有哪些选项,最好不必更改数据源。

3 个答案:

答案 0 :(得分:1)

从text / xls导入可能有很多其他“惊喜”,因此最可靠的方法是导入临时表,其中所有字段都具有Text数据类型,分析数据然后复制到工作表。在处理期间,您可以进行任何转换。

答案 1 :(得分:0)

我猜您使用的是具有欧洲区域设置的计算机,而您的数据来自美国。

在导入向导中,某处你有“区域选项”,然后是“配置”,你可以在那里定义数字的小数点(通常是点或逗号),你的选择应该自动调整千位分隔符到对面。

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

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

答案 2 :(得分:0)

经过一番摆弄后,我设法让它使用以下解决方法。

首先,我将我设置数据类型的CSV文件链接到所有字段的文本(信用卡转到Sergey S。)。

接下来,我创建了一个本地表,格式化的是CSV文件的副本。但在此表中,我将必填字段设置为整数,日期等。

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

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];

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