5

在尝试更新通过 Microsoft Access 2010 链接到的 SharePoint 2010 列表时,我遇到了一个奇怪的错误。

错误:无法插入数据,因为没有匹配的记录。

Microsoft Access - 无法插入数据,因为没有匹配的记录。

这发生在两种情况下:

  1. 我尝试对 MS Access 中的列表运行任何 UPDATE 查询
  2. 如果列表视图被过滤,我会尝试更新列表中的记录

第二项可能需要解释。如果我只是在 Access 中打开链接列表,向下滚动到要编辑的记录,然后编辑它,它就可以工作。如果我先过滤该视图(例如,仅显示选中复选框字段的记录),我将无法编辑任何记录并收到错误消息。

这只发生在一种特定的环境中;其他人使用任何一种方法都可以正常工作。我已经检查了权限(我完全控制了列表,我是网站集管理员等)。我尝试以各种方式链接到列表:从 Access 中,从 SharePoint 中的“使用 Access 打开”功能区按钮。我已经删除并重新创建了 Access DB 文件……不走运。

此外,谷歌不知道这个特定的错误:搜索确切的错误文本会得到 0 个结果。

知道要检查什么吗?针对此 SharePoint 列表运行 SQL 样式查询是维护它的唯一可行选项。

4

11 回答 11

1

我确定了问题。当我在我的 SharePoint 列表的“未过滤”视图中手动编辑更多记录时,我发现偶尔的记录仍然不会更新并引发相同的错误。

我碰巧注意到不会更新的记录有另一个列集,这是一个查找列(你是对的,Remou)。但奇怪的是,显示的是 ID 值而不是查找值。这没有意义,因为 MS Access 还链接了所有相关列表。

我打开了适当的查找列表,却发现 Access 没有检索任何值。这又很奇怪,因为这些值存在于 SharePoint 中,并且如果您在 SharePoint 中编辑相同的记录,则查找关系是完整的。我无法强制 Access 更新或修复其与列表的连接。

我最终删除了查找 SharePoint 列表并重新创建它。这解决了 MS Access 问题。

于 2010-09-24T22:43:01.270 回答
1

我遇到了同样的症状——这意味着从 MS Access 2010 对特定 SharePoint 列表的任何更新查询都因此错误而失败——但我的修复方法不同。然而,上面的解决方案确实让我找到了正确的方向。

就我而言,列表中没有用户定义的查找字段。但是,当您链接到列表时,会在创建链接表时在 Access 中创建一个名为 UserInfo 的隐式查找表。当我检查这个 UserInfo 表时,它只包含一条记录,而且应该包含几十条记录。

我的解决方法是在 Access 中右键单击此表,更多选项...,重新链接列表...

我输入了现有的 SharePoint 网站和列表,就好像它们是新的一样。UserInfo 表现在包含适当数量的记录,并且更新上的错误停止了。

于 2011-10-21T22:05:46.967 回答
0

当我在更新查询中包含链接表(具有查找)时,我发现更新查询开始工作。

于 2013-01-25T11:54:25.373 回答
0

我还有另一个修复。我已经将我的查找 SharePoint 列表链接到 Access,但我刚刚输入了另一个值,我在将记录从一个列表附加到另一个列表时尝试使用该值,并为该列插入这个新值。我首先尝试了所有重新链接等,但没有成功。我尝试链接 UserInfo 表,但这也无济于事。我必须从 Access 中打开查找列表,然后它才起作用。(我还打开了 UserInfo 表,但我不认为这真的有效。)

但是,以前的答案使我走上了正确的道路,所以谢谢!

于 2013-02-22T20:01:25.010 回答
0

我遇到了这个问题,上面的回答很有帮助,但不是很准确。这就是导致我错误的原因:

