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

时间:2019-03-01 18:34:12

标签: ms-access access-vba

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

我尝试使用非ascii字符作为定界符(即ÿ),我可以添加到Import Spec,示例数据似乎定界OK,但是在尝试实际导入时出现错误(下标超出范围) 。还尝试了多字符定界符,但不行。

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

原始数据示例,其宽度被截断(6月7日,不确定是否有助于讨论)

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...

1 个答案:

答案 0 :(得分:1)

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

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

记录下来,使用示例数据和定界符ÿ(255),我得到了与您和其他人相似的结果。

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

为使导入工作起初没有错误,我将在指定整数,日期或其他非文本类型之前选择所有短文本长文本字段。如果所有文本列均可用,请尝试使用特定的字段类型。这样,您至少可以区分定界符错误和其他数据错误。


这并不是要阻止其他选项,例如固定宽度的文本,尤其是因为在这种情况下,您根本不必担心定界符。