MSAccess - CSV TransferText导入规范,非ascii分隔符?

问题描述 投票:1回答:1

我收到了第三方的CSV文件,我需要将其导入Access。他们声称他们无法添加任何类型的文本限定符;所有常见的分隔符选项(逗号,制表符,管道,$,〜,^等)似乎都出现在数据中,因此在导入规范中使用时不可靠。我无法编辑数据,但我们可以调整分隔符。记录计数在500K范围x 50列(250MB)。

我尝试使用非ascii char作为分隔符(即ÿ),我可以添加到Import Spec,示例数据似乎分隔OK,但在尝试实际导入时得到错误(下标超出范围)。还尝试了一个多字符分隔符,但没有去。

有什么建议允许我收到这些csv表吗?每日任务,许多低技能用户,远程位置,按钮后面的导入功能。

示例原始数据,截断宽度(June7,不确定这是否有助于讨论)

9798ÿ9798ÿ451219417ÿ9033504ÿ9033504ÿPUNCH BIOPSY 4MM UNI-PUNCH SS SEAMLS RAZOR SHARP BLADE...
9798ÿ9798ÿ451219418ÿ1673BXÿ1673BXÿCLEANER INST 1GL KLENZYME LATEXÿSTERIS PLCÿ1673BXÿ1673BX...
9798ÿ9798ÿ451219419ÿA4823PRÿA4823PRÿBAG BIOHAZ THK1.3 MIL 24X23IN RED LDPE PRINT INF WASTE...
9798ÿ9798ÿ451219420ÿCUR9225ÿCUR9225ÿGLOVE EXAM CURAD MEDIUM LATEX FREEÿMEDLINE INDUSTRIES,...
9798ÿ9798ÿ451219421ÿCUR9226ÿCUR9226ÿGLOVE EXAM CURAD LARGE LATEX FREEÿMEDLINE INDUSTRIES, ...
9798ÿ9798ÿ451219422ÿ90176101ÿ90176101ÿDRAPE CONSUMABLE PK EQUIP OEC UROVIEW 2800 STERILE L...
ms-access access-vba
1个回答
1
投票

尝试另一个扩展ASCII字符(128 - 254)。所选择的分隔符ÿ(255)显然不起作用,但它已经是一个可疑字符,因为它设置了所有位,有时因此具有特殊含义。

考虑代码页也很好。如果您使用标准英文版Windows在美国,则可能是Access使用默认的“西欧(Windows)”(Windows-1252)代码页。但是,如果您在美国境外或安装了其他语言,则可能是特定的默认代码页将以不同方式处理某些字符。作为参考,我在Windows 10上使用Access 2013.在Access文本导入向导中,单击[Advanced ...]按钮会显示更多选项,包括选择导入代码页。由于您在导入时遇到问题,因此有必要检查该设置。

为了记录,我和你和其他人使用样本数据和分隔符ÿ(255)有类似的结果。

接下来我尝试了À(192),它是各种代码页中的标准字母字符,因此即使默认值不是Windows-1252,它也应该可以工作。实际上,它在我的系统上运行并且没有错误。

为了让导入工作没有错误,我会在指定整数,日期或其他非文本类型之前选择所有短文本和长文本字段。如果所有文本列都有效,则尝试特定的字段类型。这样,您至少可以区分分隔符错误和其他数据错误。


这不是为了阻止其他选项,如固定宽度文本,特别是因为在这种情况下你根本不必担心分隔符。

© www.soinside.com 2019 - 2024. All rights reserved.