MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


3 participantes

    [Resolvido]Bloquear todos os campos

    toyebom
    toyebom
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1128
    Registrado : 18/07/2012

    [Resolvido]Bloquear todos os campos Empty [Resolvido]Bloquear todos os campos

    Mensagem  toyebom 4/2/2014, 22:19

    Preciso bloquear todos os campos do form menos os botões, isso já consegui, falta-me o restante do código, até aqui julgo deve se:

    Private Sub Form_Current()
    If Me.CaixaCombinação885 = "Concluido" Then
    Me.Comando571.SetFocus
    ??????????????????????????????????????????????
    Else
    ??????????????????????????????????????????????
    Me.Comando283.SetFocus
    End If
    End Sub

    O que coloco nos campos vermelhos de ????????

    Obrigado

    para um campo apenas, coloco:

    Private Sub Form_Current()
    If Me.Rótulo615 <> "" Then
    Me.[Caixa de Combinação738].SetFocus
    Me.Rótulo615.Enabled = False
    Else
    Me.Rótulo615.Enabled = True
    Me.Rótulo615.SetFocus
    End If
    If Me.CaixaCombinação885 = "Concluido" Then
    Me.Comando571.SetFocus
    Me.Comando0.Enabled = False
    Else
    Me.Comando0.Enabled = True
    Me.Comando283.SetFocus
    End If
    End Sub


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Bloquear todos os campos Empty Re: [Resolvido]Bloquear todos os campos

    Mensagem  criquio 4/2/2014, 23:06

    Coloque dentro de um For... Next.

    Código:
    Dim C As Control

    For Each C In Me.Controls
        If C.ControlType <> acCommandBuntton Then
            C.Enabled = False
        End If
    Next


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    toyebom
    toyebom
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1128
    Registrado : 18/07/2012

    [Resolvido]Bloquear todos os campos Empty Bloquear todos os campos

    Mensagem  toyebom 4/2/2014, 23:47

    Ok criquio julgo não me ter explicado bem no inicio.

    Tenho uma caixa de combinação com as opções "Pendente"; "Inquérito";"Concluido" e o que quero é quando coloco "Concluido" bloqueie tudo (caixas de texto, de verificação e de combinação) menos os botões.
    Caso coloque "Pendente" ou "Inquérito" não bloqueie nada.

    Já consegui fazer mas se der para reduzir as linhas de comando era bom, dava menos trabalho em outros forms que tenho de fazer o mesmo. Caso não seja possível, paciência e obrigado na mesma.

    Fiz assim

    Private Sub CaixaCombinação93_AfterUpdate()
    If Me.CaixaCombinação93 = "Concluido" Then
    Me.Comando283.SetFocus
    Me.[Caixa de combinação738].Enabled = False
    Me.[Caixa de combinação669].Enabled = False
    Me.[Caixa de combinação665].Enabled = False
    Me.[Caixa de combinação76].Enabled = False
    Me.Caixadecombinação743.Enabled = False
    Me.Texto16.Enabled = False
    Me.Texto350.Enabled = False
    Me.CaixaCombinação852.Enabled = False
    Me.Texto346.Enabled = False
    Me.Texto18.Enabled = False
    Me.Rótulo206.Enabled = False
    Me.Texto207.Enabled = False
    Me.Texto91.Enabled = False
    Me.Texto354.Enabled = False
    Me.Texto356.Enabled = False
    Me.Texto287.Enabled = False
    Me.Texto56.Enabled = False
    Me.[Caixa de combinação770].Enabled = False
    Me.[Caixa de combinação773].Enabled = False
    Me.[Caixa de combinação774].Enabled = False
    Me.[Caixa de combinação304].Enabled = False
    Me.[Caixa de combinação305].Enabled = False
    Me.intr.Enabled = False
    Me.CP.Enabled = False
    Me.postocp.Enabled = False
    Me.Texto741.Enabled = False
    Me.Texto743.Enabled = False
    Me.Texto744.Enabled = False
    Me.Comando0.Enabled = False
    Me.OLEDesvinculado887.Visible = True
    Else
    Me.[Caixa de combinação738].Enabled = True
    Me.[Caixa de combinação669].Enabled = True
    Me.[Caixa de combinação665].Enabled = True
    Me.[Caixa de combinação76].Enabled = True
    Me.Caixadecombinação743.Enabled = True
    Me.Texto16.Enabled = True
    Me.Texto350.Enabled = True
    Me.CaixaCombinação852.Enabled = True
    Me.Texto346.Enabled = True
    Me.Texto18.Enabled = True
    Me.Rótulo206.Enabled = True
    Me.Texto207.Enabled = True
    Me.Texto91.Enabled = True
    Me.Texto354.Enabled = True
    Me.Texto356.Enabled = True
    Me.Texto287.Enabled = True
    Me.Texto56.Enabled = True
    Me.[Caixa de combinação770].Enabled = True
    Me.[Caixa de combinação773].Enabled = True
    Me.[Caixa de combinação774].Enabled = True
    Me.[Caixa de combinação304].Enabled = True
    Me.[Caixa de combinação305].Enabled = True
    Me.intr.Enabled = True
    Me.CP.Enabled = True
    Me.postocp.Enabled = True
    Me.Texto741.Enabled = True
    Me.Texto743.Enabled = True
    Me.Texto744.Enabled = True
    Me.Comando0.Enabled = True
    Me.OLEDesvinculado887.Visible = False
    End If
    End Sub


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Bloquear todos os campos Empty Re: [Resolvido]Bloquear todos os campos

    Mensagem  criquio 4/2/2014, 23:55

    É exatamente isso que o código acima fará. Basta colocar a condição If para o caso de ser "Pendente" ou não:

    Código:
        If C.ControlType <> acCommandBuntton Then
            If Me.NomeDaCombo.Value = "Pendente" Then
                C.Enabled = False
            Else
                C.Enabled = True
            End If
        End If


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    toyebom
    toyebom
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1128
    Registrado : 18/07/2012

    [Resolvido]Bloquear todos os campos Empty Bloquear todos os campos

    Mensagem  toyebom 5/2/2014, 00:14

    Coloquei o codigo aqui

    Private Sub Form_Current()
    Dim C As Control

    For Each C In Me.Controls
           If Me.CaixaCombinação93.Value = "Concluido" Then
               C.Enabled = False
           Else
               C.Enabled = True
           End If
       End If
    Next
    End Sub


    deu erro


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.
    toyebom
    toyebom
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1128
    Registrado : 18/07/2012

    [Resolvido]Bloquear todos os campos Empty Bloquear todos os campos

    Mensagem  toyebom 5/2/2014, 02:02

    Up


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Bloquear todos os campos Empty Re: [Resolvido]Bloquear todos os campos

    Mensagem  Dilson 5/2/2014, 02:30


    Function HabilitaCampos(argFrm As Form)
    'Objetivo: Padroniza a ativação das textBox, comboBox e CheckBox
    On Error GoTo trataerro
       Dim ctl As Control
       For Each ctl In argFrm.Controls
           With ctl
               Select Case .ControlType
                               
                  'Habilitará Caixas de texto
                   Case acTextBox
                           .Enabled = True
                           
                  'Habilitará Caixas de combinação
                   Case acComboBox
                           .Enabled = True
                           
                   'Habilitará Check box
                   Case acCheckBox
                           .Enabled = False
                                                             
               End Select
           End With    
       Next ctl
    sair:
       Exit Function
    trataerro:
       MsgBox "Erro: " & Err.Number & vbCrLf & Err.Description, vbCritical, "Aviso", Err.HelpFile, Err.HelpContext
       Resume sair:
    End Function



    Function DesabilitaCampos(argFrm As Form)
    'Objetivo: Padroniza a desativação das textBox, comboBox e CheckBox
    On Error GoTo trataerro
       Dim ctl As Control
       For Each ctl In argFrm.Controls
           With ctl
               Select Case .ControlType
                                     
                   'Desabilitará Caixas de texto
                   Case acTextBox
                           .Enabled = False
                           
                   'Desabilitará Caixas de combinação
                   Case acComboBox
                           .Enabled = False
                           
                   'Desabilitará Check box
                   Case acCheckBox
                           .Enabled = False
                                                             
               End Select
           End With          
       Next ctl
    sair:
       Exit Function
    trataerro:
       MsgBox "Erro: " & Err.Number & vbCrLf & Err.Description, vbCritical, "Aviso", Err.HelpFile, Err.HelpContext
       Resume sair:
    End Function



    Para usar chame a função assim a cada condição do if:

    Para habilitar:
    Call HabilitaCampos(Me)

    Para desabilitar:
    Call DesabilitaCampos(Me)
    toyebom
    toyebom
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1128
    Registrado : 18/07/2012

    [Resolvido]Bloquear todos os campos Empty Bloquear todos os campos

    Mensagem  toyebom 5/2/2014, 02:54

    Resultou obrigado mas para formes com poucos campos prefiro utilizar o meu código, ocupa menos espaço nesse caso.


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Bloquear todos os campos Empty Re: [Resolvido]Bloquear todos os campos

    Mensagem  Dilson 5/2/2014, 11:54

    Olá,

    Neste caso para não ter a percepção de muito espaço usado, salve as funções num módulo e as chame normalmente nos if's

    Obrigado por informar o resolvido.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Bloquear todos os campos Empty Re: [Resolvido]Bloquear todos os campos

    Mensagem  criquio 5/2/2014, 12:32

    Sempre que der erro informe que erro que é para ficar mais fácil adaptar. Já que o colega queria menos linhas de código, a princípio a função que passei funcionaria talvez apenas tratando o erro.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    toyebom
    toyebom
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1128
    Registrado : 18/07/2012

    [Resolvido]Bloquear todos os campos Empty Re: [Resolvido]Bloquear todos os campos

    Mensagem  toyebom 5/2/2014, 14:35

    Ok criquio peço desculpa.
     
    O erro que dá é na linha:
     
    C.Enabled = True
     
    Fica amarela
    Não consigo dar de momento mais informações visto não estar no meu pc e a base com que estou a trabalhar no momento já a adaptei com o código do Dilson mas obrigado na mesma.


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Bloquear todos os campos Empty Re: [Resolvido]Bloquear todos os campos

    Mensagem  criquio 5/2/2014, 15:58

    Então, isso é porque há controles que não tem a propriedade Enabled. Nesse caso um tratamento de erro seria suficiente para transpor a questão. Ou então, ao invés:

    Código:
    If C.ControlType <> acCommandButton Then

    colocaria os tipos de campos que quer bloquear:

    Código:
    If C.ControlType = acTextBox Or C.ControlType = acCombobox Then

    Dessa forma teria apenas campos que tenham a opção Enabled e não daria esse erro.

    Mas, se está resolvido, resolvido está Laughing


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.


    Conteúdo patrocinado


    [Resolvido]Bloquear todos os campos Empty Re: [Resolvido]Bloquear todos os campos

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/4/2024, 17:09