2

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

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

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

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

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

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

编辑

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

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

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

4

3 回答 3

5

我希望您遇到的是源文件 (CSV) 和目标表 (MS Access) 之间的不匹配。

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

我通常会做的是:

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

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

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

于 2012-04-30T14:10:09.903 回答
2

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

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

于 2013-04-01T20:04:15.360 回答
1

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

干杯,格雷·亨特

注意:我使用的是 Office 2010

于 2013-08-14T22:56:36.290 回答