我必须每天将.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
当前进口规格:
我有哪些选项,最好不必更改数据源。
答案 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];
我现在有一个具有正确格式的本地表,我可以在其他查询中使用。