Как я могу показать значение на основе нескольких условий? - PullRequest
0 голосов
/ 06 февраля 2020

В моей форме я хочу, чтобы пользователи могли видеть Цвет или Животное на основе поля параметров И на основе их ввода. Код, который я пробовал до сих пор, не работал для меня, и я думаю, что это потому, что я не понимаю, как правильно отформатировать его.

Я попытался сделать это для каждого цвета для каждого цвета, я попытался просто добавить числа в качестве возможных значений и попытался создать массив. Однако безуспешно.

Например.

Если выбрано Optionbutton A и значение textbox A равно 1, 4 или 10, то textbox B покажет синий. Но если значение textbox A равно 2, 3, 5 или 9, тогда textbox B покажет зеленый.

Пример 2.

Optionbutton B, а значение textbox A равно 1, 3, 4, 10 или 12, тогда textbox B покажет Butterfly. Но если значение textbox A равно 2, 5, 7, то textbox B покажет Caterp ie.

Добавлено примечание, я не знаю, возможно ли это с формой, но если бы пользователь переключался между опциями, текстовое поле B изменилось бы соответственно.

Private Sub txtboxA_Change()

Dim txtboxA As String
Dim Colourarray As Variant

Blue = Array("1", "4", "10")

Me.txtboxA.MaxLength = 2

'If OptA is selected then pick colour based on textbox value

If Me.OptA.Value = True And Me.txtboxA.Value = "1" Then 'This bit seemed to work, but once I copied this for every number which needs to show green, vba got unhappy at me. 
'If Me.OptA.Value = True And Me.txtboxA.Value = "1", "4", "10" Then
'If Me.optA.Value = True And (Poort = "1", "4", "10") Then
'If Me.txtboxA.Value = Colourarray And Me.optA.Value = True Then
Me.txtboxB.Value = "Blue"
End If
End Sub

1 Ответ

0 голосов
/ 06 февраля 2020

Используется регистр выбора вместо if.

Private Sub txtboxA_Change()

    Dim txtboxA As String
    Dim optionchoice As Long

    Me.txtboxA.MaxLength = 2

    'option A = 1; option B = 2
    If Me.optA.Value = True Then 'Easier to do a select case on optionchoice over option button
        optionchoice = 1
    ElseIf Me.optB.Value = True Then
        optionchoice = 2
    End If


    Select Case optionchoice 'Based on Option Button selection
        Case 1 'Option A
            Select Case Me.txtboxA.Value 'Based on Text Box value
                Case 1, 4, 10
                    Me.txtBoxB.Value = "Blue"
                Case 2, 3, 5, 9
                    Me.txtBoxB.Value = "Green"
            End Select
        Case 2 'Option B
            Select Case Me.txtboxA.Value
                Case 1, 3, 4, 10, 12
                    Me.txtBoxB.Value = "Butterfly"
                Case 2, 5, 7
                    Me.txtBoxB.Value = "Caterpie"
            End Select
        End Select

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...