使用 Combobox 控制表单

Posted

技术标签:

【中文标题】使用 Combobox 控制表单【英文标题】:Controlling form with Combobox 【发布时间】:2015-06-03 19:09:08 【问题描述】:

我有一个表单,表单标题中有一个组合框,用于填充表单中的值。我可以在组合框中选择不同的值来引用我的表中的观察值,并且表单将进行过滤,以便我拥有表中的所有数据,用于我在表单的组合框中选择的观察值。

它工作正常,但是当我打开表格时,表格中的第一行填充了表格,即使组合框是空白的。如何设置表单,以便当标题中的组合框为空白时,表单为空白,并且仅在我填充组合框时才会填充表单?

谢谢

【问题讨论】:

听上去你只是根据所选的组合框选项更改记录。但是,当您打开表单时,它会自动查看第一条记录。不完全确定这是否可以轻松更改,但也许不是与之抗争,而是让组合框反映观察的正确名称? 【参考方案1】:

您可以将子表单 Record Source 留空,然后在组合框 AfterUpdate() 事件中,更改子表单 Record Source 和 Requery 子表单。

这可能有点草率,因为表单请求因其不可靠性而臭名昭著。我过去所做的是将子表单设置为PopUp 并在组合框的AfterUpdate() 中或单击按钮,修改记录源并打开所需的子表单。

【讨论】:

【参考方案2】:

正如我在评论中提到的,我认为您尝试执行的操作可能会相当烦人。但是,如果您只是添加这样的内容:

Private Sub Form_Load()
    Me.Combobox1.Value = Nz(Me.ObservationName,"")
End Sub

它只会使组合框反映您正在查看的观察的正确名称。 ObservationName 正是我假设您在组合框中使用的字段名称,Combobox1 将被替换为组合框的名称。

【讨论】:

以上是关于使用 Combobox 控制表单的主要内容,如果未能解决你的问题,请参考以下文章

使用 ComboBox、UserControl 和一些表单来更改语言(针对整个项目)

表单加载时更新comboBox

访问表单 VBA ComboBox 点击事件

Qt 按键控制combobox

VBA(Visual Basic):ComboBox(表单控件) - 对象不支持此属性或方法

使用 ComboBox 作为查询条件 - 布尔值