如何在 Access 2007 中设置第一个连续组合框不可见?
Posted
技术标签:
【中文标题】如何在 Access 2007 中设置第一个连续组合框不可见?【英文标题】:How to set the first continuous combobox invisible in Access 2007? 【发布时间】:2013-12-26 21:23:06 【问题描述】:我正在尝试在连续过滤器表单中添加 OR 功能,您可以看到第一个组合框出现了,我不希望它显示。理想情况下,它应该仅在用户想要第二行搜索选项而不是第一行过滤器时显示。我只有 OR 在组合框中。感谢您的帮助,如果您需要任何澄清,请告诉我!
【问题讨论】:
我得到了可见和不可见部分与此代码:Private Sub Criteria_AfterUpdate() If Me.Criteria.Column(2) = True And filterDict.Exists(Criteria.Value) Then Me.CmbOperator.visible = False Else Me.CmbOperator.visible = True End If Me.CmbOperator.Requery End Sub
但我的问题是它不应该显示在选择名字的过滤器的第一行上。有没有办法说“如果表单是连续的,那么组合框应该是可见的”?或者换句话说,如果有第二行显示,那么在第二行而不是第一行显示组合框?
你永远不能让组合框只显示在第一行,因为它是一个连续的形式。您可以控制用户输入(我的答案)或控制可见性(克雷格的答案),但要么全有,要么全无。其他任何事情都需要不利用连续表单的不同表单设计......
【参考方案1】:
连续表单控件全有或全无。如果可见,则在所有行中可见,如果不可见,则在所有行中不可见。对此你无能为力。
您有四个选项(按复杂程度排列):
第一个选项: 当用户在连续表单内从一行移动到另一行时,表单的“当前”事件会发生。如果用户已移动到第一行,您可以向该事件添加一个 IF 语句来禁用第一个框。
第二个选项: 有固定数量的过滤框,不要让用户超出限制
第三个选项: 有固定数量的过滤框,但制作“前进”和“后退”按钮,这些按钮将更改过滤框链接到的数据,有效地制作“自定义”连续表单
第四个选项: 以编程方式动态创建文本框(不推荐)
【讨论】:
感谢其他选项!我喜欢你的第一个选项,但是当用户决定从一个行移动到另一个行时,我如何以编程方式告诉这一点? 一旦用户选择了一行中的任何元素,On Current 事件就会触发。 msdn.microsoft.com/en-us/library/office/… 这样您就知道您在新行上,并且您访问的连续表单中基础表的所有控件/记录都将来自新行。因此,您可以做的是,例如,检查基础表的 PK,然后您就知道您在哪一行,并可以相应地启用或禁用组合框。 同样,这将启用/禁用所有行中的组合框,但至少当用户选择不同的行时,您可以再次启用它。 如果是我,我会让组合框 cmbOperator 建立在 serakfalcon 的基础上,并有 3 个选项:“IF”、“OR”和“AND”。 “IF”将是仅在第一行(新条目)上的默认值,否则它将默认为“OR”。如果需要,用户也可以选择“AND”。您需要输入一些逻辑来验证用户没有再次选择“IF”。【参考方案2】:将默认的“可见”属性设置为“否”,然后在选择第二个条件时将其重置为“是”。不过,这将填充整个列,就像您知道的那样。
【讨论】:
以上是关于如何在 Access 2007 中设置第一个连续组合框不可见?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Zend Framework 2 中设置第一个应用程序