我创建了一个 excel 文件,并将其导出为一个 Access 表,然后我编辑了该 excel 文件,确保它只包含我想要附加到原始表的记录。现在,如果我使用 Access 并执行:外部数据、新数据源、来自文件、excel,并选择从我创建的 excel 中附加,则会收到以下警告:
它说有 10 条记录不会被附加,并且由于密钥冲突而丢失。我真正想知道的是:到底丢失了哪些记录?
这样我就能找出哪里出了问题。
如果我从提到的 excel 中创建另一个新表,并尝试将该表的内容附加到前一个表中,我会从查询执行中收到类似的警告;
所以问题是:如何在访问中找到由于密钥冲突而丢失的记录?阅读这里https://support.microsoft.com/en-us/office/import-or-link-to-data-in-an-excel-workbook-a1952878-7c58-47b1-893d-e084913cc958?ns=msaccess&version=90&syslcid=1033&uilcid=1033&appver=zac900&helpid=acmain11.chm922&ui=en-us&rs=en-us&ad=us没有帮助我找到它。目前已插入 270 条记录,但未插入 10 条记录,我需要知道这 10 条记录是什么。
答案1
我使用 Access 已经有 20 年了,因此对此持怀疑态度。
错误消息适用部分的右半部分对我来说看起来相当糟糕:
“......或者它们违反了表之间定义的关系的参照完整性规则。”
对我来说,这意味着您添加了 10 条记录,这些记录需要连接到数据库中的至少一个其他表,但它们没有合适的值。人们可能会认为,这可能只是数据类型不匹配。但这是我要调查的途径。
至于哪些记录丢失了的问题,导出记录并将它们与您原来的 Excel 导入数据或您重新加载的最终结果或这两组之间的数据进行匹配应该不难,具体取决于您仍然拥有什么以及每个建议的大小是...最智能/最简单/最小的工作。
答案2
在 Access 中将 Excel 导入到新表中。控制数据类型与要附加的表兼容。构建一个查询,显示新创建的表中的行和要附加的表中的行,这些行具有包含新创建的表的行的字段。为此,在查询编辑器中右键单击您跟踪的每个连接条件,然后选择仅显示添加的表中存在的数据。对我来说,第二个选项是:包括新表中的所有记录,以及仅包括我想要附加的表中连接字段相等的记录。这对我有用,并帮助我找到了已经存在的 10 行。