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]Calcular corretamente antiguidade dos funcionário

    avatar
    JIR
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 138
    Registrado : 28/08/2016

    [Resolvido]Calcular corretamente antiguidade dos funcionário Empty [Resolvido]Calcular corretamente antiguidade dos funcionário

    Mensagem  JIR 26/4/2018, 22:29

    Olá Mestres,

    não entendo bem a construção de código VBA, mas copiei deste fórum código que informa por extenso a antiguidade de cada funcionário ou seja

    informa corretamente desde a data de admissão até cada dia atual, mas o que pretendo é :

    tenho dois campos um chamado de DATA ADMISSAO e outro Chamado DATA DEMISSAO, na caixa de texto txtAntig deveria calcular da seguinte forma

    quando a DATA DEMISSAO for nula, a antiguidade será calculada até ao dia da visualização, mas quando a DATA DEMISSAO tem alguma data registada, o calculo seria desde a DATA ADMISSAO até à DATA DEMISSAO.

    o código que estou a usar No actual Evento

    Private Sub Form_Current()
       
    'Calcula Antiguidade em Anos, Meses e Dias

       If Not IsNull(Me.DATA_ADMISSAO) Then
                  Me.txtAntig = Diff2Dates("DMY", Me.DATA_ADMISSAO, Date)
           
       Else
           Me.txtAntig = vbNullString
                 
       End If
    End Sub


    Meus agradecimentos

    José Silva
    wellingtoneo
    wellingtoneo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 294
    Registrado : 30/07/2012

    [Resolvido]Calcular corretamente antiguidade dos funcionário Empty Re: [Resolvido]Calcular corretamente antiguidade dos funcionário

    Mensagem  wellingtoneo 27/4/2018, 01:15

    Olá amigo!

    Eu usaria algo assim:

    If Not IsNull(Me!DATA_ADMISSAO) Then
    Me.txtAntig = DateDif("DMY", Me!DATA_ADMISSAO, iif(Not IsNull(Me!DATA_DEMISSAO), Me!DATA_DEMISSAO, Date))
    Else
    Me.txtAntig = vbNullString
    End if
    avatar
    JIR
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 138
    Registrado : 28/08/2016

    [Resolvido]Calcular corretamente antiguidade dos funcionário Empty Re: [Resolvido]Calcular corretamente antiguidade dos funcionário

    Mensagem  JIR 27/4/2018, 10:41

    Olá, muito obrigado pelo interesse em ajudar

    tentei essa pequena alteração, mas não deu certo, o comportamento no calculo manteve igual como se não existisse data no campo DATA DEMISSAO.

    vou estudar melhor e se não conseguir coloco aqui parte da BD


    Abraço

    José Silva
    wellingtoneo
    wellingtoneo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 294
    Registrado : 30/07/2012

    [Resolvido]Calcular corretamente antiguidade dos funcionário Empty Re: [Resolvido]Calcular corretamente antiguidade dos funcionário

    Mensagem  wellingtoneo 27/4/2018, 15:38

    Ok, segue um exemplo para estudos e aplicação baseado no código do mestre Avelino.

    bons estudos.
    Anexos
    [Resolvido]Calcular corretamente antiguidade dos funcionário Attachmentdatas.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (40 Kb) Baixado 10 vez(es)
    avatar
    JIR
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 138
    Registrado : 28/08/2016

    [Resolvido]Calcular corretamente antiguidade dos funcionário Empty Re: [Resolvido]Calcular corretamente antiguidade dos funcionário

    Mensagem  JIR 27/4/2018, 18:06

    Olá,

    obrigado por me ter enviado mais um exemplo que me irá ser útil, pois o código é mais pequeno para estudo e entendimento

    de qualquer forma quebrei mais um pouco a cabeça e fazendo pequenas alterações, mais por intuição, deu certo

    o wellingtoneo tinha  
    DateDif
    Me!

    eu tinha
    Diff2Dates
    Me.

    não entendi qual a diferença de ! para . mas irei estudar mais um pouco para saber a difereça

    If Not IsNull(Me.DATA_ADMISSAO) Then
    Me.txtAntig = Diff2Dates("DMY", Me.DATA_ADMISSAO, IIf(Not IsNull(Me.DATA_DEMISSAO), Me.DATA_DEMISSAO, Date))
    Else
    Me.txtAntig = vbNullString
    End If

    End Sub


    Grande Abraço e muito obrigado

    José Silva

    Conteúdo patrocinado


    [Resolvido]Calcular corretamente antiguidade dos funcionário Empty Re: [Resolvido]Calcular corretamente antiguidade dos funcionário

    Mensagem  Conteúdo patrocinado


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