我的问题是我将用户的广告名称作为我要附加的字段之一 - SharePoint 列表字段是“个人或组”列。Sharepoint 正在尝试使用 Userinfo 表将我传递的 UID 转换为用户名。但我正在尝试添加未确定受让人的记录,因此该字段将留空。我的 Access 例程默认为零,尝试输入该值,然后 SharePoint 的内部查找以获取用户名失败,因为 AD 中没有记录 #0。经过大量成功的测试后,这让我感到很痛苦 - 突然之间没有任何效果了。当然,事后看来,这是因为我尝试附加一组不同的测试数据记录。

于 2013-11-25T17:53:19.723 回答
0

我也遇到了同样的问题。经过 15 个小时的反复试验,我修复了它。

我有一个列表,其中一列是另一个“父”列表的查找列。不知何故,该查找列中有一个值不在“父”列表中。

当访问尝试更新非查找字段时,它运行了自己的完整性检查,并意识到我的查找中的值在父列表中没有找到,并且由于您的错误而出错。

希望这可以帮助

于 2013-12-05T21:27:26.643 回答
0

就我而言,我发现重新链接或刷新引发此错误的附加列表并没有什么不同。但是 - 当我最初附加到我的 SharePoint 列表时,我的数据库中自动链接了一个附加列表。通过右键单击该辅助列表 > 更多选项 > 单击“刷新列表”,我不再在我的主要附加列表中收到错误消息。

这个错误不时发生在同一个主列表上 - 但现在我知道如何解决它。

我发现在此处阅读有关附加列表的更多信息很有帮助:http: //office.microsoft.com/en-us/access-help/import-from-or-link-to-a-sharepoint-list-HA001230313.aspx

于 2014-03-05T21:04:41.593 回答
0

我认为当您正在更新的列表中的任何值具有无效值时,就会发生这种情况。例如,如果列表项在必填字段中没有值,或者列表项在具有指定条件的字段中具有非法值,则当它在更新期间遇到处于“无效状态”的第一个列表项时,您将收到此错误。

于 2014-03-12T21:31:50.110 回答
0

“我认为当您正在更新的列表中的任何值具有无效值时,就会发生这种情况。例如,如果列表项在必填字段中没有值,或者列表项在具有指定条件的字段中具有非法值,您将得到在更新期间遇到处于“无效状态”的第一个列表项时出现此错误。”

我可以确认盖伊写的内容对我有用。我必须查看我正在更新的列表中的所有字段,并确保数据有效。我通过搜索空白并修复出现空白但仍有数据的空白来做到这一点。

于 2016-10-06T19:29:28.603 回答
0

我在另一种情况下发现了这个错误。这是使用 SP 2013 on prem 和 Access 2013 观察到的。

当我使用 SP UI 中列表页面中的“使用 Access 打开”按钮创建 Access 数据库,然后将其他表(用于其他列表)链接到该数据库时,我无法对这些其他表运行更新查询。我收到 OP 显示的错误消息。但是,如果我从一个空白 Access 数据库开始,并在我第一次创建数据库时链接我想要使用的所有表(列表),那么更新查询将适用于所有这些表。

与其他海报一样,我的列表确实具有查找列和人员列,并且在这两种情况下,Access 似乎确实会自动为这些列添加支持表。似乎当我使用“使用访问权限打开”按钮时,只有该表“正确”链接到支持表。在场景二中,一切似乎都正确链接。在检查这两个数据库时,我无法发现有什么不同。但从经验上看,场景二成功了,而场景一失败了。

于 2016-11-29T20:51:39.017 回答
0

我有一个类似的问题,链接到我刚刚从 Access 导出到 Sharepoint 的 Sharepoint 列表 (List1)。当我链接到 List1 时,我还发现“UserInfo”被添加为链接列表。我删除了那个 UserInfo 链接,认为它是不必要的,但后来发现我在尝试使用附加查询更新 List1 时产生了验证错误。恢复到 UserInfo 的链接修复了这些错误;大概由 Sharepoint 添加到 List1 的“创建者”和“修改者”列需要查找 UserInfo。上面的答案为我指明了正确的方向,所以谢谢。

于 2017-03-29T01:02:04.297 回答