我有一个名为 road.mdb 的访问数据库。在路上.mdb,我有一个链接的SQL表和
表名为学生。
我可以在 MSAccess 中使用查询设计插入记录
但我无法更新或删除
运行下面的删除查询时,错误为:无法从指定的表中删除
delete from student where studentid=303;
当我在下面运行更新查询时,错误是: 操作必须使用可更新的查询
update student set Name='BOB' where studentid= 303;
我具有对 sql 数据库的完全访问权限,并且可以使用 sql 管理工作室运行查询。是否可以在 MSaccess 中使用查询设计进行删除和更新?奇怪的是我可以在 MSaccess 中使用查询设计插入新记录
谢谢
我通过将主键添加到 SQL 表并将表重新链接到 ACCESS 来解决此问题
谢谢大家...
如果无法在 SqlServer 上操作表,则可以通过告诉 Access 哪些列是主键来解决此问题。这是在创建链接表的最后一步完成的,窗口标题是"选择唯一记录标识符"。
以下步骤很可能会解决您的问题:
- 在 SQL Server 中:在正在使用的表上设置主键,并确保主键的类型为 int,而不是 bigint,因为 Access 无法正确处理 bigint 数据类型。
- 在 SQL Server 中:刷新表。
- 在 MS Access 中:重新链接表。
(之后,您可以通过向 SQL Server 表添加记录并通过 MS Access 链接表访问它来轻松检查"一切正常"。当一切正常时,从MS Access端查看数据时,您应该看不到 #Deleted。希望它有帮助;-)
就我而言,链接表只有键。 我必须将其中一个键修改为主键,然后我可以通过 DELETE 表截断截断表。
就我而言,问题是 BIT 列。 我认为当位列包含 NULL 值时会出现问题。
为了解决此问题,我删除了整个列,或者设置了默认值。