控制子表单的组合框可能会更新表格

Posted

技术标签:

【中文标题】控制子表单的组合框可能会更新表格【英文标题】:Combobox governing subform possibly updating tables 【发布时间】:2015-04-16 11:27:25 【问题描述】:

我有一个表单,该表单绑定到一个只返回一个字段的查询。该表单上有一个组合框,绑定到查询中的字段、子表单对象和其他一些不重要的东西。表单和子表单之间的主子关系设置为相同的字段。目的是下拉组合框允许我在与组合框中的该记录有关的子表单上添加信息(它是学校中的班级列表,用于上下文)。这是通过表单和子表单完成的,因为我需要为每个类完成各种不同的任务 - 目的是能够在主表单上选择一个类,然后使用其上的命令按钮来选择打开哪个子表单取决于我希望执行的任务。

但是,组合框似乎正在尝试更新表 - 我不确定是哪一个,因为错误消息并不具体:

您请求对表格进行的更改未成功,因为 他们会在索引、主键或 关系。更改字段中的数据或包含 重复数据,删除索引或重新定义索引以允许 重复值,然后重试

如果我从组合框中选择第一个以外的任何值,然后单击子表单上的第一个文本框,则会出现。但是,我可以在选择组合框中的第一个条目的情况下单击子表单并成功添加数据,我已经检查过并且它出现在基础表中。

在我看来,作为 Access 的相对新手,组合框在更改时尝试更新基础数据源,尽管它没有宏。我会假设表单或组合框的属性中有一些项目可以防止这种情况发生,但我找不到它们。不过,这只是对正在发生的事情的猜测,我可能是错的。

这可能与this question 有关,但我也可能在此处弄错了。无论如何,表单不应该能够更新/编辑/添加记录,但是如果我将其属性中的允许编辑设置为“否”,我将无法从组合框中实际选择一个值 - 我已经设置了其他“允许”属性到“不”没有问题。

【问题讨论】:

【参考方案1】:

如果您更改主窗体中的任何内容,然后单击子窗体,则 Access 将尝试自动将数据保存在主窗体中。也许您可以尝试将组合框与文本字段临时交换以进行测试。这应该可以帮助您澄清问题。

【讨论】:

以上是关于控制子表单的组合框可能会更新表格的主要内容,如果未能解决你的问题,请参考以下文章

在子表单访问中绑定组合框

根据组合框中的是/否值逐行更新表格列

使用 Combobox 控制表单

访问子表单选择取决于组合框

访问 2007 表单组合框不接受列表中的项目

在 ms-Access 中使用组合框创建搜索表单