VBA для сравнения нескольких полей в форме в ms доступ, чтобы сделать кнопки видимыми или невидимыми - PullRequest
0 голосов
/ 16 января 2020

Вот код, который не работает:

If Me.ReasonCode.Value = 1 And Me.Consumed_Time.Value <= Me.Calculat.Value Then
    Me.Command131.Visible = True
    Me.Command132.Visible = True
    Me.Command154.Visible = True
Else
    Me.Command131.Visible = False
    Me.Command132.Visible = False
    Me.Command154.Visible = True
End If

If Me.ReasonCode.Value = 1 And IsNull(Me.Calculat.Value) = True Then
    Me.Command131.Visible = True
    Me.Command132.Visible = True
    Me.Command154.Visible = True
Else
    Me.Command131.Visible = False
    Me.Command132.Visible = False
    Me.Command154.Visible = True
End If

If Me.ReasonCode.Value = 0 And Me.Consumed_Time.Value < Me.MAximumHours.Value Then
    Me.Command131.Visible = True
    Me.Command132.Visible = True
    Me.Command154.Visible = True
Else
    Me.Command131.Visible = False
    Me.Command132.Visible = False
    Me.Command154.Visible = True
End If

If Me.ReasonCode.Value = -1 Then
    Me.Command131.Visible = True
    Me.Command132.Visible = True
    Me.Command154.Visible = True
End If

1 Ответ

0 голосов
/ 16 января 2020

Если код выполняется без каких-либо ошибок компиляции, то я бы предположил, что видимость командных кнопок установлена ​​на False / False / True из-за попадания в часть Else третьего блока If / Else, несмотря на будучи установлен иначе в одном из двух предыдущих блоков If / Else.

Вы можете проверить, так ли это, установив точку останова в начале кода и пройдя по ней, чтобы увидеть, является ли это case.

Я бы предложил вложить блоки If или использовать Select Case, чтобы в коде можно было выбрать только один набор результатов.

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