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]Montar consulta para calculo de diferença entre datas

    alcides
    alcides
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 116
    Registrado : 17/04/2011

    [Resolvido]Montar consulta para calculo de diferença entre datas Empty Montar consulta para calculo de diferença entre datas

    Mensagem  alcides 14/9/2011, 00:10

    Estou com problema para montar a seguinte consulta:

    Tenho os campos:
    DtRegistro/DtAcolhim/DtEfetiva/DtSaida/Hoje:Data() (para o caso de não haver data de saida)

    preciso adicionar os seguintes campos calculados:
    diferença: DtRegistro X DtAcolhim
    diferença: DtAcolhim X DtEfetiva
    diferença: DtEfetiva X DtSaida
    diferença: DtAcolhim X DtSaida

    diante das seguintes possibilidades:
    1. DtRegistro(ok)/DtAcolhim(ok)/DtEfetiva(ok)/DtSaida(ok)/Hoje(ok) = Saiu depois de efetivado
    2. DtRegistro(ok)/DtAcolhim(ok)/DtEfetiva(ok)/DtSaida("")/Hoje(ok) = Em Atendimento
    3. DtRegistro(ok)/DtAcolhim(ok)/DtEfetiva("")/DtSaida(ok)/Hoje(ok) = Saiu sem efetivação
    4. DtRegistro(ok)/DtAcolhim(ok)/DtEfetiva("")/DtSaida("")/Hoje(ok) = Aguardando efetivação
    5. DtRegistro(ok)/DtAcolhim("")/DtEfetiva("")/DtSaida(ok)/Hoje(ok) = Nem chegou a ser entrevistado
    6. DtRegistro(ok)/DtAcolhim("")/DtEfetiva("")/DtSaida("")/Hoje(ok) = Aguardando entrevista

    a função que estou usando para o calculo é:
    Public 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

    Se alguem puder me dar um força na montagem, agradeço.

    um abraço.

    avatar
    Convidado
    Convidado


    [Resolvido]Montar consulta para calculo de diferença entre datas Empty Re: [Resolvido]Montar consulta para calculo de diferença entre datas

    Mensagem  Convidado 14/9/2011, 11:24

    Se puder post parte do bd para que possamos visualizar melhor o que pretende..

    Cumprimentos
    alcides
    alcides
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 116
    Registrado : 17/04/2011

    [Resolvido]Montar consulta para calculo de diferença entre datas Empty Re: [Resolvido]Montar consulta para calculo de diferença entre datas

    Mensagem  alcides 14/9/2011, 17:12

    Oi Harysohn. obrigado pelo post.

    Não consegui anexar o arquivo, então segue link para o mesmo.

    http://dl.dropbox.com/u/40966186/bd3.mdb

    lembrando os calculos que precisam ser feitos:
    diferença: DtRegistro X DtAcolhim
    diferença: DtAcolhim X DtEfetiva
    diferença: DtEfetiva X DtSaida
    diferença: DtAcolhim X DtSaida


    um abraço e obrigado.
    avatar
    Convidado
    Convidado


    [Resolvido]Montar consulta para calculo de diferença entre datas Empty Re: [Resolvido]Montar consulta para calculo de diferença entre datas

    Mensagem  Convidado 14/9/2011, 19:38

    Poderia explicar mais sobre isto:

    diante das seguintes possibilidades:
    1. DtRegistro(ok)/DtAcolhim(ok)/DtEfetiva(ok)/DtSaida(ok)/Hoje(ok) = Saiu depois de efetivado
    2. DtRegistro(ok)/DtAcolhim(ok)/DtEfetiva(ok)/DtSaida("")/Hoje(ok) = Em Atendimento
    3. DtRegistro(ok)/DtAcolhim(ok)/DtEfetiva("")/DtSaida(ok)/Hoje(ok) = Saiu sem efetivação
    4. DtRegistro(ok)/DtAcolhim(ok)/DtEfetiva("")/DtSaida("")/Hoje(ok) = Aguardando efetivação
    5. DtRegistro(ok)/DtAcolhim("")/DtEfetiva("")/DtSaida(ok)/Hoje(ok) = Nem chegou a ser entrevistado
    6. DtRegistro(ok)/DtAcolhim("")/DtEfetiva("")/DtSaida("")/Hoje(ok) = Aguardando entrevista

    avatar
    Convidado
    Convidado


    [Resolvido]Montar consulta para calculo de diferença entre datas Empty Re: [Resolvido]Montar consulta para calculo de diferença entre datas

    Mensagem  Convidado 14/9/2011, 19:47

    Fiz para a primeira situação..
    Abra a consulta e observe..

    http://dl.dropbox.com/u/26441349/bd3.accdb

    Qualquer coisa apite..

    Cumprimentos
    alcides
    alcides
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 116
    Registrado : 17/04/2011

    [Resolvido]Montar consulta para calculo de diferença entre datas Empty Re: [Resolvido]Montar consulta para calculo de diferença entre datas

    Mensagem  alcides 14/9/2011, 23:25

    Olá Harysohn.
    obrigado pelo retorno, mas quem me dera fosse simples assim.

    SELECT Caso.CasoId, Caso.CodigoPre, Caso.CodEfetiva, Caso.DtRegistro, Caso.DtAcolhim, Caso.DtEfetiva, Caso.DtSaida, Date() AS DTAtual, CalculaPeriodo([DtRegistro],[DtAcolhim]) AS Dif_DtReg_DtaAcolhi
    FROM Caso;

    como voce deve ter visto na tabela, existem várias situações em que os campos DtAcolhim e/ou DtSaida são nulos.
    então eu tenho que prever o seguinte:
    1. DtRegistro(ok) DtAcolhim(ok) tudo redondo campo calculado com essas duas datas.
    2. DtRegistro(ok) DtAcolhim("") DtSaida(ok) Uso DtSaida para o calculo, pois saiu sem passar pela fase anterior.
    3. DtRegistro(ok) DtAcolhim("") DtSaida("") DTAtual(ok) Uso DTAtual, pois nunca vai ser NULO e vai ser crescente pois significa que aguarda a ocorrência de DtAcolhim ou DtSaida.

    Espero ter esclarecido e continuo tentando por aqui a solução e aguardando auxilio.

    Em Tempo, acho que ficaria melhor explicado assim:
    SELECT Caso.CasoId, Caso.CodigoPre, Caso.CodEfetiva, Caso.DtRegistro, Caso.DtAcolhim, Caso.DtEfetiva, Caso.DtSaida, Date() AS DTAtual, CalculaPeriodo([DtRegistro],[DtAcolhim]) ---"mas se DtAcolhim for NULO e DtSaida não for, Calcule por ela e se DtAcolhim for NULO e DtSaida TAMBÉM, Calcule por DTAtual"--- AS Dif_DtReg_DtaAcolhi
    FROM Caso;



    obrigado



    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3880
    Registrado : 04/04/2010

    [Resolvido]Montar consulta para calculo de diferença entre datas Empty Re: [Resolvido]Montar consulta para calculo de diferença entre datas

    Mensagem  Avelino Sampaio 15/9/2011, 10:06

    Olá Amigos

    Este desafio do Alcides me fez lembrar dos bons tempos em que eu amava a eletrônica, aonde tinhamos qua analisar tabelas binárias dos processadores.

    Veja se é isso então, meu amigo Alcides.

    Baixe aqui o arquivo

    Bom estudo


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    alcides
    alcides
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 116
    Registrado : 17/04/2011

    [Resolvido]Montar consulta para calculo de diferença entre datas Empty Re: [Resolvido]Montar consulta para calculo de diferença entre datas

    Mensagem  alcides 15/9/2011, 10:38

    Olá Avelino.
    Dando uma olhada rápida antes de sair para o trabalho(trânsito), parece que ficou ótimo.
    só notei que ficou de fora a data atual, pois quando outras forem NULO vai ser ela usada para identificar que ainda está em andamento e contar o tempo decorrido até a presente data.

    mas no trabalho vou dar uma olhada com calma.

    muito obrigado.

    uma pergunta: qual a relação entre o meu problema, eletrônica e os códigos binários. porque te fez lembrar ?
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3880
    Registrado : 04/04/2010

    [Resolvido]Montar consulta para calculo de diferença entre datas Empty Re: [Resolvido]Montar consulta para calculo de diferença entre datas

    Mensagem  Avelino Sampaio 15/9/2011, 11:01

    Isso , de uma olhadinha com calma e me mostre na prática os resultados que deveriam sair:

    Não vejo a necessidade da data atual na consulta

    No aguardo


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    alcides
    alcides
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 116
    Registrado : 17/04/2011

    [Resolvido]Montar consulta para calculo de diferença entre datas Empty Re: [Resolvido]Montar consulta para calculo de diferença entre datas

    Mensagem  alcides 15/9/2011, 13:47

    Olá Avelino.
    Realmente só tenho a agradecer, achei Fantástica a solução.
    Em relação a data atual, ela é muito importante na medida em que é exatamente por ela que a coordenação vai se basear para cobrar das equipes os encaminhamentos.
    "porque o caso "A" está à X tempo e ainda não foi entrevistado?. porque em X tempo ainda não foi efetivado?. porque está a tanto tempo?." e por aí vai.
    Então "Talvez" a data atual seja a mais importante.

    Posso e vou tentar entender o seu código para fazer a adequação, mas sinceramente e humildemente duvido ter sucesso.

    É entendi. não fosse os numerais 2,3,4,5; seria puro binário na composição.

    aguardo. obrigado.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3880
    Registrado : 04/04/2010

    [Resolvido]Montar consulta para calculo de diferença entre datas Empty Re: [Resolvido]Montar consulta para calculo de diferença entre datas

    Mensagem  Avelino Sampaio 15/9/2011, 14:57

    Olá

    Analise estas modificações se atende e depois discutiremos cada uma das situações, ou seja, qual das situações ainda não atende,

    Baixe aqui o exemplo 2

    Bom estudo


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    alcides
    alcides
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 116
    Registrado : 17/04/2011

    [Resolvido]Montar consulta para calculo de diferença entre datas Empty Re: [Resolvido]Montar consulta para calculo de diferença entre datas

    Mensagem  alcides 15/9/2011, 15:56

    Ei grande.
    Eu estava estava já colocando a alteração que fiz para suas considerações.
    parece-me que voce fechou a questão. vou olhar com mais calma, muita calma; pois ví alteração no resultado, mas não vi alteração na estrutura (magica não é) então vou dar uma olhada com muita calma.

    então. humildemente e um pouco de vergonha coloco o exemplo com as alterações que fiz:
    http://dl.dropbox.com/u/40966186/AlcidesPeriodo.accdb

    quero ainda depois comentar mais a solução.

    um abraço. muito, muito, muito obrigado mesmo.

    alcides
    alcides
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 116
    Registrado : 17/04/2011

    [Resolvido]Montar consulta para calculo de diferença entre datas Empty Re: [Resolvido]Montar consulta para calculo de diferença entre datas

    Mensagem  alcides 15/9/2011, 17:56

    Ops.

    Detectei um pequeno problema.
    veja os Id.do Caso 57 ao 63.
    tem preenchido DtRegistro, DtSaida e DataAtual
    o calculo está sendo feito entre DtRegistro e DataAtual quando devería ser entre DtRegistro e DtSaida.
    até porque se não considerar a DtSaida o periodo vai ficar crescendo indefinidamente.

    estou matutando para decifrar o se código e achar uma saída.
    aguardo mais essa ajuda.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3880
    Registrado : 04/04/2010

    [Resolvido]Montar consulta para calculo de diferença entre datas Empty Re: [Resolvido]Montar consulta para calculo de diferença entre datas

    Mensagem  Avelino Sampaio 15/9/2011, 19:29

    Perfeito, irei corrigir.


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    alcides
    alcides
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 116
    Registrado : 17/04/2011

    [Resolvido]Montar consulta para calculo de diferença entre datas Empty Re: [Resolvido]Montar consulta para calculo de diferença entre datas

    Mensagem  alcides 15/9/2011, 19:45

    Sem querer abusar, já abusando.
    seria interessante se voce pudesse comentar um pouco mais o código.
    é que estou tentando entender onde as coisas se encaixam e se desenvolvem, mas confesso que estou achando um pouco complicado.
    As vezes acho que o numeral se refere aos campos, as vezes as condições do campo (on/off) e as vezes aos dois.

    talvez uma comentada no código venha esclarecer, não gostaria de ter só o negócio funcionando.

    abraços.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3880
    Registrado : 04/04/2010

    [Resolvido]Montar consulta para calculo de diferença entre datas Empty Re: [Resolvido]Montar consulta para calculo de diferença entre datas

    Mensagem  Avelino Sampaio 16/9/2011, 09:52

    Segue as modificações. Tentei simplicar ao máximo

    Baixe aqui o exemplo

    Bom estudo!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    alcides
    alcides
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 116
    Registrado : 17/04/2011

    [Resolvido]Montar consulta para calculo de diferença entre datas Empty Re: [Resolvido]Montar consulta para calculo de diferença entre datas

    Mensagem  alcides 16/9/2011, 12:20

    Avelino.

    Ficou muito bom. Ainda vou estudar para entender de fato o funcionamento.

    fico por aqui com meu agradecimento por sua paciência e competência.

    um abraço.

    Conteúdo patrocinado


    [Resolvido]Montar consulta para calculo de diferença entre datas Empty Re: [Resolvido]Montar consulta para calculo de diferença entre datas

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 27/4/2024, 17:12