【问题标题】:concern while importing/linking csv to access database导入/链接 csv 以访问数据库时的问题
【发布时间】:2021-06-02 07:30:01
【问题描述】:

我有一个分隔符为 ,(逗号)的 csv 文件,并且同一文件的数据列中很少有逗号。

因此,在链接/导入文件时,下一列中的数据会变得混乱。

我已经尝试了所有可能的方法,例如跳过列等,但没有得到任何富有成效的结果。

请告诉我这是否可以通过 ms-access 中的 VBA 函数处理。

【问题讨论】:

  • CSV 文件中是否包含文本限定符,例如 1,"Hello, world!",3.14
  • 没有文件没有文本文本限定符
  • 这能回答你的问题吗? Dealing with commas in a CSV file

标签: csv ms-access import


【解决方案1】:

如果 CSV 文件包含包含逗号且没有被文本限定符(通常为 ")包围的文本字段,则该文件格式不正确,无法以防弹的方式进行解析。也就是说,

1,Hello world!,1.414
2,"Goodbye, cruel world!",3.142

可以可靠地解析,但是

1,Hello world!,1.414
2,Goodbye, cruel world!,3.142

不能。但是,如果您有关于该文件的其他信息,例如,它应该包含三列

  1. 长整数列,
  2. 短文本列,以及
  3. 双列

然后您的 VBA 代码可以逐行读取文件并将逗号上的字符串拆分为一个数组。第一个数组元素是 Long Integer,最后一个数组元素是 Double 值,中间的剩余“列”可以连接在一起以重构字符串。

您可以想象,这种方法很容易被混淆(例如,如果有多个文本字段可能包含逗号)。因此,它并不是特别吸引人。

(另外值得注意的是,Access 中的 CSV 解析器一直无法正确处理包含换行符的文本字段,但至少我们可以将那些 CSV 文件导入 Excel,然后从 Excel 文件导入 Access。)

TL;DR - 如果 CSV 文件包含包含逗号的非限定文本,则生成它的系统已损坏,应予以修复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    • 2017-06-21
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    相关资源
    最近更新 更多