【问题标题】:If/Then resulting in setting visible=trueIf/Then 导致设置 visible=true
【发布时间】:2014-07-08 19:34:39
【问题描述】:

该表单是一个连续的表单,其目的是调用供应商列表,然后当所有必填字段(在不同的表单上)完成后,一个名为 AllDone 的计算字段,使用 IIf 语句将该字段设置为“是”对于每条记录(IIf 在表中完成)。

然后,当加载表单时,供应商旁边应该会出现一个复选标记,向用户表明该供应商已完成。复选标记已加载到表中。

“AllDone”字段的结果类型为是/否,格式设置为是/否,表单的格式设置为是/否。

这是一段简单的 VBA 代码,但我无法让它工作。我尝试了几种变体;包括,将 .value 添加到 Me.AllDone,在 Yes 周围添加“”,尝试 -1 以及各种组合。我的试错失败了,我的研究停滞不前;所以我转向 SO。

我的代码:

   Private Sub Form_Load()
        If Me.AllDone = Yes Then
            Me.Check.Visible = True
        Else
            Me.Check.Visible = False
        End If
    End Sub

谢谢!

【问题讨论】:

  • 试试不带等号的If Me.AllDone Then。
  • 感谢您的回复。当我以这种方式运行代码时,所有复选标记都可见,即使是否。
  • 听从@Roland 的建议,然后试试Me.AllDone.Value
  • 仍然显示所有复选标记。
  • Private Sub Form_Load() If Me.AllDone.Value Then Me.Check.Visible = True Else Me.Check.Visible = False End If End Sub

标签: ms-access vba ms-access-2010


【解决方案1】:

您无法在连续表单上为每条记录切换控件的可见性。您可以使用条件格式禁用它,但没有内置功能使其不可见。您也许可以使复选框的背景颜色与表单的背景相匹配,这可能会使其不可见 - 但我不确定这是否可行。

用户可以在连续表单上切换控件吗?也就是说,用户真的可以在你的连续形式中编辑那个值吗?如果没有,您可以将其更改为文本框,然后您可以根据字段的值使用条件格式修改背景颜色。

使用条件格式:

在设计视图中打开表单并选中复选框,然后选择表单设计工具 - 格式 - 条件格式。添加新规则:

字段值等于 False(或 True,取决于您要做什么)

现在将背景色设置为与连续表单的详细信息部分相同。当 Access 遇到该规则时,它将检查该字段的值并相应地设置背景色。

【讨论】:

  • 谢谢!确实有效。我将条件格式的表达式设置为 IFF 语句。如果字段已完成,表单上的文本框将变为绿色(表示 go)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-29
  • 1970-01-01
  • 2014-12-26
  • 1970-01-01
相关资源
最近更新 更多