Ms Access:来自另一个子表单的子表单重新查询未更新
Posted
技术标签:
【中文标题】Ms Access:来自另一个子表单的子表单重新查询未更新【英文标题】:MsAccess: Subform requery from another subform not updating 【发布时间】:2015-11-02 05:01:46 【问题描述】:我有一个名为 frmMain 的表单,它有两个子表单。 frmUserRole 和 frmTraining。
frmUserRole 子表单有一个组合框,我用它的结果在查询中运行以在 frmTraining 子表单中生成训练结果,该子表单有一个名为 TrainingModule 的控件。
frmTraining 子表单有一个训练查询的记录源,正如我之前提到的,它有一个引用组合框值的字段。
活动
我有一个简单的 requery 事件连接到组合框中的 on-change 事件,逻辑是,如果您更改组合框中的值,那么新值将自动用于更新查询并使用 frmTraining 子表单填充新结果。
我用于组合框 on-change 事件的语法是
[Forms]![frmMain]!frmTraining.Form.Requery
没有发生什么
子表单未使用新的查询结果进行更新。
发生了什么。
如果我转到 frmTraining 子表单并按 F5 键,新值会出现,表明除了实际的重新查询之外一切都在运行。
如果我在 on-change 事件上放置一个 msgbox,它会被触发,所以我知道该事件会触发。
【问题讨论】:
【参考方案1】:我没有用过你以前用过的语法。这是我之前使用的语法
Me![frmTraining].requery
还有
forms!frmMain.form![FrmTraining].requery
.
编辑
我会将相关字段上的训练子表单查询条件设置为forms!frmMain![frmUserRole]![combobox].column(0)
。
然后我会在更新后的 frmUserRole 子表单组合框时重新查询 forms!frmMain.form!frmTraining.requery
。我说afterUpdate
因为我相信onChange
可能存在问题
【讨论】:
感谢 LiamH。您的格式肯定更简洁,我想我应该养成引用当前对象而不是使用绝对引用的习惯,但是我知道我使用的格式仍然有效,所以还有一些其他问题导致重新查询不起作用.哦,我是从一个子表单引用的,所以我需要使用 Me.parent!controlName 不是吗(控件名称是 subform2)。 我重新阅读了您的问题,我想我完全理解您想要实现的目标。组合框字段叫什么? 利亚姆。调用 frmUserRole 子窗体中的组合框是 UserRole。我没有提到被调用的子窗体控件,它实际上是一个名为 Training Module 的文本框。我告诉你,如果这个网站可以允许附件,它会让事情变得更容易,但仍然感谢你和网站的帮助。 谢谢利亚姆。但这也不起作用。在花费了另外 2 个小时的大部分时间之后,我确实偶然发现了我只是不知道为什么的答案。如果我在重新查询后添加主表单刷新(在用户角色子表单中它可以工作。至少可以说这很奇怪。以上是关于Ms Access:来自另一个子表单的子表单重新查询未更新的主要内容,如果未能解决你的问题,请参考以下文章