我有一个表单,其中包含一个子表单,该子表单根据输入字段中的内容显示来自简单查询的数据。
我已将两种表单的属性设置为以下内容,但我仍然遇到“记录集不可更新”消息。
记录集类型:Dynaset
允许添加:是
允许删除:是
允许编辑:是
允许过滤器:是
记录锁:无锁
改变什么?
您的查询链接到的表或查询之一可能没有主键。
或者(这就是我遇到的问题) 在查询生成器中,确保未启用
Group By
行。当您禁用此功能时,查询将变得可编辑。
分组依据已启用
右键单击该行并禁用
Totals
分组依据已禁用
解除 Text0 的绑定(删除 Navn 作为控制源)。你有相当于循环引用的东西。
您告诉表单不要显示除查询限制之外的任何数据,但您让查询不显示除表单中的数据之外的任何数据。
我遇到了这个问题,这是由于表之间的关系造成的。我将一些设置为不确定,并相信这是导致问题的原因。一旦我修改了表关系,使所有关系都是一对多,我就可以编辑查询/表单中的字段。
-请注意,要建立一对多关系,关系中的一个字段必须是键或设置为“唯一”。
我在使用表单向导创建的 Access 2016 表单中遇到此错误。 它将一些变量(例如数据输入)设置为“否”。 但阻止表单编辑的是过滤和排序。 我必须告诉过滤器和排序“否” 当我重新打开表格时,没有显示任何内容。 我过滤了一些东西然后清除了过滤器。 现在该表格可以使用了。
在我的例子中,我制作了一个表格,其中我将来自各种其他表格的可能组合混合与许多相应的多对一关系连接起来。在仅使用这一组合表的后续查询中,如果我检查查询属性表中的“唯一值”,它就变得不可更新。检查“唯一记录”就可以了。
缺点是,当过滤查询中的组合字段之一时,我现在从组合表中获取该特定字段已获取过滤器值的所有这些行(记录)。如果我检查“唯一值”,我就不会明白。
我想解决方案是进行两个单独的查询:一个不可更新的查询仅用于查询,然后是复制查询(需要更新时取消选中“唯一值”除外)。
至少你的人际关系是正确的。
损坏的表有时会丢失其主键,这可能是导致“记录集不可更新”消息的原因。
我发现记录集不可更新也存在同样的问题,但它似乎是间歇性的。子窗体记录集是可更新的,然后则不可更新。当它不可更新时,我不得不返回到数据库的早期副本。在早期的副本中,记录集是可更新的。我发现,如果我对子表单数据进行排序并关闭表单,访问会在子表单属性中保存“排序依据”子句 - 我从未运行任何命令来保存子表单。设置此“排序依据”后,子表单记录集不可更新。修复:我向所有子窗体添加了一个初始化例程,以在打开主窗体之前删除排序依据。哇啦!子表单的记录集现在每次都可以更新。
我遇到了这个问题,@bgmcoder 提供的解决方案解决了它 - 非常感谢您!赞赏:)
在上面
Allow Additions: Yes
你应该有类似的东西
Allow datainput
。确保该字段设置为 false
。如果您在选择此字段时阅读状态栏注释,您就会明白为什么您的表格突然变得无法从公式中编辑:)