7

我可以访问名为 road.mdb 的数据库。在 road.mdb 中,我有一个链接的 SQL 表,
表名为 student。

我可以在 MSAccess 中使用查询设计插入记录

但我不能更新也不能删除

在下面运行删除查询时,错误是:无法从指定表中删除

delete from student where studentid=303;

当我在下面运行更新查询时,错误是:操作必须使用可更新查询

update student set Name='BOB' where studentid= 303;

我拥有对 sql 数据库的完全访问权限,并且可以使用 sql management studio 运行查询 OK。使用 MSaccess 中的查询设计是否无法删除和更新?奇怪的是我可以在 MSaccess 中使用查询设计插入新记录

谢谢你

4

5 回答 5

8

我通过向 SQL 表添加主键并将表重新链接到 ACCESS 解决了这个问题

感谢大家...

于 2013-10-24T18:54:26.293 回答
1

如果您无法在 SqlServer 上操作表,您可以通过告诉 Access 哪个/s 列/s 是主键来解决此问题。这是在创建链接表的最后一步完成的,窗口标题是“选择唯一记录标识符”。

于 2015-09-10T14:19:06.307 回答
1

您会发现以下步骤很可能会解决您的问题:

  1. 在 SQL Server 中:在您正在使用的表上设置一个主键,并确保主键是 int 类型,而不是 bigint,因为 Access 将无法正确处理 bigint 数据类型。
  2. 在 SQL Server 中:刷新表。
  3. 在 MS Access 中:重新链接表。

(您可以通过向 SQL Server 表添加记录并通过 MS Access 链接表访问它来轻松检查“事情是否正常”。当一切正常时,从 MS Access 端查看数据时,您不应该看到#Deleted。 ) 希望能帮助到你 ;-)

于 2018-11-02T14:01:46.380 回答
0

就我而言,链接表只有键。我必须将其中一个键修改为主键,然后我可以通过 DELETE 表截断表。* 通过访问 FROM 表。

于 2019-07-14T11:29:36.077 回答
0

就我而言,问题是BIT列。我认为当 bit 列包含 NULL 值时会出现问题。

为了解决这个问题,我要么删除了整个列,要么设置了一个默认值。

于 2021-04-15T12:34:26.047 回答