MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

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]Dividir intervalo de datas em períodos por mês

    avatar
    zcarloslopes
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 310
    Registrado : 28/10/2010

    [Resolvido]Dividir intervalo de datas em períodos por mês Empty [Resolvido]Dividir intervalo de datas em períodos por mês

    Mensagem  zcarloslopes em 27/6/2019, 11:33

    Bom dia a todos,

    Peço a vossa ajuda para dividir um registo com intervalo de datas em múltiplos registos por mês, caso o intervalo de datas incluísse mais de 1 mês.

    Exemplo, numa tabelaX com os campos:

    NOME     DtaInicio      DtaFim

    Nome1   02/02/2019   20/02/2019
    Nome2   03/04/2019   07/05/2019

    Gostaria que uma consulta me dividisse em:

    NOME    DtaInicio        DtaFim

    Nome1   02/02/2019   20/02/2019
    Nome2   03/04/2019   30/04/2019
    Nome2   01/05/2019   07/05/2019

    Obrigado


    Última edição por zcarloslopes em 5/7/2019, 16:26, editado 1 vez(es)
    crysostomo
    crysostomo
    VIP
    VIP

    Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1383
    Registrado : 23/01/2018

    [Resolvido]Dividir intervalo de datas em períodos por mês Empty Re: [Resolvido]Dividir intervalo de datas em períodos por mês

    Mensagem  crysostomo em 30/6/2019, 22:26

    boa noite Zé Carlos. Se entendi você quer colocar para separar somente o mês para que ele inclui os dias?
    se for assim , no critério da consulta data dataInicio e no critério da  dataFinal, colocando o campo do nome na consulta ele retornará com o nome.
    Código:
    Como [Digite Mês/Ano - Ex: 06/2019]


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    avatar
    zcarloslopes
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 310
    Registrado : 28/10/2010

    [Resolvido]Dividir intervalo de datas em períodos por mês Empty Re: [Resolvido]Dividir intervalo de datas em períodos por mês

    Mensagem  zcarloslopes em 1/7/2019, 09:21

    Obrigado crysostomo por tentar ajudar..

    Não é isso que pretendo.

    Pretendo que cada período que inclua mais de um mês seja dividido nos respetivos períodos que corresponde a cada mês.

    Elaborei um exemplo do que pretendo para facilitar.

    Obrigado
    Anexos
    [Resolvido]Dividir intervalo de datas em períodos por mês AttachmentDateMonthSplit.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (94 Kb) Baixado 8 vez(es)
    avatar
    zcarloslopes
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 310
    Registrado : 28/10/2010

    [Resolvido]Dividir intervalo de datas em períodos por mês Empty Re: [Resolvido]Dividir intervalo de datas em períodos por mês

    Mensagem  zcarloslopes em 5/7/2019, 16:25

    Consegui resolver com a ajuda de Dale Fye, utilizador do forum utteraccess.com.

    1º Criar uma tabela "tbl_Numbers" com um único Campo lngNumber com os números de 0 a 99.

    Query:
    Código:
    SELECT tabelaX.Nome
    , CDate(IIf(Format(StartDate,"yymm")=Format(DateSerial(Year([StartDate]),Month([StartDate])+[lngNumber],1),"yymm"),[StartDate],DateSerial(Year([StartDate]),Month([StartDate])+[lngNumber],1))) AS PeriodStart
    , CDate(IIf(Format(EndDate,"yymm")=Format(DateSerial(Year([StartDate]),Month([StartDate])+[lngNumber]+1,0),"yymm"),[EndDate],DateSerial(Year([StartDate]),Month([StartDate])+[lngNumber]+1,0))) AS PeriodEnd
    FROM tabelaX, tlb_Numbers
    WHERE ((Format(DateSerial(Year([StartDate]),Month([StartDate])+[lngNumber]+1,0),"yymm"))<=Format([EndDate],"yymm"))
    ORDER BY CDate(IIf(Format(StartDate,"yymm")=Format(DateSerial(Year([StartDate]),Month([StartDate])+[lngNumber],1),"yymm"),[StartDate],DateSerial(Year([StartDate]),Month([StartDate])+[lngNumber],1)));

    Adaptar os nomes dos campos e respectivas tabelas.

    Obrigado

    P.S. Adiciono exemplo para que precisar.
    Anexos
    [Resolvido]Dividir intervalo de datas em períodos por mês AttachmentDateMonthSplit_v2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (112 Kb) Baixado 9 vez(es)

      Data/hora atual: 24/10/2020, 07:03