-2

我使用 Microsoft Access 为我使用 VB 2010 创建的应用程序创建了一个数据库文件。在另一台计算机上安装时,它显示以下与保存文件有关的错误。

您的应用程序中发生了未处理的异常。如果您单击继续,应用程序将忽略此错误并尝试继续。如果您单击退出,应用程序将立即关闭。

操作必须使用可更新查询。

错误信息详情:

System.Data.OleDb.OleDbException (0x80004005): 操作必须使用可更新的查询。

谁能解释我如何保存到数据库并防止此错误?

4

1 回答 1

0

该网站很好地总结了为什么 Access 查询可能无法更新。在不了解有关您的特定情况的更多详细信息的情况下,我能做的最好的就是在此处复制建议,您可以查看其中是否适用于您的情况。我最初的猜测是不工作的数据库已经以只读模式打开,或者在文件上设置了只读标志,或者用户权限不足。

第一步是找出查询不可更新的原因。以下查询不可更新:

  • 任何带有 GROUP BY 子句的查询。
  • 任何带有 TRANSFORM 子句的查询。
  • 在 SELECT 子句中使用聚合函数(SUM()、MAX()、COUNT() 等)的任何查询。
  • 任何包含 DISTINCT 谓词的查询。
  • 任何包含 UNION 运算符的查询。
  • 在 SELECT 子句中包含子查询的任何查询。
  • 任何 SQL 直通查询。
  • 基于存在多对一多关系的三个或更多表的任何查询。
  • 基于只读查询的任何查询。

有时应该是可更新的查询不是。通常,查询之外的东西是影响:

  • 基础表可能是只读的。或者数据库以只读模式打开。
  • 用户必须有权更新基础数据。
  • 该记录可能被暂时锁定。稍后再试。
于 2013-05-05T11:34:13.810 回答