【问题标题】:Unable to toggle labels visibility in MS Access after update event更新事件后无法在 MS Access 中切换标签可见性
【发布时间】:2016-07-26 00:53:05
【问题描述】:

我目前有一个更新后事件,它在表单中的文本框之间循环,并在它们的编号低于某个阈值时切换它们的可见性。

Dim i As Long    
        Dim iMin As Long    
        Dim iMax As Long    
        iMin = 1   
        iMax = Me.txtMeasure.Value   
        With Me   
            For i = iMin To iMax   
                              .Controls("V" & i).Visible = True   
            Next i   
        End With

文本框命名为V1, V2, V3...V110等",而每个文本框对应的标签标记为lblV1lblV2lblV3lblV110等"文本框和标签默认为不可见,而更新后事件会打开它们的可见性。该代码适用于文本框,但不适用于标签。我注意到虽然标签不可见,切换到设计视图然后返回表单视图,标签突然出现可见。有没有办法调试它,使它们同时显示?

【问题讨论】:

  • 设置标签可见的代码在哪里?
  • 我是新手,此代码是通过另一个 stackflow 用户提供给我的。我认为既然文本框和标签被命名为 V1 和 lblV1,那么代码会同时调整两者。 stackoverflow.com/questions/38510238/…
  • 如果标签附加到它们的文本框,它们应该自动设置为与其父文本框可见/不可见。

标签: vba ms-access


【解决方案1】:

试试这个,它循环通过控件,如果它是 textboxlabel,你可以用它们做你想做的事情,我在这段代码中将它们设置为 Visible

Dim con As Control
Dim i As Long
Dim iMin As Long
Dim iMax As Long
Dim textBoxArr
Dim j As Long
        iMin = 1
        iMax = Me.txtMeasure.Value
     textBoxArr = Array("V1", "V2", "V3", "V4", "V5", "V6", "V7")
    For Each con In Me.Controls    
        If TypeName(con) = "TextBox" Or TypeName(con) = "Label" Then
          For j = 0 To UBound(textBoxArr)
            If con.Name = textBoxArr(j) Or con.Name = "lbl" & textBoxArr(j) Then
                con.Visible = True: Exit For
            End If
          Next j
        End If
    Next con

【讨论】:

  • 这使得所有 110 个文本框和标签都可见。我只需要显示“Me.txtMeasure.Value”指示的尽可能多的文本框(因此原始带有循环)。
  • 我不能为你这样做。您需要在if 语句中测试每个control 并过滤掉您想要显示的那些等。如果您不知道该怎么做,请回复我。
  • 好的,我更新了代码以至少测试textboxLabel。您必须调整代码以适合您的控件名称。
【解决方案2】:

您只能在代码中添加一行。

        Dim i As Long    
        Dim iMin As Long    
        Dim iMax As Long    
        iMin = 1   
        iMax = Me.txtMeasure.Value   
        With Me   
            For i = iMin To iMax   
                              .Controls("V" & i).Visible = True  
                              .Controls("lbl" & i).Visible = True 
            Next i   
        End With

【讨论】:

    猜你喜欢
    • 2018-02-24
    • 2021-11-08
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 2020-01-09
    相关资源
    最近更新 更多