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


    [Resolvido]Transformar um numero em anos e dias!

    Lupércio
    Lupércio
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1143
    Registrado : 07/05/2011

    [Resolvido]Transformar um numero em anos e dias! Empty Transformar um numero em anos e dias!

    Mensagem  Lupércio 4/3/2012, 04:24

    Tenho tres campo "DataAdmissão", "DataDemissão" e "TempoServiço" subtraindo as duas datas obtive um resultado no campo "TempoServiço" só que gerou um numero, eu queria que no evento após atualizar dos campos me retornasse ou invés desse numero, me retornasse em anos e meses, que seria o tempo em que o funcionário trabalhou na empresa,,, alguem pode me ajudar, rsrs de novo eu pedindo ajuda...
    segue o aplicativo...
    Anexos
    [Resolvido]Transformar um numero em anos e dias! AttachmentOperação Datas.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (38 Kb) Baixado 45 vez(es)
    avatar
    Convidado
    Convidado


    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Convidado 4/3/2012, 04:30

    Tirou a noite para trabalhar colega.....de uma olhadinha neste exemplo e retorne...
    http://speedy.sh/9kYKW/GDI32.rar
    Lupércio
    Lupércio
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1143
    Registrado : 07/05/2011

    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Lupércio 4/3/2012, 05:06

    Funcionou meu amigo, muito obrigado pela atenção veja como ficou!

    Private Sub Admissão_AfterUpdate()On Error Resume Next
    Dim Msg As String
    If IsNull(DataAdmissão) Or DataAdmissão = "" Or IsNull(DataDemissão) Or DataDemissão = "" Then
    Msg = "Digite uma data válida nos campos" & vbCrLf _
    & "Data de Início e Data Término."
    ElseIf DataAdmissão.Value > DataDemissão.Value Then
    Msg = "A Data Término deve ser posterior" _
    & vbCrLf & "à Data de Início."
    Else
    TempoTrabalho = CalculaPeriodo(DataAdmissão, DataDemissão)
    Exit Sub
    End If
    'Retorna a msg de erro.
    MsgBox Msg, vbExclamation, "Erro"
    end sub




    Private Function CalculaPeriodo(Date1 As Date, Date2 As Date)
    'Desenvolvido por João Rodrigues (JR)
    '
    'Data: Mai/1999

    If Date1 > Date2 Then
    MsgBox "Data Inicial não pode ser maior que Data Final!", vbExclamation, "Erro"
    Exit Function
    End If

    Dim Anos, meses, dias
    Dim iAnos As Double, iMeses As Double, Intervalo As Double

    ' O resultado da diferença está em Double.
    Intervalo = Date2 - Date1

    ' Um ano tem exatamente 365,2425 dias, ou
    ' 365 dias, 5 horas, 49 minutos e 12 segundos.
    ' Ou aproximadamente 365,25 dias.
    iAnos = Intervalo / 365.2425
    Anos = Int(iAnos)
    iMeses = (iAnos - Anos) * 12
    meses = Int(iMeses)

    dias = DateDiff("d", DateSerial(DatePart("yyyy", Date1) + Anos, DatePart("m", Date1) + meses, Day(Date1)), Date2)

    Select Case dias
    Case -1
    dias = 30
    meses = meses - 1
    Case -2
    dias = 29
    meses = meses - 1
    Case 30 Or 31
    dias = 0
    meses = meses + 1
    End Select

    If meses = 12 Then
    meses = 0
    Anos = Anos + 1
    End If

    Fim:
    If Anos > 1 Then
    Anos = Anos & " anos "
    Else
    Anos = Anos & " ano "
    End If

    If meses > 1 Then
    meses = meses & " meses "
    Else
    meses = meses & " mês "
    End If

    If dias > 1 Then
    dias = dias & " dias"
    Else
    dias = dias & " dia"
    End If

    CalculaPeriodo = Anos & meses & dias
    End Function
    Lupércio
    Lupércio
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1143
    Registrado : 07/05/2011

    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Lupércio 4/3/2012, 05:07

    cafpr
    Obrigado amigo pela força, fico feliz com esse forum tenho aprendido muito com vocês, graças a humildade que os senhores tem ensinar o que sabem,,, um abraço.
    Lupércio
    Lupércio
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1143
    Registrado : 07/05/2011

    [Resolvido]Transformar um numero em anos e dias! Empty Transformar um numero em ano meses e minutos.

    Mensagem  Lupércio 4/3/2012, 06:11

    Companheiro
    Quando digito as datas no formulário novo ta funcionando normal, porém quando vou atualizar a data, trocar a (data digitada) está dando uma mensagem de erro, alguem pode me ajudar?
    segue o aplicativo!
    Anexos
    [Resolvido]Transformar um numero em anos e dias! AttachmentOperação Datas.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (68 Kb) Baixado 29 vez(es)
    avatar
    Convidado
    Convidado


    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Convidado 4/3/2012, 10:54

    Bom dia colega....qual versão esta usando???? no 2007 esta funcionando...
    Lupércio
    Lupércio
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1143
    Registrado : 07/05/2011

    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Lupércio 4/3/2012, 14:48

    versão 2010,,, acontece que ele funciona quando vc digita em um registro novo, mas se vc filtra um funcionário e for atualizar a data, aparece uma mensagem de erro..,
    Lupércio
    Lupércio
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1143
    Registrado : 07/05/2011

    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Lupércio 4/3/2012, 14:52

    Está dando erro, quando é filtrado um funcionário para atualizar a data, quando é alterada a data aparece a mensagem de erro...por favor testa ai,,, segue em anexo o aplicativo...
    Anexos
    [Resolvido]Transformar um numero em anos e dias! AttachmentOperação Datas.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (68 Kb) Baixado 17 vez(es)
    avatar
    Convidado
    Convidado


    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Convidado 4/3/2012, 16:03

    Colega o nome do campo DataDemissão esta na propriedade dataDemissao sem o ~ e o codigo esta lendo com o ~ acrescentei e deu certo...

    Dica: evitar usar acentuação e espaço entre as palavras. ajuda a identificar os controles e resolver erros.

    teste ai e retorne...
    Lupércio
    Lupércio
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1143
    Registrado : 07/05/2011

    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Lupércio 4/3/2012, 16:54

    estou com esse código após atualizar:

    Private Sub DataAdmissão_AfterUpdate()
    On Error Resume Next
    Dim Msg As String
    If IsNull(DataAdmissão) Or DataAdmissão = "" Or Not IsNull(DataDemissão) Or DataDemissão = "" Then
    Msg = "Digite uma data válida nos campos" & vbCrLf _
    & "Data de Início e Data Término."
    ElseIf DataAdmissão.Value > DataDemissão.Value Then
    Msg = "A Data Término deve ser posterior" _
    & vbCrLf & "à Data de Início."
    Else
    TempoServiço = CalculaPeriodo(DataAdmissão, DataDemissão)
    Exit Sub
    End If
    'Retorna a msg de erro.
    MsgBox Msg, vbExclamation, "Erro"

    End Sub

    VC não está me entendendo<
    quando faço um registro novo, funciona perfeito, porém se eu for atulizar, a data atualiza e faz o calculo e a tranformação em ano mês e dia,,,
    mas me da essa mensagem de erro: "Digite uma data valida nos campos, data de inicio e data de término" como faço para não aparecer essa mensagem,,,,pois fica feio aparecendo aquela mensagem.... entendeu os campos atualizam mais aparecem a mensagem..
    obrigado e me ajuda por favor....
    Lupércio
    Lupércio
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1143
    Registrado : 07/05/2011

    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Lupércio 4/3/2012, 19:06

    foi resolvido e obrigado a todos que me ajudaram!
    avatar
    Convidado
    Convidado


    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Convidado 4/3/2012, 21:50

    Colega boa tarde, desculpe a demora é que hoje é domingo Very Happy
    Então se resolveu fico contente, mas mesmo assim vou comentar: o exemplo que lhe passei o codigo é acionado ao click do botão de comando. Após salvo o registro e for feito alteração tem que clicar para mostrar o resultado. No seu caso foi adpatado no evento "após atualizar" então quando há alteração do registro salvo no campo dataAdmissão o codigo é disparado porque interpreta que não foi preenchido o codigo dataDemissão. Então mude o evento que esta no campo DataDemissão para "ao perder foco" e tabém coloque esse codigo por primeiro no modulo....
    abração colega

    http://speedy.sh/pa4Q8/Operacao-Datas.rar
    Lupércio
    Lupércio
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1143
    Registrado : 07/05/2011

    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Lupércio 4/3/2012, 22:28

    Funcionou perfeitamente, agora não da mais aquelas mensagens desagradáveis. Te agradeço de coração pela ajuda, tenho outro problema:

    exemplo DataAdmissão = 01/01/2010
    DataDemissão = 01/01/2011
    TempoTrabalho = 1ano 0mês 0dias ------------resultado correto que preciso.


    DataAdmissão = 01/01/2010
    DataDemissão = 01/01/2011
    TempoTrabalho = 0ano 11mês 30dias ------------resultado incorreto.


    fiz testes umas 50 vezes e funcionou beleza como no meu primeiro exemplo, só quando menos vc espera da o resultado do segundo exemplo errado, o que será que está acontecendo?
    tenho como me ajudar,,, segue o aplicativo.
    Anexos
    [Resolvido]Transformar um numero em anos e dias! AttachmentRESULTADO ERRADO.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (510 Kb) Baixado 36 vez(es)
    avatar
    Convidad
    Convidado


    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Convidad 4/3/2012, 22:39


    Acredito que este eventual cálculo incorreto possa ser uma característica da forma com que João Rodrigues elaborou sua função.

    Observe este comentário do JB na função:
    ' Um ano tem exatamente 365,2425 dias, ou
    ' 365 dias, 5 horas, 49 minutos e 12 segundos.
    ' Ou aproximadamente 365,25 dias.
    Lupércio
    Lupércio
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1143
    Registrado : 07/05/2011

    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Lupércio 4/3/2012, 22:50

    Certo norbs
    E como faço? O que você sugere?
    Há maioria das vezes está correto, o calculo só derrepente pumba... resultado sai errado, isso que não estou entendendo.
    avatar
    Convidado
    Convidado


    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Convidado 4/3/2012, 22:56

    Colega Lupercio, boa noite....o formulario a que refere-se é o funcionario ou funcionário1??? se é esta faltando a tabela Cadastro funcionários. reveja e disponibiliza.....
    avatar
    Convidad
    Convidado


    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Convidad 4/3/2012, 22:58


    Também uso há anos esta função. Ninguém reclamou!
    É usar assim mesmo, ou trabalhar a função - o que não é pra qualquer um, ou pesquisar por alguma alternativa.
    avatar
    Convidado
    Convidado


    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Convidado 4/3/2012, 23:03

    Colega enquanto estou aguardando o envio correto do ser bd, fiz vários testes no modelo que lhe enviei e esta correto. No exemplo que enviou não vi nada de codigo, o colega vez a alteração ou ao menos testou o exemplo corrigido que lhe enviei???
    avatar
    Convidado
    Convidado


    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Convidado 4/3/2012, 23:05

    Amigão Norberto, eu enviei o modelo adaptado a ele e testei e não encontrei erro, já que esta participando lhe pederia por gentileza que baixe e teste também.....
    Lupércio
    Lupércio
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1143
    Registrado : 07/05/2011

    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Lupércio 4/3/2012, 23:13

    eu não vi, vc enviou por favor se puder envia de novo o modelo que vc adaptou!
    avatar
    Convidad
    Convidado


    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Convidad 4/3/2012, 23:14


    Oi Clovis,
    Talvez houvesse mesmo algum problema no aplicativo do Lupércio, e que vc o tenha corrigido.
    Mas a função (já detectei isto) "muito de vez em quando" apresenta um mínimo de erro, o que nunca me causou problemas, e deve ser porque o ano nem sempre tem a mesma duração, e a função trabalha como se assim fosse.
    Lupércio
    Lupércio
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1143
    Registrado : 07/05/2011

    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Lupércio 4/3/2012, 23:25

    segue o bd, para vc analisar exclui os forms que não pertencia ao aplicativo.
    avatar
    Convidado
    Convidado


    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Convidado 4/3/2012, 23:28

    Ta certo Norberto. ha anos como este que fevereiro tem 29 dias é algo assim, mas muito, muito dificil dar erro....

    Colega Lupércio leia por gentileza o mensagem 12 . Esta bem explicado a adpatação como deve ser.
    Aguardo retorno seu....até mais colega....
    Lupércio
    Lupércio
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1143
    Registrado : 07/05/2011

    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Lupércio 4/3/2012, 23:48

    Colega cafpr
    Eu fiz a alteração sugerida por você, e parou de dar erro nas mensagens, depois que fiz a alteração não testei mais sobre as datas, como citei no exemplo.
    DataAdmissão = 01/01/2010
    DataDemissão = 01/01/2011
    TempoTrabalho = 1ano 0mês 0dias que é o resultado correto, notei que ele dava erros entre os periodos acima citado, com as demais datas não ocorreu erros, mais fico agradecido pela sua ajuda, agradeço ao Norberto e todos que tem me ajudado confesso que aprendi muito com vocês, agradeço ao cliquio, JPaulo, um abraço á todos vocês.
    avatar
    Convidado
    Convidado


    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Convidado 4/3/2012, 23:56

    Colega só duplicidade do codigo, comando 170, elemine....fiz vários testes e esta ok....
    No meu "ver" esta funcionando......mas teste você e retorne para sabermos se esta tudo ok e finalizarmos esse topico..
    mais alguma duvida colega???? se houver estamos aqui Very Happy .....
    Lupércio
    Lupércio
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1143
    Registrado : 07/05/2011

    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Lupércio 5/3/2012, 00:29

    Testei aqui ta 100% funcionando, quando estiver pronto o BD postarei aqui e não esquecerei da ajuda que deram. Valeu,,,,amigos.

    Conteúdo patrocinado


    [Resolvido]Transformar um numero em anos e dias! Empty Re: [Resolvido]Transformar um numero em anos e dias!

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 7/5/2024, 23:24