Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 将Access表转换为自动递增ID从相同编号开始的SharePoint列表_Ms Access_Sharepoint - Fatal编程技术网

Ms access 将Access表转换为自动递增ID从相同编号开始的SharePoint列表

Ms access 将Access表转换为自动递增ID从相同编号开始的SharePoint列表,ms-access,sharepoint,Ms Access,Sharepoint,我需要将ms access数据库中的表移动到SharePoint列表。我需要移动的表已删除ID为自动递增的旧记录。我需要SharePoint列表从表中相同的自动递增编号开始 我曾尝试使用ms access导出到SharePoint列表功能,但当我将该表作为链接表重新导入access到SharePoint列表时,ID从1开始,与我上载到SharePoint的表不同 我需要将表上载到SharePoint列表,自动递增ID从81开始,因为它最初在表中。如果所讨论的列是自动编号列,则在上载或迁移过程中,

我需要将ms access数据库中的表移动到SharePoint列表。我需要移动的表已删除ID为自动递增的旧记录。我需要SharePoint列表从表中相同的自动递增编号开始

我曾尝试使用ms access导出到SharePoint列表功能,但当我将该表作为链接表重新导入access到SharePoint列表时,ID从1开始,与我上载到SharePoint的表不同


我需要将表上载到SharePoint列表,自动递增ID从81开始,因为它最初在表中。

如果所讨论的列是自动编号列,则在上载或迁移过程中,这些自动编号可以更改。既然这些数字毫无意义,那么这就不重要了。如果有多个相关表,则必须确保在将数据移动到sharepoint之前正确设置了关系,因为SharePooint将对这些值重新编号,子表和FK键也将正确更新。但是,如果不设置关系,则会破坏相关数据,因为SharePoint确实可以并且将重新编号所使用的PK

如果希望保持相关表的完整性,则只能使用自动编号PK。您无法控制这种重新编号,但正如数据库中的第一条规则所指出的,这些数字无论如何都不重要

如果必须并且希望停止对该列重新编号,请将数据类型更改为长数字,而不是自动编号类型。当然,只需添加另一个自动编号列。因此,要停止或防止更改数字,必须将该列从“自动编号”转换为标准的长数字列。编辑:因此,您还必须确保该列未标记为PK

请记住,作为相关数据一部分的任何其他表也会看到这些标准长数字列重新编号,如果该列是某个PK定义关系的一部分,则会发生更改。因此,在升级期间访问将重新编号PK autonumber,也将自动为子表中使用的FK列重新编号。如前所述,如果您不希望发生此类重新编号,则PK和FK列不能是已定义关系的一部分


因此,删除“自动编号”列是防止此类重新编号的唯一方法。由于自动编号没有任何实际意义,因此,如果在加载过程中更改了自动编号,则这不重要

我理解阿尔伯特的逻辑,但有点不同意。我曾与一位客户合作,多年来,该客户一直在access数据库中使用原始的自动编号字段作为客户ID,因此他们的工单、发票等都有客户ID。如果使用新创建的“自动编号”字段,则所有客户id都将更改为新编号。更糟糕的是,如果按照Albert的建议使用第二个非自动编号字段,那么无论何时添加新客户,都需要使用sql语句或查询从第二个字段确定最后使用的编号,并将其递增1,使其唯一。有点痛

因此,解决方案仍然是一个难题,但是对于一个能够满足您实际要求的解决方案,您可以这样做。在SharePoint中创建具有自动编号字段的新列表。在access数据库中链接该列表。然后,查看表中包含原始数据的最高ID号,例如最高客户ID。。。因为您需要在SharePoint列表中创建这么多行。您可以创建代码来循环创建x个记录,或者如果您对此不满意,可以创建一个包含这么多行的excel工作表。然后,将该excel文件导入链接表。接下来,创建一个删除查询,删除链接表中的所有记录,这些记录在access表中没有匹配的ID,例如customer ID。这样就只剩下一个链接列表,其中只有您正在使用的ID,而且它仍然是自动编号的,因此新记录会自动分配新的编号

就像我说的,这是一个小的工作。但这实际上满足了您的要求,而不是被迫采用不同的解决方案