【问题标题】:ACCESS: Truncation error when appending CSV data to tables?访问:将 CSV 数据附加到表时出现截断错误?
【发布时间】:2012-04-28 18:53:04
【问题描述】:

我目前在尝试将数据附加到现有表时遇到了困难。

我有大约 100 个 CSV 文件,我想从中创建一个表;所有表都有不同的列结构,但这并不是真正的问题,因为关联的字段名称位于每个文件的第一行。

首先,我从一个文件中创建一个新表,表明我的字段名称位于第一行。我将超过 256 个字符的特定字段更改为备注字段并导入数据。

然后我将缺少的字段添加到表中。

现在,当我尝试追加更多数据时,我再次选择我的字段名称位于第一行,但现在我收到了针对备注字段的数据的截断错误。

为什么会出现这个错误?有解决办法吗?

编辑

以下是关于我尝试解决问题的更新:

  1. 导入和附加表将不起作用,除非它们具有完全相同的结构。此外,您不能创建一个包含所有字段和属性集的主表,然后将所有表附加到主表。您仍然会收到截断错误。

  2. 我接受了 CodeSlave 的建议并尝试上传表格,将我需要的字段设置为备注字段,然后附加表格。这行得通,但同样,备忘录字段在每个数据文件中的顺序不一定相同,我有 1200 个数据文件要导入到 24 个表中。对于这么多表来说,逐表导入数据并不是一个选择。

【问题讨论】:

  • 你能告诉我们更多吗,你有完整的错误代码吗?以及您使用的访问版本?

标签: ms-access csv


【解决方案1】:

我预计您遇到的情况是源文件 (CSV) 和目标表 (MS Access) 不匹配。

当您进行导入时,MS Access 会猜测 CSV 文件中的字段类型。然而,它并不完美。也许它将字符串视为备忘录或将浮动视为真实。不看数据我是不可能知道的。

我通常会做的是:

  1. 将第二个 CSV 导入它自己的(临时)表中
  2. 清理第二张桌子
  3. 然后使用 SQL 查询将这些记录从第二个表附加到第一个表。
  4. 删除第二个表

(对您正在加载的每个 CSV 文件重复此操作)。

如果我提前知道每个 CSV 文件的结构已经相同,我会倾向于将它们全部连接成一个,并且只需要进行一次导入/清理。

【讨论】:

  • 结构不相同。这就是为什么我不能使用导入步骤或为其创建导入规范的原因。我有一个包含所有可用字段名称的主表,但数据文件的排列顺序不同。唯一的优点是字段名称包含在数据文件的第一行中,并且按字母顺序排列。因此,如果我有一个包含 5 个字段的主表,则数据文件 #1 可能是“Field1”、“Field3”、“Field5”,而数据文件 #2 可能包含“Field2”、“Field4”。我已经使用了您的导入表格并清理它的方法,但这很耗时。我会更新问题。
【解决方案2】:

遇到了一个非常相似的问题 - 尝试将具有大文本字段(>255 个字符)的 CSV 文件导入现有表。将字段声明为备忘录,但仍被截断。

解决方案:开始导入以链接表,然后单击“高级”按钮。创建将相关字段定义为备注字段的链接规范,然后保存链接规范。然后取消导入。这次再次导入您想要的附加到现有表的导入。再次单击高级按钮并选择您刚刚创建的链接规范。点击完成,数据应该正确导入,没有截断。

【讨论】:

    【解决方案3】:

    我遇到了这个问题,但注意到它总是只发生在第一行。因此,通过在 csv 中插入一个空白行,它将完美导入,然后您需要删除 Access 表中的空白行。

    干杯, 格雷猎人

    注意:我使用的是 Office 2010

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-28
      • 2021-11-02
      相关资源
      最近更新 更多