verificar uma caixa de seleção com base em outras caixas de seleção que estão sendo verificadas no acesso

0

Eu tenho um formulário em acesso 2010 com um campo de caixa de seleção chamado DR Process, então tenho outros 25 campos de caixa de seleção que, se marcados, querem que a caixa de seleção DR Process seja marcada automaticamente. Além disso, se um dos 25 campos estiver marcado e, em seguida, desmarcado, desmarque a caixa de seleção DR Process. Existe uma maneira de fazer isso?

Obrigado

    
por Lane Massey 15.01.2018 / 18:59

1 resposta

0

O comportamento que você está descrevendo para seus controles é semelhante ao de ter várias caixas de seleção acompanhadas por uma caixa de seleção Selecionar tudo para ativar ou desativar simultaneamente todas as caixas de seleção no conjunto:

Paraconseguirisso,acreditoquevocêprecisaráusaralgumcódigoVBAnosváriosmanipuladoresdeeventosAfterUpdateparaseuscontroles.

Noexemploaseguir,suponhoquevocêtenhaumconjuntodecaixasdeseleçãochamadaschk1,chk2echk3eumaúnicacaixadeseleçãoSelecionartudochamadachkA(noentanto,issopoderiaserexpandidoparaqualquernúmerodecaixasdeseleção,simplesmenteaumentandoolimitesuperiordosForloops).

Vocêpodeentãoalcançarocomportamentodesejadousandoasduasfunçõesaseguir:

Umafunçãoparaalternartodasascaixasdeseleçãodeopçõesparaumdeterminadovalor:

FunctionToggleAll(vAsInteger)DimiAsIntegerFori=1To3Controls("chk" & i).Value = v
    Next i
End Function

Uma função para testar se todas as opções estão ou não habilitadas e habilitar ou desabilitar a caixa de seleção Selecionar Tudo de acordo:

Function AllEnabled()
    Dim i As Integer, v As Integer: v = -1
    For i = 1 To 3
        v = v * Abs(Controls("chk" & i).Value)
    Next i
    chkA.Value = v
End Function

Em seguida, basta avaliar as funções acima de dentro dos manipuladores de eventos After Update para seus controles:

Private Sub chk1_AfterUpdate()
    AllEnabled
End Sub

Private Sub chk2_AfterUpdate()
    AllEnabled
End Sub

Private Sub chk3_AfterUpdate()
    AllEnabled
End Sub

Private Sub chkA_AfterUpdate()
    ToggleAll chkA
End Sub

Aqui, toda vez que o valor das caixas de seleção de opções individuais é alterado, a função AllEnabled verifica se todas as caixas de opções estão ativadas e define o valor da caixa de seleção Selecionar Tudo de acordo.

Quando o valor da caixa de seleção Select All ( chkA ) é modificado, a função ToggleAll é avaliada, simultaneamente habilitando ou desabilitando a configuração de todas as caixas de opção no formulário.

    
por 08.04.2018 / 19:25