尝试更新通过Microsoft Access 2010链接到的SharePoint 2010列表时,我遇到了一个奇怪的错误。
错误:无法插入数据,因为没有匹配的记录。
这种情况发生在两种情况中:
第二项可能需要解释。如果我只是在Access中打开链接列表,向下滚动到我想要编辑的记录,然后编辑它就可以了。如果我首先过滤该视图(例如,仅显示选中了复选框字段的记录),我就无法编辑任何记录并收到错误。
这只发生在一个特定的环境中;其他方法都很好。我已经检查了权限(我完全控制了列表,我是网站集管理员等)。我尝试以各种方式链接到列表:从Access中,从SharePoint中的“使用Access打开”功能区按钮。我删除并重新创建了Access DB文件......没有运气。
此外,Google不知道此特定错误:搜索确切的错误文本会得到0结果。
知道要检查什么?针对此SharePoint列表运行SQL样式查询是维护它的唯一可行选项。
答案 0 :(得分:1)
我确定了问题。当我在SharePoint列表的“未过滤”视图中手动编辑更多记录时,我发现偶尔的记录仍然不会更新并抛出相同的错误。
我碰巧注意到不会更新的记录有另一个列集,这是一个查阅列(你是对,Remou)。但奇怪的是,ID值显示而不是查找值。这没有任何意义,因为MS Access也链接了所有相关列表。
我打开了相应的查找列表,但发现Access没有检索到任何值。这又是奇怪的,因为SharePoint中存在值,并且您在SharePoint中编辑相同记录时查找关系完好无损。我无法强制Access更新或修复其与列表的连接。
我最终删除了查找SharePoint列表并重新创建它。这解决了MS Access问题。
答案 1 :(得分:1)
我遇到了相同的症状 - 这意味着从MS Access 2010对特定SharePoint列表的任何更新查询都会因此错误而失败 - 但我的修复方式不同。然而,上面的解决方案确实让我朝着正确的方向前进。
就我而言,我在列表中没有用户定义的查找字段。但是,当您链接到列表时,会创建一个名为UserInfo的隐式查找表,该表也会在创建链接表时在Access中创建。当我检查这个UserInfo表时,它只包含一个记录,它应该包含几十个。
我的修复是在Access,更多选项...,重新链接列表中右键单击此表...
我进入了现有的SharePoint网站,并将其列为新网站。 UserInfo表现在包含适当数量的记录,并且Update上的错误已停止。
答案 2 :(得分:0)
我发现当我在更新查询中包含链接表(具有查找)时,更新查询开始起作用。
答案 3 :(得分:0)
我还有另一种解决办法。我的查找SharePoint列表已经链接到Access,但我刚刚输入了另一个值,我在将记录从一个列表追加到另一个列表时尝试使用,为该列插入此新值。我首先尝试了所有的重新连接等,但它没有用。我尝试链接UserInfo表,这也没有帮助。我必须从Access中打开查找列表然后才能工作。 (我也打开了UserInfo表,但我认为这不是真正有用的。)
然而,之前的答案引领我走上正确的道路,谢谢!
答案 4 :(得分:0)
我遇到了这个问题,上面的回答很有帮助,但并不是很重要。这就是导致我错误的原因:
我的问题是我将用户的广告名称包含在我要附加的字段之一中 - SharePoint列表字段是“人员或群组”列。 Sharepoint正在尝试使用Userinfo表转换我传递给用户名的UID。但我试图添加受让人未确定的记录,因此该字段将留空。我的Access例程默认为零,尝试输入,然后SharePoint的内部查找以获取用户名失败,因为AD中没有人记录#0。经过大量成功的测试后,这让我感到兴奋 - 突然之间什么都没有了。当然事后看来,这是因为我尝试添加一组不同的测试数据记录。
答案 5 :(得分:0)
我遇到了同样的问题。经过15个小时的反复试验,我修好了。
我有一个列表,其中一列是另一个“父”列表的查阅列。不知何故,该查询列中有一个值不在“父”列表中。
当访问尝试更新非查找字段时,它会运行自己的完整性检查,并意识到我的查找中的值未在父列表中找到,并且错误地显示了您的错误。
希望这有帮助
答案 6 :(得分:0)
在我的情况下,我发现重新链接或刷新我的附加列表引发此错误并没有什么不同。但是 - 当我最初附加到我的SharePoint列表时,我的数据库中会自动链接一个附加列表。通过右键单击该辅助列表>更多选项>单击“刷新列表”,我的主要附加列表中不再出现错误消息。
此错误在同一主列表上不时发生 - 但现在我知道如何绕过它。
我发现在这里阅读有关附加列表的更多信息会很有帮助:http://office.microsoft.com/en-us/access-help/import-from-or-link-to-a-sharepoint-list-HA001230313.aspx
答案 7 :(得分:0)
我认为当您要更新的列表中的任何值具有无效值时会发生这种情况。例如,如果列表项在必填字段中没有值,或者列表项在具有指定条件的字段中具有非法值,则在遇到“无效状态”中的第一个列表项时,您将收到此错误。 ;在更新期间。
答案 8 :(得分:0)
"我认为当您要更新的列表中的任何值具有无效值时会发生这种情况。例如,如果列表项在必填字段中没有值,或者列表项在具有指定条件的字段中具有非法值,则在遇到“无效状态”中的第一个列表项时,您将收到此错误。 ;在更新期间。"
我可以确认Guy所写的内容对我有用。我不得不查看我正在更新的列表中的所有字段,这些字段是查找并确保数据有效。我这样做是通过搜索空白并修复那些空白但仍然有数据的空白。
答案 9 :(得分:0)
我在另一个场景中发现了这个错误。使用SP 2013 on prem和Access 2013可以观察到这种情况。
当我使用SP UI中的列表页面中的“使用Access打开”按钮创建Access数据库,然后我将其他表(对于其他列表)链接到该数据库时,我无法对这些附加表运行更新查询。我收到OP显示的错误消息。但是,如果我从一个空白的Access数据库开始并链接我想在第一次创建数据库时使用的所有表(列表),那么更新查询将对所有这些表进行处理。
与其他海报一样,我的列表确实有查找列和人员列,在这两种情况下,Access确实会自动为这些列添加支持表。看起来当我使用“Open with Access”按钮时,只有该表“正确”链接到支持表。在方案二中,一切似乎都正确链接。在检查这两个数据库时,我无法发现有什么不同。但凭经验,情景二成功,情景一失败。
答案 10 :(得分:0)
我有一个类似的问题,链接到我刚刚从Access导出到Sharepoint的Sharepoint List(List1)。当我链接到List1时,我还发现'UserInfo'被添加为链接列表。我删除了UserInfo链接,认为这是不必要的,但后来发现我在尝试使用追加查询更新List1时生成了验证错误。恢复UserInfo的链接修复了这些错误;可能是Sharepoint添加到List1的'Created By'和'Modified By'列需要Lookup到UserInfo。上面的答案指出了我正确的方向,谢谢。