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


2 participantes

    Função IF Composta

    avatar
    midris
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 9
    Registrado : 18/11/2013

    Função IF Composta Empty Função IF Composta

    Mensagem  midris 27/1/2016, 12:32

    Bom dia! Preciso de outra ajuda

    Como posso construir uma função nas seguintes especificações abaixo:

    SE o funcionário for FREE e a CONTA CORRENTE for = TAXI , a aba VISITA deverá ser desabilitada, SALÁRIO desabilitada, OUTROS habilidada e DATA DE VENCIMENTO desabilitada

    SE o funcionário for FREE e a CONTA CORRENTE for = VISITA, a aba VISITA deverá ser habilidada, SALÁRIO desabilitada, OUTROS desabilitada e DATA DE VENCIMENTO desabilitada ... e assim tenho várias condições, onde imagino que só colocaria uma abaixo da outra...

    Caso fosse somente uma condição eu consegui, segue abaixo:

    If Me.TIPO_FUNC.Value = "FREE" Then
    Me.VISITA.Visible = True
    Me.SALÁRIO.Visible = False
    Me.OUTRO.Visible = True
    Me.DATA_DE_VENCIMENTO.Visible = False
    End If

    preciso acoplar a outra condição nesta situação...

    Obrigado!
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    Função IF Composta Empty Re: Função IF Composta

    Mensagem  Alvaro Teixeira 27/1/2016, 12:43

    Olá Michele Silva, será algo conforme abaixo, teste assim:

    Código:
    If Me.TIPO_FUNC.Value = "FREE" And Me.CONTA_CORRENTE.Value = "TAXI" Then
        Me.VISITA.Visible = False
        Me.SALÁRIO.Visible = False
        Me.OUTRO.Visible = True
        Me.DATA_DE_VENCIMENTO.Visible = False
    ElseIf Me.TIPO_FUNC.Value = "FREE" And Me.CONTA_CORRENTE.Value = "VISITA" Then
        Me.VISITA.Visible = True
        Me.SALÁRIO.Visible = False
        Me.OUTRO.Visible = False
        Me.DATA_DE_VENCIMENTO.Visible = False
    End If


    Abraço
    avatar
    midris
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 9
    Registrado : 18/11/2013

    Função IF Composta Empty Função IF Composta

    Mensagem  midris 27/1/2016, 17:12

    Olá!
    Fiz a tentativa, porém a Aba permanece constante VISITA... coloquei anexo o banco para verificação..

    Perceberá que em conta corrente tenho diversas opções que determinam qual aba vai estar ativa ou não.

    O formulário para verificação é PAGAMENTOS_V1.

    Muito Obrigado pela atenção!
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    Função IF Composta Empty Re: Função IF Composta

    Mensagem  Alvaro Teixeira 27/1/2016, 17:31

    Olá, faltou anexo.
    Abraço
    avatar
    midris
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 9
    Registrado : 18/11/2013

    Função IF Composta Empty Anexo

    Mensagem  midris 27/1/2016, 17:44

    Desculpe... segue
    Anexos
    Função IF Composta AttachmentFINANCEIRO_VFINAL_V2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (292 Kb) Baixado 18 vez(es)
    avatar
    midris
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 9
    Registrado : 18/11/2013

    Função IF Composta Empty Ajuda!

    Mensagem  midris 28/1/2016, 15:53

    Alguém conseguiu analisar a minha solicitação?

    Obrigado!
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    Função IF Composta Empty Re: Função IF Composta

    Mensagem  Alvaro Teixeira 28/1/2016, 17:04

    Olá Michele Silva,
    Quando fiz o código desconhecia o nome dos campos, você deveria ajustar.

    No código coloquei CONTA_CORRENTE , mas como podemos ver abaixo tem espaço.
    Função IF Composta 3096b7s


    O valor desse mesmo campo é numerico, o que visualizamos é o da caixa de listagem, para isso altere o código por este e teste:
    Código:
    If Me.TIPO_FUNC.Value = "FREE" And Me.[CONTA CORRENTE].Column(1) = "TAXI" Then
        Me.VISITA.Visible = False
        Me.SALÁRIO.Visible = False
        Me.OUTRO.Visible = True
        Me.DATA_DE_VENCIMENTO.Visible = False
    ElseIf Me.TIPO_FUNC.Value = "FREE" And Me.[CONTA CORRENTE].Column(1) = "VISITA" Then
        Me.VISITA.Visible = True
        Me.SALÁRIO.Visible = False
        Me.OUTRO.Visible = False
        Me.DATA_DE_VENCIMENTO.Visible = False
    End If

    Só consegui responder hoje, pois em casa só tenho Access2007.
    Abraço
    avatar
    midris
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 9
    Registrado : 18/11/2013

    Função IF Composta Empty Função IF Composta

    Mensagem  midris 28/1/2016, 18:58

    Olá!
    Muito obrigado pelo retorno, fiz os testes.. porém ele só atualiza após eu sair e voltar ao registro...

    o código está assim:

    Private Sub Form_Current()

    TIPO.Value = TIPO_FUNC.Value

    If Me.TIPO_FUNC.Value = "FREE" And Me.[CONTA CORRENTE].Column(1) = "" Then
    Me.VISITA.Visible = False
    Me.SALÁRIO.Visible = False
    Me.OUTRO.Visible = False
    Me.DATA_DE_VENCIMENTO.Visible = False
    ElseIf Me.TIPO_FUNC.Value = "FREE" And Me.[CONTA CORRENTE].Column(1) = "VISITA" Then
    Me.VISITA.Visible = True
    Me.SALÁRIO.Visible = False
    Me.OUTRO.Visible = False
    Me.DATA_DE_VENCIMENTO.Visible = False
    ElseIf Me.TIPO_FUNC.Value = "FREE" And Me.[CONTA CORRENTE].Column(1) = "TESTE ADMISSIONAL" Then
    Me.VISITA.Visible = False
    Me.SALÁRIO.Visible = False
    Me.OUTRO.Visible = True
    Me.DATA_DE_VENCIMENTO.Visible = False
    ElseIf Me.TIPO_FUNC.Value = "FREE" And Me.[CONTA CORRENTE].Column(1) = "PASSAGEM" Then
    Me.VISITA.Visible = False
    Me.SALÁRIO.Visible = False
    Me.OUTRO.Visible = True
    Me.DATA_DE_VENCIMENTO.Visible = False
    ElseIf Me.TIPO_FUNC.Value = "FREE" And Me.[CONTA CORRENTE].Column(1) = "TAXI" Then
    Me.VISITA.Visible = False
    Me.SALÁRIO.Visible = False
    Me.OUTRO.Visible = True
    Me.DATA_DE_VENCIMENTO.Visible = False

    End If



    End Sub

    'Atualiza o campo Tipo na Tabela Pagamentos

    Private Sub Combinação173_AfterUpdate()
    If Me.TIPO_FUNC.Value = "FREE" And Me.[CONTA CORRENTE].Column(1) = "" Then
    Me.VISITA.Visible = False
    Me.SALÁRIO.Visible = False
    Me.OUTRO.Visible = False
    Me.DATA_DE_VENCIMENTO.Visible = False
    ElseIf Me.TIPO_FUNC.Value = "FREE" And Me.[CONTA CORRENTE].Column(1) = "VISITA" Then
    Me.VISITA.Visible = True
    Me.SALÁRIO.Visible = False
    Me.OUTRO.Visible = False
    Me.DATA_DE_VENCIMENTO.Visible = False
    ElseIf Me.TIPO_FUNC.Value = "FREE" And Me.[CONTA CORRENTE].Column(1) = "TESTE ADMISSIONAL" Then
    Me.VISITA.Visible = False
    Me.SALÁRIO.Visible = False
    Me.OUTRO.Visible = True
    Me.DATA_DE_VENCIMENTO.Visible = False
    ElseIf Me.TIPO_FUNC.Value = "FREE" And Me.[CONTA CORRENTE].Column(1) = "PASSAGEM" Then
    Me.VISITA.Visible = False
    Me.SALÁRIO.Visible = False
    Me.OUTRO.Visible = True
    Me.DATA_DE_VENCIMENTO.Visible = False
    ElseIf Me.TIPO_FUNC.Value = "FREE" And Me.[CONTA CORRENTE].Column(1) = "TAXI" Then
    Me.VISITA.Visible = False
    Me.SALÁRIO.Visible = False
    Me.OUTRO.Visible = True
    Me.DATA_DE_VENCIMENTO.Visible = False
    End If


    End Sub
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    Função IF Composta Empty Re: Função IF Composta

    Mensagem  Alvaro Teixeira 28/1/2016, 22:27

    Olá, antes de avançar, vamos analisar o seu código

    If Me.TIPO_FUNC.Value = "FREE" And Me.[CONTA CORRENTE].Column(1) = "" Then
    Me.VISITA.Visible = False
    Me.SALÁRIO.Visible = False
    Me.OUTRO.Visible = False
    Me.DATA_DE_VENCIMENTO.Visible = False
    ElseIf Me.TIPO_FUNC.Value = "FREE" And Me.[CONTA CORRENTE].Column(1) = "VISITA" Then
    Me.VISITA.Visible = True
    Me.SALÁRIO.Visible = False
    Me.OUTRO.Visible = False
    Me.DATA_DE_VENCIMENTO.Visible = False
    ElseIf Me.TIPO_FUNC.Value = "FREE" And Me.[CONTA CORRENTE].Column(1) = "TESTE ADMISSIONAL" Then
    Me.VISITA.Visible = False
    Me.SALÁRIO.Visible = False
    Me.OUTRO.Visible = True
    Me.DATA_DE_VENCIMENTO.Visible = False
    ElseIf Me.TIPO_FUNC.Value = "FREE" And Me.[CONTA CORRENTE].Column(1) = "PASSAGEM" Then
    Me.VISITA.Visible = False
    Me.SALÁRIO.Visible = False
    Me.OUTRO.Visible = True
    Me.DATA_DE_VENCIMENTO.Visible = False
    ElseIf Me.TIPO_FUNC.Value = "FREE" And Me.[CONTA CORRENTE].Column(1) = "TAXI" Then
    Me.VISITA.Visible = False
    Me.SALÁRIO.Visible = False
    Me.OUTRO.Visible = True
    Me.DATA_DE_VENCIMENTO.Visible = False


    Repare por cores, os campos estão repetidos a fazer a mesma coisa.

    Assim ficaria melhor fazendo exactamente o mesmo, veja:
    Código:
    'verifica se é o tipo FREE
    If Me.TIPO_FUNC.Value = "FREE" Then
        'comuns a todos
        Me.SALÁRIO.Visible = False
        Me.DATA_DE_VENCIMENTO.Visible = False
        
        If Me.[CONTA CORRENTE].Column(1) = "" Then
            Me.VISITA.Visible = False
            Me.OUTRO.Visible = False
        ElseIf Me.[CONTA CORRENTE].Column(1) = "VISITA" Then
            Me.VISITA.Visible = True
            Me.OUTRO.Visible = False
        ElseIf Me.[CONTA CORRENTE].Column(1) = "TESTE ADMISSIONAL" Then
            Me.VISITA.Visible = False
            Me.OUTRO.Visible = True
        ElseIf Me.[CONTA CORRENTE].Column(1) = "PASSAGEM" Then
            Me.VISITA.Visible = False
            Me.OUTRO.Visible = True
        ElseIf Me.[CONTA CORRENTE].Column(1) = "TAXI" Then
            Me.VISITA.Visible = False
            Me.OUTRO.Visible = True
        Else
            'pode ainda colocar aqui as outras instruções
            'caso não seja de nenhum tipo acima ("",VISITA,TESTE...TAXI)
        End If
    End If

    Quanto à mudança, verifique melhor se as condições estão correctas.
    Caso tenha dificuldade teste apenas com um campo.

    Mais uma coisinha, não me leve a mal, mas tente começar a fazer Indentação no código.
    Tal como eu fiz, vai ver que fica mais fácil a leitura.
    Abraço
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    Função IF Composta Empty Re: Função IF Composta

    Mensagem  Alvaro Teixeira 28/1/2016, 22:58

    Olá de novo,
    A questão de actualizar, pode ser resolvida nos campos envolvidos no evento AfterUpdate.
    Tal como já tem na caixa de combinação com o nome Combinação173 (FAVORECIDO)

    Para não repetir o mesmo código várias vezes criei uma função ActSeparadores (actualizar separadores)
    Assim nos campos envolvidos em que é necessário actualizar os separadores, é só chamar a função no evento AfterUpdate.
    Usando o código para o efeito: Call ActSeparadores

    Reponha no seu projecto pelo código abaixo e teste:

    Código:
    Option Compare Database

    Private Sub Form_Load()
        Me.TIPO_FUNC.SetFocus
    End Sub

    Private Sub Form_Current()
        Call ActSeparadores
    End Sub

    'Atualiza o campo Tipo na Tabela Pagamentos
    Private Sub Combinação173_AfterUpdate()
        Call ActSeparadores
    End Sub


    Private Sub TIPO_FUNC_AfterUpdate()
        Call ActSeparadores
    End Sub

    Private Sub CONTA_CORRENTE_AfterUpdate()
        Call ActSeparadores
        Me.CENTRO_DE_CUSTO.Requery
    End Sub

    Private Sub CONTA_RAZÃO_AfterUpdate()
        Me.ORGANIZAÇÃO.Requery
        Me.ORGANIZAÇÃO.SetFocus
        Me.ORGANIZAÇÃO.Dropdown
    End Sub

    Function ActSeparadores()
        TIPO.Value = TIPO_FUNC.Value
        
        'verifica se é o tipo FREE
        If Me.TIPO_FUNC.Value = "FREE" Then
            'comuns a todos
            Me.SALÁRIO.Visible = False
            Me.DATA_DE_VENCIMENTO.Visible = False
            
            If Me.[CONTA CORRENTE].Column(1) = "" Then
                Me.VISITA.Visible = False
                Me.OUTRO.Visible = False
            ElseIf Me.[CONTA CORRENTE].Column(1) = "VISITA" Then
                Me.VISITA.Visible = True
                Me.OUTRO.Visible = False
            ElseIf Me.[CONTA CORRENTE].Column(1) = "TESTE ADMISSIONAL" Then
                Me.VISITA.Visible = False
                Me.OUTRO.Visible = True
            ElseIf Me.[CONTA CORRENTE].Column(1) = "PASSAGEM" Then
                Me.VISITA.Visible = False
                Me.OUTRO.Visible = True
            ElseIf Me.[CONTA CORRENTE].Column(1) = "TAXI" Then
                Me.VISITA.Visible = False
                Me.OUTRO.Visible = True
            Else
                'pode ainda colocar aqui as outras instruções
                'caso não seja de nenhum tipo acima ("",VISITA,TESTE...TAXI)
            End If
        End If

    End Function

    Abraço
    avatar
    midris
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 9
    Registrado : 18/11/2013

    Função IF Composta Empty Funcão IF Composto

    Mensagem  midris 1/2/2016, 08:50

    Muito obrigado mesmo!! Deu certo o código!

    Caso eu queria que quando eu carrregue formulário não apareça nenhuma aba da guia aberta, eu coloco o IF no form_load??

    Private Sub Form_Load()
    Me.TIPO_FUNC.SetFocus
    End Sub

    Exemplo: Se CONTA CORRENTES estiver vazio, DESABILITE VISITA, SALÁRIO E OUTRO.


    Obrigado!

    Queria agradecer todo apoio que está dando, e parabéns ao site por ter pessoas realmente que estão dispostas a passar seu conhecimento!
    Grata!!
    Michele Idris
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    Função IF Composta Empty Re: Função IF Composta

    Mensagem  Alvaro Teixeira 1/2/2016, 16:47

    Olá, antes de tudo obrigado pelo retorno.
    Isto é que é ser MaximoAccess.  Wink

    Quanto à questão coloque por defeito Visivel=Não nos separadores:
    VISITA,SALÁRIO e OUTRO,
    Função IF Composta 724m

    Como já tem no actual a chamar a função, deve funcionar
    Código:
    Private Sub Form_Current()
        Call ActSeparadores
    End Sub

    Abraço

    Conteúdo patrocinado


    Função IF Composta Empty Re: Função IF Composta

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 21:58