【问题标题】:Hiding multiple objects using MS Access VBA code使用 MS Access VBA 代码隐藏多个对象
【发布时间】:2020-07-13 18:17:44
【问题描述】:

有人可以帮我处理 VBA 代码吗?我对 MS Access 很陌生。如何使用 VBA 代码使多个文件不可见/隐藏?

我正在创建 MS Access 表单。我有一个要求,如果从一个字段中选择一个条件,则需要隐藏 3 个字段。例如:我有一个带值的列性别(男性、女性和其他)。如果我从性别字段中选择其他三个字段,可以说(X、Y 和 Y)需要不可见。我无法一次隐藏所有三个文件。下面是我正在使用的代码。有人可以帮我解决这个问题吗?

Private Sub gender_Click()
If gender.Value = "other" Then
Me.X.Visible = True And Me.Y.Visible = True And Me.X.Visible = True
Else
Me.X.Visible = False And Me.Y.Visible = False And Me.X.Visible = False
End If
End Sub

【问题讨论】:

    标签: vba ms-access


    【解决方案1】:

    这一行

    Me.X.Visible = True And Me.Y.Visible = True And Me.X.Visible = True
    

    不做我认为你认为它做的事。等号右侧的所有内容都在应用于 Visible 参数之前进行评估。这意味着如果所有这些都为真,则结果为真:

    True
        And
    Me.Y.Visible = True 
        And 
    Me.X.Visible = True
    

    相反,您可以这样做:

    Me.X.Visible = True
    Me.Y.Visible = True
    Me.X.Visible = True
    

    甚至

    Me.X.Visible = (gender.Value = "other")
    Me.Y.Visible = (gender.Value = "other")
    Me.X.Visible = (gender.Value = "other")
    

    在这种情况下,您根本不需要If

    【讨论】:

    • 非常感谢 Sam,没有 If 的代码可以完美运行。非常感谢。
    【解决方案2】:

    And 是逻辑运算符。你不需要在这里使用它

    Private Sub gender_Click()
        If gender.Value = "other" Then
            Me.X.Visible = True 
            Me.Y.Visible = True
            Me.X.Visible = True
        Else
            Me.X.Visible = False 
            Me.Y.Visible = False 
            Me.X.Visible = False
        End If
    End Sub
    

    或者如果你想在单行设置属性

    Private Sub gender_Click()
        If gender.Value = "other" Then
            Me.X.Visible = True : Me.Y.Visible = True : Me.X.Visible = True
        Else
            Me.X.Visible = False : Me.Y.Visible = False : Me.X.Visible = False
        End If
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-03
      • 1970-01-01
      • 2019-01-03
      • 2014-06-25
      • 2015-06-24
      • 2018-06-24
      • 2013-04-28
      相关资源
      最近更新 更多