【问题标题】:How to set the first continuous combobox invisible in Access 2007?如何在 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 但我的问题是它不应该显示在选择名字的过滤器的第一行上。有没有办法说“如果表单是连续的,那么组合框应该是可见的”?或者换句话说,如果有第二行显示,那么在第二行而不是第一行显示组合框?
  • 你永远不能让组合框只显示在第一行,因为它是一个连续的形式。您可以控制用户输入(我的答案)或控制可见性(克雷格的答案),但要么全有,要么全无。其他任何事情都需要不利用连续表单的不同表单设计......

标签: ms-access combobox filter ms-access-2007


【解决方案1】:

连续表单控件全有或全无。如果可见,则在所有行中可见,如果不可见,则在所有行中不可见。对此你无能为力。

您有四个选项(按复杂程度排列):

第一个选项: 当用户在连续表单内从一行移动到另一行时,表单的“当前”事件会发生。如果用户已移动到第一行,您可以向该事件添加一个 IF 语句来禁用第一个框。

第二个选项: 有固定数量的过滤框,不要让用户超出限制

第三个选项: 有固定数量的过滤框,但制作“前进”和“后退”按钮,这些按钮将更改过滤框链接到的数据,有效地制作“自定义”连续表单

第四个选项: 以编程方式动态创建文本框(不推荐)

【讨论】:

  • 感谢其他选项!我喜欢你的第一个选项,但是当用户决定从一个行移动到另一个行时,我如何以编程方式告诉这一点?
  • 一旦用户选择了一行中的任何元素,On Current 事件就会触发。 msdn.microsoft.com/en-us/library/office/… 这样您就知道您在新行上,并且您访问的连续表单中基础表的所有控件/记录都将来自新行。因此,您可以做的是,例如,检查基础表的 PK,然后您就知道您在哪一行,并可以相应地启用或禁用组合框。
  • 同样,这将启用/禁用所有行中的组合框,但至少当用户选择不同的行时,您可以再次启用它。
  • 如果是我,我会让组合框 cmbOperator 建立在 serakfalcon 的基础上,并有 3 个选项:“IF”、“OR”和“AND”。 “IF”将是仅在第一行(新条目)上的默认值,否则它将默认为“OR”。如果需要,用户也可以选择“AND”。您需要输入一些逻辑来验证用户没有再次选择“IF”。
【解决方案2】:

将默认的“可见”属性设置为“否”,然后在选择第二个条件时将其重置为“是”。不过,这将填充整个列,就像您知道的那样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    相关资源
    最近更新 更多