【发布时间】:2021-07-28 03:37:21
【问题描述】:
好的,这应该很简单,所以令人困惑的是它不是。我正在从 Excel 中复制一个非常基本的数据并将其粘贴到 Access 数据库中。那么为什么价值甚至整个记录都会消失呢?
详细信息:我在 Windows 7 中使用 Access 2016,将分包实验室提供的 Excel 工作簿中的数据导入我们的数据库。实验室并不总是使用完全相同的格式来报告他们的结果,因此直接从 Excel 导入变得不可靠。我很想使用追加查询,但如果数据是它应该在的右侧的一列,它们的效果就会很差。
相反,我有一个没有主键和五个字段的凌乱的小临时表,所有短文本和一些 VBA 来验证、整理和正确导入它。从 Excel 复制,粘贴附加到 Access 和... WTF?!?使用空值粘贴的字段。有时记录会消失。没有粘贴错误表,没有错误消息。只是数据没了!
缺失数据有一定的规律。我有 5 个字段,前两个总是文本,接下来的两个总是数字,最后一个字段有时是数字,有时是文本。不出所料,问题出在最后一个字段。如果第 5 个字段中的所有数据都是数字,那么一切正常。同样,如果所有数据 n 字段 5 是文本。 当某些记录中的数字数据和其他记录中的文本混合在一起时,数据会消失,并且是作为空值粘贴的文本。如果第一条记录包含字段 5 中的文本,则它会完全丢失。
为什么?!?这应该是最容易的部分!具有讽刺意味的是,VBA 工作正常。
我尝试过的修复:
-
将 Excel 工作簿转换为 CSV 以避免隐藏格式或在 Excel 端出现类似的无用问题。
-
构建一个新的数据库以避免继承的 gremlins。仅由五个短文本字段的单个表组成的数据库会遇到相同的问题。
-
去除潜在的麻烦字符。虽然不是特殊或保留字符,但“
-
将字段更改为长文本、使其成为必填项或设置主键。文本值仍然作为空值粘贴,如果设置为“必需”,则将整个记录分流到粘贴错误表。
-
一次导入一个记录。这实际上确实有效,因为数据可以正确粘贴,但在处理 1000 多条记录时不太理想。它确实表明问题不在于数据库的结构。
任何帮助将不胜感激。
【问题讨论】:
-
我无法重现该问题。当我将第五个字段更改为文本时,数字和文本都被正确地附加为文本。在我向 Excel 文件添加标题行后,导入向导开始工作。复制 Excel 数据,然后转到 Access Ribbon Home Tab-Paste Append 也可以。
-
您能发布一个指向该数据库 Mazoula 的链接吗?我很想把它和我的比较一下。
标签: ms-access copy-paste data-loss