ms access 组合框刷新

Posted

技术标签:

【中文标题】ms access 组合框刷新【英文标题】:ms access combo box refresh 【发布时间】:2011-01-04 01:03:42 【问题描述】:

我有 3 张桌子

章节(id,名称) 标题(id、name、parentid) 副标题(id、name、parentid)

父母是彼此上方的表格的ID。

我有一个包含 3 个组合框的表单

章节 标题 副标题。

我有 vba 用于章节和标题的 onchange。此代码工作正常:

私有子章节_AfterUpdate() Me.Heading.RowSource = "选择 [标题].[ID]、[标题].[标题]、[标题].[父] 从标题 WHERE [标题].[父] =" & Me.Chapter & " ORDER由 [标题];" Me.Heading.Requery 结束子 私有子标题_AfterUpdate() Me.Subheading.RowSource = "SELECT [Subheadings].[ID], [Subheadings].[SubHeading], [Subheadings].[Parent] FROM Subheadings WHERE [Subheadings].[Parent] =" & Me.Heading.Value & " ORDER BY [子标题];" Me.Subheading.Requery 结束子

以上工作正常,表单将信息正确保存到新表中。

但是……

当我重新打开表单时(关闭访问后),章节似乎填充到组合中,但标题和副标题没有。尽管如此,如果我单击 vba 运行的章节,我保存记录的表中当前保存的记录会显示正确的子值。副标题也是如此。

我没有丢失任何数据,但我无法让组合框重新显示保存的数据以供打开。

即使在新的形式之后。

任何帮助都会非常感谢。

【问题讨论】:

设置行源后重新查询是多余的——你只需要分配行源。 【参考方案1】:

将标题和副标题的更新代码放入表单的Current事件以及After Update事件中。

【讨论】:

更好的是,为每个行源分配创建一个子例程,然后从 AfterUpdate 和 OnCurrent 调用该单个子例程。

以上是关于ms access 组合框刷新的主要内容,如果未能解决你的问题,请参考以下文章

MS ACCESS 过滤器组合框所有选项

MS Access 2010 多列组合框自动完成

Ms Access - 从组合框列更新图像

MS Access - 带有组合框和文本框的 If 语句

MS Access:组合框列顺序问题

如何更新 ms access vba 中的多值组合框?