从Excel导入Access备注字段时截断的数据

从Excel导入Access备注字段时截断的数据,excel,ms-access,truncate,truncation,Excel,Ms Access,Truncate,Truncation,Access是在我附加Excel文件时截断两个备注字段中的数据。Access表中的字段已设置为备注类型。我认为问题在于,在某些备注字段的前几行中没有任何条目。Access假定数据是文本字段,即使我已经将其设置为备注类型 我已尝试将其附加为CSV。不起作用 我在第一行中放置了超过255个字符限制的伪数据,如果这样做,数据不会被截断 我不希望每次必须导入Excel文件时都要放入虚拟数据。这是一个至少每两周完成一次的过程,可能会更频繁。我想为将来使用同一数据库的员工建立一种导入数据的简单方法。有什么想

Access是在我附加Excel文件时截断两个备注字段中的数据。Access表中的字段已设置为备注类型。我认为问题在于,在某些备注字段的前几行中没有任何条目。Access假定数据是文本字段,即使我已经将其设置为备注类型

我已尝试将其附加为CSV。不起作用

我在第一行中放置了超过255个字符限制的伪数据,如果这样做,数据不会被截断

我不希望每次必须导入Excel文件时都要放入虚拟数据。这是一个至少每两周完成一次的过程,可能会更频繁。我想为将来使用同一数据库的员工建立一种导入数据的简单方法。有什么想法吗


更新:即使前几行中有虚拟数据,当我导入Excel文件时,Access也会截断10个备忘字段中3个的数据(虚拟数据的字符长度为785)。现在我真的没有主意了

已经有一段时间了,但我和你有同样的问题

经过大量挖掘,我发现:

为避免导入过程中出现错误,请确保每个源列 每行中包含相同类型的数据。Access首先扫描 八个源行,用于确定 桌子我们强烈建议您确保前八个来源 行不会在任何列中混合不同数据类型的值。 否则,Access可能无法将正确的数据类型分配给 专栏

显然,这意味着当将一个excel文件追加到一个现有表中时,即使列被格式化并保存为备注字段,如果excel文件中的前8行都少于256个字符,Access会假定您实际上打算指定文本,从而截断255个字符后的其余行。我已经执行了几个测试,将“虚拟”行放在前8行中,每个测试都触发了超过255个字符的导入

现在,如果导入到新表,向导将允许您选择所有格式选项

如果您可以覆盖表中已有的所有数据,则导入到新表非常方便。然而,如果您确实需要追加,我建议导入到一个临时表,然后从那里追加。一种简单的方法是保存导入,然后从VBA执行导入,如。然后还可以在VBA中运行追加查询。如果你把桌子摆好了,你也许能逃脱惩罚

INSERT INTO [MyTable]
SELECT [MyTable_temp].*
FROM [MyTable_temp];

已经有一段时间了,但我和你有同样的问题

经过大量挖掘,我发现:

为避免导入过程中出现错误,请确保每个源列 每行中包含相同类型的数据。Access首先扫描 八个源行,用于确定 桌子我们强烈建议您确保前八个来源 行不会在任何列中混合不同数据类型的值。 否则,Access可能无法将正确的数据类型分配给 专栏

显然,这意味着当将一个excel文件追加到一个现有表中时,即使列被格式化并保存为备注字段,如果excel文件中的前8行都少于256个字符,Access会假定您实际上打算指定文本,从而截断255个字符后的其余行。我已经执行了几个测试,将“虚拟”行放在前8行中,每个测试都触发了超过255个字符的导入

现在,如果导入到新表,向导将允许您选择所有格式选项

如果您可以覆盖表中已有的所有数据,则导入到新表非常方便。然而,如果您确实需要追加,我建议导入到一个临时表,然后从那里追加。一种简单的方法是保存导入,然后从VBA执行导入,如。然后还可以在VBA中运行追加查询。如果你把桌子摆好了,你也许能逃脱惩罚

INSERT INTO [MyTable]
SELECT [MyTable_temp].*
FROM [MyTable_temp];

值得一提的是……我在Access 2013中遇到了类似的问题——从XLS导入时,它将字段截断为255个字符,即使导入向导选择长文本作为字段,甚至当我的前几行中有大于255个字符的字段时也是如此

一位同事建议我将电子表格链接起来,而不是导入到一个新表中,问题就消失了。我还在链接表的基础上创建了一个新表,一切都很好

编辑以添加:在Access 2013中,如果您已经将XLS文件导入Access,并且无法返回该文件以尝试先链接,请尝试以下操作:


转到表格的设计视图,转到该屏幕底部的字段属性,并将长文本“文本格式”设置为“富文本”。就在今天,我发现这使我不用重新创建几个月前从excel导入的表,并且发现即使我将“Notes”列设置为长文本,它仍然会将手动输入的文本截断为255个字符。切换到富文本使此文本可见

值得一提的是……Access 2013也遇到了类似的问题——从XLS导入时,它将字段截断为255个字符,即使导入向导选择长文本作为字段,即使前几行中的字段大于255个字符

一位同事建议我将电子表格链接起来,而不是导入到一个新表中,问题就消失了。我还在链接表的基础上创建了一个新表,一切都很好

编辑以添加:在Access 2013中,如果您已经将XLS文件导入Access,并且无法返回到该文件以尝试首先链接,请在中尝试此操作