скрыть / показать много текстовых полей в форме на основе комбинированного значения в ms-access (userform) - PullRequest
0 голосов
/ 17 февраля 2019

У меня сейчас слишком много операторов if;Каково лучшее решение для кодирования, скрывающего и скрывающего текстовые поля, я думаю, что у меня есть 8 или больше комбинаций, вот текущий код, который у меня есть, когда я пытаюсь это сделать, он работает только с последним, если комбинации операторов следующие, как AD, и все комбинации между ними.:

If Combo308.Value = "A" Then
    Combo305.Visible = True
    Option103.Visible = True
    Else
     Combo305.Visible = False
    Option103.Visible = False
    End If


 If Combo308.Value = "B" Then
    Combo306.Visible = True
    Option105.Visible = True
    Else
    Combo306.Visible = False
    Option105.Visible = False
    End If


 If Combo308.Value = "D" Then
    Combo309.Visible = True
    Option111.Visible = True
    Text310.Visible = True
    Option113.Visible = True
    Combo311.Visible = True
    Option115.Visible = True
    Text312.Visible = True
    Option117.Visible = True
     Text313.Visible = True
    Option119.Visible = True
    Combo314.Visible = True
    Option121.Visible = True
    Text315.Visible = True
    Option123.Visible = True
    Text316.Visible = True
    Option125.Visible = True
    Text317.Visible = True
    Option127.Visible = True
     Text318.Visible = True
    Option129.Visible = True
     Text319.Visible = True
    Option131.Visible = True
    Else
    Combo309.Visible = False
    Option111.Visible = False
    Text310.Visible = False
    Option113.Visible = False
    Combo311.Visible = False
    Option115.Visible = False
    Text312.Visible = False
    Option117.Visible = False
    Text313.Visible = False
    Option119.Visible = False
    Combo314.Visible = False
    Option121.Visible = False
    Text315.Visible = False
    Option123.Visible = False
    Text316.Visible = False
    Option125.Visible = False
    Text317.Visible = False
    Option127.Visible = False
     Text318.Visible = False
    Option129.Visible = False
    Text319.Visible = False
    Option131.Visible = False
    End If

If Combo308.Value = "A,B" Then
    Combo305.Visible = True
    Option103.Visible = True
    Combo306.Visible = True
    Option105.Visible = True
    Else
     Combo305.Visible = False
    Option103.Visible = False
    Combo306.Visible = False
    Option105.Visible = False
    End If

If Combo308.Value = "A,B,C" Then
    Combo305.Visible = True
    Option103.Visible = True
    Combo306.Visible = True
    Option105.Visible = True
    Combo307.Visible = True
    Option109.Visible = True
    Else
    Combo305.Visible = False
    Option103.Visible = False
     Combo306.Visible = False
    Option105.Visible = False
    Combo307.Visible = False
    Option109.Visible = False
    End If

1 Ответ

0 голосов
/ 17 февраля 2019

Полагаю, вам нужно сначала скрыть все элементы управления, а затем отобразить выделенную область:

Combo305.Visible = False
Option103.Visible = False
' etc. - all controls in question.

Select Case Combo308.Value
    Case "A" 
        Combo305.Visible = True
        Option103.Visible = True
    Case "B" 
        Combo306.Visible = True
        Option105.Visible = True
    Case "D" 
        ' etc.
        '
    Case "A,B,C" 
        Combo305.Visible = True
        Option103.Visible = True
        Combo306.Visible = True
        Option105.Visible = True
        Combo307.Visible = True
        Option109.Visible = True
End Select

И переименовать для всех элементов управления, чтобы иметь осмысленные имена.

...