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

    avatar
    zcarloslopes
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 383
    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 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
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1808
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 383
    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 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 10 vez(es)
    avatar
    zcarloslopes
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 383
    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 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 13 vez(es)

      Data/hora atual: 17/9/2021, 05:03