从Excel导入到访问备注字段时截断的数据

当我附加一个Excel文件时,Access将截断几个备注字段中的数据。 Access表中的字段已被设置为备注types。 我相信问题是我没有任何条目的一些备注字段的前几行。 访问假定数据是一个文本字段,即使我已经将其设置为备忘录types。

我曾尝试追加为CSV。 不工作。

我已经把第一行中的虚拟数据超过了255个字符的限制,如果我这样做,数据不会被截断。

我不想在每次导入Excel文件时都要input虚拟数据。 这是一个至less两周,也许更频繁的过程。 我想build立一个简单的方法来导入未来雇员使用同一个数据库的数据。 有任何想法吗?

更新:即使对于前几行中的虚拟数据,当导入Excel文件(虚拟数据的字符长度为785)时,Access也会截断10个“备忘录”表中的3个数据。 现在我真的在想法的损失。

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

经过多次挖掘,我发现微软的奇妙世界解释说 :

为避免导入过程中出现错误,请确保每个源列在每一行中都包含相同types的数据。 Access会扫描前八个源行,以确定表中字段的数据types。 强烈build议您确保前八个源行不混合任何列中不同数据types的值。 否则,Access可能不会将正确的数据types分配给该列。

显然,这意味着当附加一个Excel文件到现有的表,甚至当列被格式化并保存为备忘录字段时,如果Excel文件中的第一行的所有8个字符less于256个字符,Access假定您实际上是要指定文本,从而截断255个字符后的剩余行。 我已经执行了几个testing,在前8行中放置“虚拟”行,并且每个testing都触发了超过255个字符的导入。

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

如果您可以覆盖已经在表格中的所有数据,则导入到新表格很方便。 但是,如果你真的需要追加,我会build议导入到临时表,然后从那里追加。 一个简单的方法是保存一个导入,然后从VBA执行,就像Elliot_et_al想做的那样 。 您也可以在VBA中运行追加查询。 如果你正确地设置你的桌子,你可能会摆脱困境

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

为什么它是值得的….我遇到了类似的问题与Access 2013中 – 即使导入向导selectLONG TEXT作为字段,甚至当我有字段>前几行中有255个字符。

一位同事build议我将电子表格链接到一个新的表格,问题就消失了。 我也创build了一个基于链接的新表,而且都很好。

编辑添加 :在Access 2013中,如果您已经将XLS文件导入到Access中,并且无法返回到首先尝试链接的位置,请改为:

转到devise视图的表格,转到该屏幕底部的字段属性,并将长文本“文本格式”设置为“富文本”。 就在今天,我发现这使我不必重新创build一个我从excel导入excel的表格,发现即使我已经将“Notes”列设置为Long Text,但仍然会截断我手动的文本无论如何input255个字符。 切换到富文本使此文本可见。

我使用excel与外部合作伙伴沟通,并将他们的报告捕获到访问数据库中。 我发现最好的办法是在工作表中插入一个“虚拟”第一行,其中用户填充的数据可能超过255个字符的任何给定列中包含超过255个字符。

通过这种方式,当我导入数据时,它总是导入所有文本,然后我可以简单地从数据库表中删除“虚拟”行。

我经常使用从我的访问数据库链接到的“导入模板”工作簿。 在链接之前,我将模板页面设置为表格格式(以便导入包含所有数据,而不必每次都指定范围),并在其中隐藏第一个“虚拟”行。

通过这种方式,我可以简单地将数据复制并粘贴到导入模板中,然后运行数据库查询以将数据导入(并在必要时转换)到数据库中,然后使用第二个查询删除“虚拟”logging。

希望这可以帮助..?

我有同样的确切的问题与Access 2010.我find了两个不同的解决方法后find访问先查看25个logging,以确定导入时每个列上的数据types。

  1. 按列的长度按降序sorting导入logging。 这意味着某些列中大于255个字符的logging将在前25个logging中。 然后,Access能够导入这些logging而不截断。
  2. 创build链接表指定列数据types作为备忘录,然后附加到表。

在过去,我有幸用上面提供的富文本解决scheme,以及使用“虚拟行”作为第一个logging导入。 谢谢你! 但是,今天我想我已经遇到了一个更有效率/一致的import解决scheme,你会重复多次。 我在Access 2007中试过。

像导入数据到新表一样使用导入向导。 浏览所有设置您的规格的屏幕。 最重要的是,在繁琐的字段选项/数据types区域(对于我最近的文本文件,这是导入文本向导的第三个屏幕)检查或指定数据types – 确保在这里指定您的备注字段。 (别担心,你只需要做一次!)

当您到达最后的“这是向导所需的所有信息…”屏幕时,请查看左下方的“高级…”button。 这会带来一个总结你刚刚做的一切的屏幕。 在右侧寻找“另存为…”。 用一个有用的名字保存这些规格。 (您可以点击下方的“规格…”直接确认您保存了规格。)点击“确定”离开高级屏幕。

如果您实际上不需要创build新表,现在可以取消向导。 接下来 – 这是你从现在起每次都可以做的事情,以避免截断 – 转到正常的导入向导与“附加logging副本的表…”在向导中,你应该看到相同的“高级…”button。 打开它,点击“规格…”,然后双击保存的规格。 说“确定”退出“高级”,然后完成向导。 这应该告诉Access保留您的备忘录字段作为备忘录字段!

在将CSV导入到现有表格中时,我发现在进入“高级”屏幕之前,我需要经过一些常规的向导屏幕(例如指定文本限定符)。 不知道为什么这让它快乐,只是FYI。

我希望这可以帮助别人,像我这样的领域截断导入错误挣扎!

在许多情况下,你只需要将文本格式的备忘录字段从普通文本更改为RTF,现在如果打开表格数据,您可以看到所有导入的文本