基于当前字段值的MS访问表单组合框行源

Posted

技术标签:

【中文标题】基于当前字段值的MS访问表单组合框行源【英文标题】:MS access form combo box row source based on current field value 【发布时间】:2015-10-26 17:57:25 【问题描述】:

Access(我使用的版本:2010)和 VB 中的新手。 :(

我有一个名为“issues”的表单和一个表格,一个名为“statusfield”的组合框(值列表:open、reopen、wip、close)。

表单加载每条记录的“问题”表的内容。可以修改记录的字段值。

目的是根据问题的当前状态显示可用值列表。

例如,如果“statusfield”的当前值为空,当单击组合框时,可用状态为“open;reopen;wip”,如果“statusfield”的当前值为“open”,那么可用状态将是“wip;closed”。

谁能解释的尽可能详细?欣赏!

【问题讨论】:

【参考方案1】:

在组合框的 AfterUpdate 事件中添加此代码

If Me.statusfield.value = "open" Then
   Me.statusfield.RowSource = "wip ; closed"
End If

【讨论】:

Emi,我已经尝试过Form_Current、AfterUpdate、BeforeUpdate、Click 中的代码(使用RowSourceType="Field List"),但它不起作用。它在选择列表上显示为空。 RowSourceType 属性应设置为“值列表”,您必须输入带有分号 (;) 作为分隔符的项目列表。 “字段列表”用于表名、查询名或 SQL 语句。 谢谢 Emi,这基本上是我想要的,只是我在 Form_Current 事件中使用它。此外,我将“继承值列表”(经过两天的故障排除)更改为否。现在一切正常! :)【参考方案2】:

所以我重新设计了数据库,在(数据库工具 -> 关系)中创建了一对多映射,使用相同的 vba,一切都按设计工作。干杯!

【讨论】:

以上是关于基于当前字段值的MS访问表单组合框行源的主要内容,如果未能解决你的问题,请参考以下文章

MSAccess - 预选组合框行

基于记录集向组合框添加值

Access中连续形式的组合框的自定义行源

如何使用组合框在记录 ms 访问中搜索多个字段?

组合框的行源查询中的 where 子句

使用宏过滤带有组合框的表单 - MS Access