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


5 participantes

    [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    avatar
    Convidado
    Convidado


    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Empty [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  Convidado 22/1/2014, 17:24

    Boa Tarde !

    Nao sei se e possível mas vamos la,
    Tenho duas data inicio e fim que esta no formato dd/mm/yyyy hh:nn e preciso fazer 2 datediff.

    o primeiro eu pego o tempo completo(DateDiff("n",Data_Inicial,Data_Final)) as Tempo_Completo
    Ate aqui tudo bem ta funcionando.

    o segundo preciso pegar somente os tempos em minutos entre 07:00 e 16:00

    Ex. Se a data inicial for 02/01/2014 10:00 e data final for 05/01/2014 08:00

    O resultado da consulta deveria ser:
    avatar
    Convidado
    Convidado


    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  Convidado 24/1/2014, 19:53

    Up!
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  Alexandre Neves 24/1/2014, 20:45

    Boa noite,
    Sendo um trabalho em Access, ajudará disponibilizar dados para se testar e perceber melhor o que precisa


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    sergiosdl
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 143
    Registrado : 04/12/2009

    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  sergiosdl 24/1/2014, 22:22

    Amigo como colocado Pelo Grande Alexandre Neves o ideal seria disponibilizar o banco para se entener o que realmente quer, por exemplo se for uma consulta voce pode utilizar a função hora para atingir oq ue quer: Hora(seucampo)
    Abraços
    avatar
    Convidado
    Convidado


    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  Convidado 26/1/2014, 17:05

    Desculpe a demora no retorno!
    Estava tentando montar ago proximo do que eu preciso para que fique mais facil entender.

    Mas segue uma base para entender melhor  o problema.


    CARRETA C102   02/04/2012 12:30:00     09/04/2012 11:23:00
    Ex. O registro acimo o equipamento C102 ficou em manutencao do 02 ate o dia 09 , e o que preciso e saber quantas horas tem de manutencao no dia 02,03,04,05....ate dia 09 sendo que o horario de manutencao eh de 7:00 ate 16:00.

    O seja o resultado deveria ser
    Frota-------Equip-----------Inicio---------------------Fim--------------------------Dia-------Tempo
    CARRETA C102   02/04/2012 12:30:00     09/04/2012 19:23:00 02/04/2012  3:30
    CARRETA C102   02/04/2012 12:30:00     09/04/2012 19:23:00 03/04/2012  8:00
    CARRETA C102   02/04/2012 12:30:00     09/04/2012 19:23:00 04/04/2012  8:00
    CARRETA C102   02/04/2012 12:30:00     09/04/2012 19:23:00 05/04/2012  8:00
    CARRETA C102   02/04/2012 12:30:00     09/04/2012 19:23:00 06/04/2012  8:00
    CARRETA C102   02/04/2012 12:30:00     09/04/2012 19:23:00 07/04/2012  8:00
    CARRETA C102   02/04/2012 12:30:00     09/04/2012 19:23:00 08/04/2012  8:00
    CARRETA C102   02/04/2012 12:30:00     09/04/2012 19:23:00 09/04/2012   4:23


    https://dl.dropboxusercontent.com/u/19875180/Consulta_Data.accdb
    toyebom
    toyebom
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1128
    Registrado : 18/07/2012

    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Empty DateDiff somente em um período do dia

    Mensagem  toyebom 26/1/2014, 17:12

    Não compreendo muito de datas tenho até postes no forum que não me foram respondidos e fazem-me falta mas julgo que tens de separar os campos data e criar campos hora e depois aplicar filtro.

    Desculpa a intromissão e se estou errado, só tento ajudar.


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.
    avatar
    sergiosdl
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 143
    Registrado : 04/12/2009

    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  sergiosdl 27/1/2014, 18:00


    Amigo estou sem tempo agora que estou no trabalho, mas minha sugestão é usar esta lógica abaixo, (se eu não conseguir fazer hoje a noite tento fazer amanhã, o objetivo aqui é apenas compartilhar o que acredito que resolve o problema )

    1º criamos a funcao

    public function quanthoras(datainicial as date, datafinal as date) as date

    2º descobrimos se a data inicial é diferente da data final

    3º se for diferente teremos que criar um loop para ir contando a horas de cada dia

    4º criamos o calculo de horas de cada dia

    5º totalizamos o total de horas e atribuirmos o resultado a função quanhoras

    quanthoras = totalcontado

    avatar
    sergiosdl
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 143
    Registrado : 04/12/2009

    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  sergiosdl 28/1/2014, 02:20

    Caro Rsilva segue o exemplo que criei para o que você precisa!
    Também deixei o exemplo no endereço:
    docs.google.com/file/d/0B3i9RiPMF-7MSHBFV29xOGxJYVE/edit?usp=drive_web
    Copiar link e colar no navegador
    Anexos
    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Attachmentsergiosdl_teste.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (26 Kb) Baixado 5 vez(es)
    avatar
    Convidado
    Convidado


    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  Convidado 30/1/2014, 16:31

    Sergio muito Obrigado pela gentileza, é justamente isso que preciso.

    Nao estou na empresa e nao tenho como testar no meu projeto agora, mas olhando aqui é justamente o que preciso.

    Vou dar o topico como resolvido e qualquer coisa reabro.

    Muito Obrigado a todos.
    avatar
    Convidado
    Convidado


    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  Convidado 15/2/2014, 20:11

    Sergio , nesse mesmo exemplo sabe me dizer como faço para que sábado, domingo e feriado não contabilizar ?

    Desde de já obrigado !
    avatar
    sergiosdl
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 143
    Registrado : 04/12/2009

    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  sergiosdl 17/2/2014, 13:55

    Você pode Usar o Datepart , para isso. Pois ele pode retornar ao dia da semana, aí é só você ignorar o calculo se o dia da semana corresponder a sábado ou domingo....

    DatePart("w",suadata)

    por exemplo:
    suadata = 17/02/2014
    msgbox DatePart("w",suadata)

    o resultado da mensagem sera = 2

    Abraços
    avatar
    Convidado
    Convidado


    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  Convidado 18/2/2014, 23:23

    Desculpe voltar neste topico mais uma vez, mas é que esse problema tem me tirado o sono e testando com uma carga maior de dados percebi algumas coisa que no inicio por se tratar de poucos registro nao havia percebido.

    Primeira é que em alguns registros o datediff esta vindo negativo (quase sempre nos casos que a datainicio é depois das 16:00) outra coisa é implementar o datepart pra pegar somente os dias uteis.

    Uma vez usando o quantdias = DateDiff("d", datainicial, datafinal) + 1 pra pegar a qtde de dias entre as datas nao conseguir implementar no código pra pegar somente os dias uteis.

    É possível fazer algo do tipo assim
    Digamos que a data inicio é 01/02/2014 12:00 e a dataFinal é 05/02/2014 10:00
    uma coluna pra cada dia do mês , accho que isso facilitaria meu resultado final

    01/02/2014 ---- 01/02/2014 12:00 --- 01/02/2014 23:59
    02/02/2014 ---- 02/02/2014 00:00 --- 02/02/2014 23:59
    03/02/2014 ---- 03/02/2014 00:00 --- 03/02/2014 23:59
    04/02/2014 ---- 04/02/2014 00:00 --- 04/02/2014 23:59
    05/02/2014 ---- 05/02/2014 00:00 --- 05/02/2014 10:00

    https://dl.dropboxusercontent.com/u/19875180/Impacto_Dia_A_Dia.7z

    Alguma ideia ?
    Obrigado!
    avatar
    Convidado
    Convidado


    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  Convidado 21/2/2014, 00:17

    Up !
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  JPaulo 21/2/2014, 11:21

    Veja se ajuda;

    Esta função conta apenas dias uteis, sem fins de semana;

    Function DiasUteisSimples(strDataInicial As Date, strDataFinal As Date) As Long
     
      Dim strContaDias As Double
     
      strContaDias = DateDiff("d", strDataInicial, strDataFinal) + 1
      Debug.Print "Dias Reais: " & strContaDias
      DiasUteisSimples = strContaDias / (7 / 5) + 1
      Debug.Print "Dias Sem Fins de Semana: " & DiasUteisSimples
     
    End Function


    ?DiasUteisSimples("01-02-2014","28-02-2014")
    Dias Reais: 28
    Dias Sem Fins de Semana: 21


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Folder_announce_new Instruções SQL como utilizar...
    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]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  Avelino Sampaio 21/2/2014, 12:39

    DataInical e dataFinal nunca cairão em um feriado ou final de semana, certo ?

    Pergunto isso porque seu exemplo deu início no sábado

    01/02/2014 ---- 01/02/2014 12:00 --- 01/02/2014 23:59 -SÁBADO
    02/02/2014 ---- 02/02/2014 00:00 --- 02/02/2014 23:59 -DOMINGO
    03/02/2014 ---- 03/02/2014 00:00 --- 03/02/2014 23:59 -SEGUNDA
    04/02/2014 ---- 04/02/2014 00:00 --- 04/02/2014 23:59 -TERÇA
    05/02/2014 ---- 05/02/2014 00:00 --- 05/02/2014 10:00 -QUARTA

    Se deu início no sábado, as horas de 12:00 às 16:00h de sábado são levadas em consideração ???

    Aguardamos


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


    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  Convidado 21/2/2014, 21:56

    Obrigado pelo exemplo JPaulo, vou testar assim que chegar em casa.

    Avelino, a data inicial pode sim ser sábado ou domingo.

    Para entender melhor o resultado da consulta é pra medir um indicador de Manutenção.
    D-1(Dia anterior) ,Mês (Mês Atual),Ano (Ano Atual)

    Então quando o equipamento entra para uma manutenção, eu preciso saber dentro tempo em que ficou em manutenção qual foi o impacto sendo que o horário de trabalho é de 7:00 as 16:00 sendo que o equipamento não trabalha sábado,domingo e feriado.

    Se eu conseguir esse resultado ou algo parecido seria ideal pra mim.
    Digamos que a DataInicial é 01/02/2014 12:00 e a DataFinal 05/02/2014 10:00

    Dia_Do_Impacto---DataInicial------------DataFinal-------DiaSemana
    01/02/2014 ------01/02/2014 12:00 --- 01/02/2014 23:59 -SÁBADO
    02/02/2014 ------02/02/2014 00:00 --- 02/02/2014 23:59 -DOMINGO
    03/02/2014 ------03/02/2014 00:00 --- 03/02/2014 23:59 -SEGUNDA
    04/02/2014 ---- 04/02/2014 00:00 --- 04/02/2014 23:59 -TERÇA
    05/02/2014 ---- 05/02/2014 00:00 --- 05/02/2014 10:00 -QUARTA

    Peço desculpas por estender demais o tópico mas é que essa situação tem me tirado o sono e to com a corda no pescoço por conta disso.


    Obrigado pela atenção
    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]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  Avelino Sampaio 21/2/2014, 22:08

    Confirme: tanto pode começar ou terminar em final de semana ou feriado ?

    Aguardamos



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


    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  Convidado 21/2/2014, 22:12

    Sim. pode começar ou terminar em qualquer dia da semana.

    Obrigado Pela atenção!
    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]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  Avelino Sampaio 21/2/2014, 22:14

    Confirme o calculo:

    Dia_Do_Impacto---DataInicial------------DataFinal-------DiaSemana
    01/02/2014 ------01/02/2014 12:00 --- 01/02/2014 23:59 -SÁBADO - 0
    02/02/2014 ------02/02/2014 00:00 --- 02/02/2014 23:59 -DOMINGO - 0
    03/02/2014 ------03/02/2014 00:00 --- 03/02/2014 23:59 -SEGUNDA - 9h
    04/02/2014 ---- 04/02/2014 00:00 --- 04/02/2014 23:59 -TERÇA - 9h
    05/02/2014 ---- 05/02/2014 00:00 --- 05/02/2014 10:00 -QUARTA -3h

    Total: 21 Horas



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


    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  Convidado 21/2/2014, 22:15

    Exatamente esse resultado que espero.

    Obrigado pela atenção!
    avatar
    Convidado
    Convidado


    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  Convidado 21/2/2014, 22:22

    Não necessariamente precisa ser nesse formato
    Dia_Do_Impacto---DataInicial------------DataFinal-------DiaSemana
    01/02/2014 ------01/02/2014 12:00 --- 01/02/2014 23:59 -SÁBADO
    02/02/2014 ------02/02/2014 00:00 --- 02/02/2014 23:59 -DOMINGO
    03/02/2014 ------03/02/2014 00:00 --- 03/02/2014 23:59 -SEGUNDA
    04/02/2014 ---- 04/02/2014 00:00 --- 04/02/2014 23:59 -TERÇA
    05/02/2014 ---- 05/02/2014 00:00 --- 05/02/2014 10:00 -QUARTA

    POde ser assim tbm ou algo parecido
    Dia_Do_Impacto---DataInicial------------DataFinal-------DiaSemana
    01/02/2014 ------01/02/2014 12:00 --- 02/02/2014 00:00 -SÁBADO
    02/02/2014 ------02/02/2014 00:00 --- 03/02/2014 00:00 -DOMINGO
    03/02/2014 ------03/02/2014 00:00 --- 04/02/2014 00:00 -SEGUNDA
    04/02/2014 ---- 04/02/2014 00:00 --- 05/02/2014 00:00 -TERÇA
    05/02/2014 ---- 05/02/2014 00:00 --- 05/02/2014 10:00 -QUARTA

    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]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  Avelino Sampaio 21/2/2014, 22:39

    Bom, copie a função abaixo para um módulo global:

    Public Function fncFsF(dta1 As Date, dta2 As Date) As Long
    Dim k
    Dim m As Long, j%
    'se data inicial igual a data final não contabiliza
    If Int(CDbl(dta1)) = Int(CDbl(dta2)) Then
    fncFsF = 0
    Exit Function
    End If
    For k = Int(CDbl(dta1)) To Int(CDbl(dta2))
    'Data no final de semana
    If Eval(Weekday(k) & " in(1,7)") Then
    'se a data inicial cair no final de semana
    If k = Int(CDbl(dta1)) Then
    m = m + (1440 - (Hour(dta1) * 60))
    'se a data final cair em um final de semana
    ElseIf k = Int(CDbl(dta2)) Then
    m = m + (Hour(dta2) * 60)
    Else
    'data do meio cair em um final de semana
    m = m + 1440
    End If
    Else
    'verifica se data caiu em um feriado - consultando a tabela feriado
    If DCount("*", "tblFeriados", "clng(dataferiado) = " & k) > 0 Then
    'se a data inicial cair no feriado
    If k = Int(CDbl(dta1)) Then
    m = m + (1440 - (Hour(dta1) * 60))
    ' se a data final cair no feriado
    ElseIf k = Int(CDbl(dta2)) Then
    m = m + (Hour(dta2) * 60)
    'data do meio cair no feriado
    Else
    m = m + 1440
    End If
    Else
    'data inicial em dia normal
    If k = Int(CDbl(dta1)) Then
    m = m + 480
    'data final em dia normal
    ElseIf k = Int(CDbl(dta2)) Then
    m = m + 420
    'data do meio em dia normal
    Else
    m = m + 900
    End If
    End If
    End If
    Next
    fncFsF = m
    End Function


    Na consulta crie um campo virtual com a seguinte expressão:

    TotalMinutos: (DifData("n";[dataInicial];[datafinal]))-(fncFsf([dataInicial];[datafinal]))

    Crie outro campo para transformar os minutos no formato hh:mm

    TotalHora: Format(([totalminutos]\60);"00") & ":" & Format(([totalminutos]-(([totalminutos]\60)*60));"00")

    Tudo foi transformado para minutos

    Como fiz muito rápido, tem que realizar vários testes.

    Aguardamos


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


    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  Convidado 22/2/2014, 00:51

    Avelino fiz conforme suas instruções,em alguns casos a data não é final de semana nem esta na tabela feriado e fica com o "0", outra coisa conforme disse antes seria possível mostrar dia a dia.
    Ex
    se a data inicial for 01/02/2014 12:00 e data final for 05/02/2014 10:00 eu mostrar os dias entre as data (1 registro pra cada dia entre o intervalo),só pra se ter uma noção se tenho uma data inicial com o primeiro dia ano e a data final for o ultimo dia do ano a consulta me retornaria 365 linhas 1 para cada dia. para a minha realidade preciso mostrar os dias que foram impactados, pois posteriormente nessa mesma consulta irei utilizar essa coluna.

    Dia_Do_Impacto---DataInicial------------DataFinal
    01/02/2014 ------01/02/2014 12:00 --- 01/02/2014 23:59
    02/02/2014 ------02/02/2014 00:00 --- 02/02/2014 23:59
    03/02/2014 ------03/02/2014 00:00 --- 03/02/2014 23:59
    04/02/2014 ---- 04/02/2014 00:00 --- 04/02/2014 23:59
    05/02/2014 ---- 05/02/2014 00:00 --- 05/02/2014 10:00


    JPaulo testei o seu exemplo e funcionou tbm mas com essa mesma condição preciso mostrar os dias entre esse intervalo

    Segue o banco de teste
    https://dl.dropboxusercontent.com/u/19875180/Impacto_Dia_A_Dia.accdb
    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]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  Avelino Sampaio 22/2/2014, 10:22

    Bom, acho mais prático montar desta forma:


    Dia_Do_Impacto---DataInicial------------DataFinal
    01/02/2014 ------01/02/2014 12:00 --- 01/02/2014 16:00
    02/02/2014 ------02/02/2014 07:00 --- 02/02/2014 16:00
    03/02/2014 ------03/02/2014 07:00 --- 03/02/2014 16:00
    04/02/2014 ----  04/02/2014 07:00 --- 04/02/2014 16:00
    05/02/2014 ----  05/02/2014 07:00 --- 05/02/2014 10:00


    Segue o arquivo exemplo:

    Passos:

    abra o formulário frmControle > Entre com a data/hora inicial (01/02/2014 12:00) > Entre com a data/hora final (05/02/2014 10:00) > Clique no botão Lançar
    Abra a tabela tblControle e veja o resultado da montagem
    Abra a consulta qryControle e veja como fica simples achar o total de horas por linha

    Aguardamos
    Anexos
    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) AttachmentRafaelControleHoras.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (31 Kb) Baixado 50 vez(es)
    avatar
    Convidado
    Convidado


    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  Convidado 22/2/2014, 12:46

    Avelino, Muito Obrigado pela paciência, o resultado que preciso é justamente esse mas meu medo de usar o insert é que como trabalho em rede fico com medo de ao fazer esse insert pra centenas de registro ficar muito lento.

    Vou testar seu exemplo da minha realidade e dou um retorno, mas seria possível obter esse mesmo resulto que vc postou sem usar o insert ? somente a query ?

    Outra coisa, toda vez que eu abrir o fomulario de indicadores terei que deletar primeiros os registro de tblControle para depois fazer o insert.

    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]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  Avelino Sampaio 22/2/2014, 14:36

    Por que não criar uma tabela local para inserir o resultado? Utilize esta tabela local para gerar a consulta e/ou relatório.

    Supondo então que vc tenha a tabela com os seguinte dados

    20/02/2014 05/02/2014 15:00 07/02/2014 10:00
    21/02/2014 07/02/2014 10:00 10/02/2014 16:00
    22/02/2014 11/02/2014 07:00 15/02/2014 11:00
    23/02/2014 15/02/2014 12:00 16/02/2014 16:00

    Faça um loop nesta tabela para gerar os valores na tabela local e então utilize a tabela local para apresentar o resultado.

    Sucesso!



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


    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  Convidado 4/3/2014, 15:53

    Resolvido!

    Obrigado a todos.

    Segue a resolução
    https://dl.dropboxusercontent.com/u/19875180/RafaelControleHoras.zip

    Conteúdo patrocinado


    [Resolvido]DateDiff somente em um período do dia (somente dias uteis) Empty Re: [Resolvido]DateDiff somente em um período do dia (somente dias uteis)

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 27/4/2024, 04:23