行继续显示#DELETED

时间:2019-01-16 23:21:26

标签: ms-access

每次我将数据输入到一个SQL链接表中时,无论我做什么,某些行都会说#deleted。数据在实际的SQL Server中很好,但在Access中却没有。我以前从未使用过Access,所以我不知道自己在做什么。请使用最非技术性的对话对话框...这对我来说太新了,我对技术一点都不满意。

我尝试通过转到“链接的表管理器”来刷新表,但这没有帮助。我尝试从Access和SQL Server中完全删除数据,将其重新输入到SQL Server中,并在Access中创建一个新的链接表。我尝试将数据从服务器导出到Excel并将其导入Access。没有一个起作用。不过,这只是数据的前10行...表的其余部分完全正常,并且所有数据都具有相似的结构,所以我不知道为什么仅影响前10行。

1 个答案:

答案 0 :(得分:1)

好的,通常是由3种原因引起的。

1-确保sql表具有PK列。通常(通常)是一个自动编号(递增1个整数列)。因此,当您在sql server中创建该列时,请将其设置为主键(可以使用sql管理器点击菜单中的一个按钮来设置PK)。然后在属性表中更改该列以标识“是”,它将为您设置起始编号(1)和增量(1)。现在添加其他列。

因此Access需要一个PK列。

如果上述不是您的问题,那么接下来的常见问题是sql eerver中是否有“ bit”列。这些值不能为null,否则访问会变得疯狂。因此,如果您有位列,那么请确保将sql表设计器中的默认值设置为(0)。

如果上述方法不能解决您的问题?然后,列表上的第3个数字就是将所谓的行版本列添加到sql表中。只需添加一个时间戳列(这不是日期列,而是一个时间戳行)。

在上述所有情况下,对sql服务器表进行更改后,都必须重新链接访问表。右键单击Access中的表,选择链接的表管理器,然后在queston中选中该表,然后单击“确定”就足够了。该链接将为您刷新。

因此,以上是三个主要问题。在大多数情况下,PK是问题所在。但是,如果SQL上的表也有一个触发器(可以插入到其他表),则必须更改该表触发器-但让我们一次执行这一步骤并求解。

通常,Access在使用SQL Server时需要一个PK列。如果有,请检查是否存在空的“位”问题-sql server表需要这些列的默认设置为0,并且如果它们为空,则Access不会这样。

如果上述两个问题都不是您的问题,则在SQL表中添加一列时间戳将解决此问题。