MS-Access 粘贴期间字段/记录丢失

问题描述 投票:0回答:2

好吧,这应该非常简单,但令人困惑的是事实并非如此。我正在对 Excel 中的数据进行非常基本的复制,并将附加内容粘贴到 Access 数据库中。那么为什么值甚至有时整个记录都会消失?

详细信息:我正在 Windows 7 中使用 Access 2016,将分包实验室提供的 Excel 工作簿中的数据导入到我们的数据库中。实验室并不总是使用完全相同的格式来报告结果,因此直接从 Excel 导入变得不可靠。我很想使用追加查询,但如果数据是应有位置右侧的一列,那么它们的工作效果就会很差。

相反,我有一个杂乱的小临时表,没有主键和五个字段,都是短文本和一些 VBA 来验证、整理和正确导入它。从 Excel 复制,粘贴附加到 Access 中,然后...WTF?!?字段粘贴为空值。有时记录会消失。无粘贴错误表,无错误消息。只是数据消失了!

缺失数据有一个模式。我有 5 个字段,前两个字段始终是文本,接下来的两个字段始终是数字,最后一个字段有时是数字,有时是文本。不出所料,问题出在最后一个字段中。如果第五个字段中的所有数据都是数字,那么一切正常。类似地,如果字段 5 中的所有数据都是文本。 当某些记录中混合有数字数据和其他记录中的文本时,数据就会消失并且文本会作为空值粘贴。如果第一条记录包含字段 5 中的文本,则该记录将完全丢失。

为什么?!?这应该是最简单的部分!讽刺的是,VBA 工作得很好。

我尝试过的修复:

  • 将 Excel 工作簿转换为 CSV,以避免 Excel 端出现隐藏格式或类似无用的问题。

  • 建立一个新的数据库以避免继承的小精灵。仅由五个短文本字段组成的单个表组成的数据库也会遇到同样的问题。

  • 去除潜在的麻烦字符。虽然不是特殊或保留字符,但“<2" had me concerned, but "bob" fails to import just as mysteriously.

  • 将字段更改为长文本,使其成为必填字段,或设置主键。文本值仍会作为空值粘贴,如果将其设置为“必需”,则会将整个记录分流到“粘贴错误”表中。

  • 一次导入一条记录。这实际上确实有效,因为数据可以正确粘贴,但在处理 1000 多条记录时却不太理想。它确实表明问题不是数据库的结构。

任何帮助将不胜感激。

ms-access copy-paste data-loss
2个回答
1
投票

终于找到了答案。这是 Excel、Access 或剪贴板中的一个鲜为人知的错误,似乎至少自 2007 年以来就已存在。字段中同时包含文本和数字数据的记录在粘贴附加到文本字段时将丢失文本数据。

1, 2, 3, 4
5, 6, 7, apple
8, 9, 10, 11
12, 13, 14, berry
15, 16, 17, 18

将 Excel 中的附加内容粘贴到 Access 中

1, 2, 3, 4
5, 6, 7
8, 9, 10, 11
12, 13, 14
15, 16, 17, 18

“解决方案”是在粘贴追加之前关闭 Excel。 这种黑暗的仪式将导致数据正确追加。我不知道为什么会这样,但已经用我自己的数据库确认了。


0
投票

非常感谢您的建议。就像魔术一样。我刚刚花了近半个小时试图找到解决这个问题的方法。我宁愿认为这不是一个错误,而是微软引入的烦恼之一,通过在用户应该为自己的工作做决定的地方做出决定来“帮助”我们。

© www.soinside.com 2019 - 2024. All rights reserved.