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

    [Resolvido]Condição IF e else

    avatar
    Renato F Araújo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 50%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 52
    Registrado : 02/08/2017

    [Resolvido]Condição IF e else Empty [Resolvido]Condição IF e else

    Mensagem  Renato F Araújo 12/7/2022, 01:53

    Boa noite atodos.

    Peço ajuda mais uma vez para fazer uma função que não estou conseguindo realizar de um jeito mais pratico para a pessoa utuilizar...

    tenho um formulario de folha de ponto onde tenho os campo que quero fazer a programação em vba...

    campos visiveis

    DATA   onde é informado a data da obra
    DIA_SEMANA   onde preenchido automaticamente com o dia da semana baseado na data do campo data. ex: seg, ter, qua, qui, sex, sá, dom
    Nº_OBRA onde é selecionado o numero da obra em uma caixa de combinação que busca as informalções na tabela OBRA
    VALOR_HORA este deve receber o valor dos campos HORA_NORMAL, HORA_50 ou HORA_100 após selecionar o numero da obra no campo Nº_OBRA

    e campos ocultos

    HORA_NORMAL equivale ao valor da hora normal trabalhada
    HORA_50          equivale ao valor da hora extra 50%
    HORA_100        equivale ao valor da hora etra 100%

    Coloquei o seguinte codigo no evento aóps atualizar do campo Nº_OBRA
    Private Sub N_OBRA_AfterUpdate()
    On Error Resume Next
    If Me.DIA_SEMANA = "seg" Or "ter" Or "qua" Or "qui" Then
    Me.VALOR_HORA = Me.HORA_NORMAL
    Else
    If Me.DIA_SEMANA = "sáb" Then
    Me.VALOR_HORA = Me.HORA_50
    Else
    If Me.DIA_SEMANA = "dom" Then
    Me.VALOR_HORA = Me.HORA_100
    Else
    End If
    End If
    End If
    End Sub

    o que acontece é que após atualizar o campo Nº_OBRA o sistema só pega o valor da HORA_NORMAL que é a primeira leitura a ser realizada, parece não esta reconhecendo o que esta no campo DIA_SEMANA.
    Finformática
    Finformática
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 847
    Registrado : 23/03/2010

    [Resolvido]Condição IF e else Empty Re: [Resolvido]Condição IF e else

    Mensagem  Finformática 12/7/2022, 03:26

    Caro Amigo,

    Tenta assim: If Me.Dia_Semana = "seg" Or Me.Dia_Semana = "ter" Or Me.Dia_Semana = "qua" Or Me.Dia_Semana = "qui" Or Me.Dia_Semana = "sex" Then

    Abraços


    avatar
    Renato F Araújo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 50%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 52
    Registrado : 02/08/2017

    [Resolvido]Condição IF e else Empty Condição IF e else

    Mensagem  Renato F Araújo 12/7/2022, 06:27

    Obrigado pela ajuda... coloquei o seguinte codigo abaixo... e agora não executa nenhuma ação

    campos como esta no formulario;

    DATA DIA Nº/OBRA
    12/07/2022 seg 44589

    após selecionar o numero da obra onde este capo é uma combo box relacionada a tabela obras. o campo VALOR_HORA deveria receber os valores dos campos HORA_NORMAL, HORA_50 ou HORA_100 conforme o dia do campo DIA_SEMANA

    Private Sub N_OBRA_AfterUpdate()
    On Error Resume Next
    If Me.DIA_SEMANA = "seg" Or Me.DIA_SEMANA = "ter" Or Me.DIA_SEMANA = "qua" Or Me.DIA_SEMANA = "qui" Or Me.DIA_SEMANA = "sex" Then
    Me.VALOR_HORA = Me.HORA_NORMAL
    Else
    If Me.DIA_SEMANA = "sáb" Then
    Me.VALOR_HORA = Me.HORA_50
    Else
    If Me.DIA_SEMANA = "dom" Then
    Me.VALOR_HORA = Me.HORA_100
    Else
    End If
    End If
    End If
    End Sub

    Obs. o campo DIA_SEMANA recebe a data do campo DATA_OBRA onde na propriedade do formato eu coloquei ddd para converter a data em texto... sendo assim o codigo deveria ler o que esta no campo DIA_SEMANA e efetuar as condições do codigo acima... mas não o faz... criei uma caixa de combinação com os dias da semana e ao selecionar o dia o codigo que coloquei neste campo apos atualizar funciona.

    Private Sub DIA_PONTO_AfterUpdate()
    On Error Resume Next
    If Me.DIA_PONTO = "NORMAL" Then
    Me.VALOR_HORA = Me.HORA_NORMAL
    Else
    If Me.DIA_PONTO = "SÁBADO" Then
    Me.VALOR_HORA = Me.HORA_50
    Else
    If Me.DIA_PONTO = "DOMINGO" Or "FERIADO" Then
    Me.VALOR_HORA = Me.HORA_100
    End If
    End If
    End If
    End Sub
    avatar
    Renato F Araújo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 50%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 52
    Registrado : 02/08/2017

    [Resolvido]Condição IF e else Empty Condição IF e else ( Resolvido )

    Mensagem  Renato F Araújo 12/7/2022, 09:23

    Depois de fazaer varios testes, consegui realizar todas as funções que preciva com os segunetes pontos...
    1- Na tabela tbl_folha_de_ponto o campo que deve ser a base de toda função. DIA_SEMANA esta como datahora e no formato esta ddd
    2- coloquei o codigo abaixo no campo DATA_OBRA e tudo aconteceu como queria...
    Private Sub DATA_PONTO_AfterUpdate()
    On Error Resume Next
    Me.DIA_SEMANA = Me.DATA_PONTO

    If Me.DIA_SEMANA = 44753 Or Me.DIA_SEMANA = 44754 Or Me.DIA_SEMANA = 44755 Or Me.DIA_SEMANA = 44756 Then
    Me.CARGA_HORARIA = "09:00"
    Me.ENTRADA = "07:00"
    Me.SAIDA_ALMOCO = "12:00"
    Me.RETORNO_ALMOCO = "13:00"
    Me.SAIDA = " 17:00"
    Me.VALOR_HORA = Me.HORA_NORMAL
    Me.TOTAL_HORAS_TRABALHADAS = ([SAIDA] - [RETORNO_ALMOCO]) + ([SAIDA_ALMOCO] - [ENTRADA])
    Me.TOTAL_HORAS_VALOR = (Me.TXT_TOTAL_HORAS_EXTRAS * Me.VALOR_HORA)
    Me.TOTAL_HORAS_EXTRAS = (Me.TOTAL_HORAS_TRABALHADAS - Me.CARGA_HORARIA)

    ElseIf Me.DIA_SEMANA = 44757 Then
    Me.CARGA_HORARIA = "08:00"
    Me.ENTRADA = "07:00"
    Me.SAIDA_ALMOCO = "12:00"
    Me.RETORNO_ALMOCO = "13:00"
    Me.SAIDA = " 16:00"
    Me.VALOR_HORA = Me.HORA_NORMAL
    Me.TOTAL_HORAS_TRABALHADAS = ([SAIDA] - [RETORNO_ALMOCO]) + ([SAIDA_ALMOCO] - [ENTRADA])
    Me.TOTAL_HORAS_VALOR = (Me.TXT_TOTAL_HORAS_EXTRAS * Me.VALOR_HORA)
    Me.TOTAL_HORAS_EXTRAS = (Me.TOTAL_HORAS_TRABALHADAS - Me.CARGA_HORARIA)

    ElseIf Me.DIA_SEMANA = 44758 Then
    Me.TOTAL_HORAS_EXTRAS = Me.TOTAL_HORAS_TRABALHADAS
    Me.VALOR_HORA = Me.HORA_50
    Me.CARGA_HORARIA = "00:00"
    Me.ENTRADA = "00:00"
    Me.SAIDA_ALMOCO = "00:00"
    Me.RETORNO_ALMOCO = "00:00"
    Me.SAIDA = " 00:00"

    ElseIf Me.DIA_SEMANA = 44752 Then
    Me.TOTAL_HORAS_EXTRAS = Me.TOTAL_HORAS_TRABALHADAS
    Me.VALOR_HORA = Me.HORA_100
    Me.CARGA_HORARIA = "00:00"
    Me.ENTRADA = "00:00"
    Me.SAIDA_ALMOCO = "00:00"
    Me.RETORNO_ALMOCO = "00:00"
    Me.SAIDA = " 00:00"

    Else
    End If
    Me.SAIDA.SetFocus
    End Sub

    *Observe. que no lugar de colocar o nome do dia na programação acima, coloquei o codigo referente a cada dia da semana.
    DOMINGO 44752
    SEGUNDA 44753
    TERCA 44754
    QUARTA 44755
    QUINTA 44756
    SEXTA 44757
    SÁBADO 44758
    Finformática
    Finformática
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 847
    Registrado : 23/03/2010

    [Resolvido]Condição IF e else Empty Re: [Resolvido]Condição IF e else

    Mensagem  Finformática 12/7/2022, 16:58

    Olá Amigo,

    Veja aqui um modo bem simples sem usar código do dia da semana.

    Abraços
    Anexos
    [Resolvido]Condição IF e else AttachmentObrasSimples.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (50 Kb) Baixado 3 vez(es)
    avatar
    Renato F Araújo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 50%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 52
    Registrado : 02/08/2017

    [Resolvido]Condição IF e else Empty Condição IF e else ( Resolvido )

    Mensagem  Renato F Araújo 12/7/2022, 21:15

    Boa tarde...
    muito obrigado pel atenção. consegui resolver todas as funções até o momento fazendo varios testes... caso apareça outras duvidas espero poder contar com todos...

      Data/hora atual: 24/9/2022, 19:50