MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Identificar último dia útil de cada mês usando como base o ano

    Compartilhe

    lebersa12
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 108
    Registrado : 16/05/2014

    [Resolvido]Identificar último dia útil de cada mês usando como base o ano

    Mensagem  lebersa12 em Sex 03 Out 2014, 17:42

    Boa tarde!

    Estou com uma consulta a realizar que possui diversas datas de diversos anos. Preciso extrair dessa consulta o último dia útil de cada mês, considerando o ano solicitado.

    Exemplo:

    Ano 2014

    Janeiro - 31/01
    Fevereiro - 28/02
    Março - 31/03
    Abril - 30/04
    Maio - 30/05
    Junho - 30/06
    Julho - 31/07
    Agosto - 29/08
    Setembro - 30/09
    Outubro - 31/10
    Novembro - 28/11
    Dezembro - 31/12

    Peço que me ajudem nessa questão. Obrigado!

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Identificar último dia útil de cada mês usando como base o ano

    Mensagem  Avelino Sampaio em Sex 03 Out 2014, 18:33

    Olá!

    Para isso utilize a função DateSerial(). Veja no quadro do meu artigo abaixo:

    [Você precisa estar registrado e conectado para ver este link.]

    Aguardamos


    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

    lebersa12
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 108
    Registrado : 16/05/2014

    Identificar último dia útil de cada mês usando como base o ano.

    Mensagem  lebersa12 em Sex 03 Out 2014, 20:27

    Olá Avelino,

    Sou um assiduo leitor de seu site e tenho aprendido muito com seus ensinamentos...

    Ainda estou em dúvida...

    Por exemplo, se eu colocar na consulta a função DataSerial(Ano(Data()),Mês(Data())-8,0) o retorno será 31/01/2014 e se eu colocar DataSerial(Ano(Data()),Mês(Data())+3,0) retorna 31/12/2014. Fiz uma lógica meio sem lógica e tentei fazer um between entre essa duas DataSerial e não deu certo (retorna todas as datas entre esse intervalo)

    Você pode me orientar como devo obter todas as datas desde Janeiro até Dezembro, considerando somente o último dia útil de cada mês?


    lebersa12
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 108
    Registrado : 16/05/2014

    Identificar último dia útil de cada mês usando como base o ano.

    Mensagem  lebersa12 em Seg 06 Out 2014, 14:19

    Prezado Avelino e Amigos,

    Como recebi essa demanda e precisava resolvê-la de forma imediata, acabei colocando para cada ano uma sequencia de DataSerial(Ano(Data()),Mês(Data())-20,0) or DataSerial(Ano(Data()),Mês(Data())-19,0) e por aí vai....

    Quando achei que resolvi o problema, surgiu um outro. Nem todos os meses possuem o registro em tabela do ultimo dia útil do mês. Exemplo: Março de 2013 o último registro da tabela é dia 25 ao invés de 29, ou seja, o DataSerial não considera esse dia e eu fico sem a informação do mês citado e dos outros que possuem a mesma caracteristica.

    Há possibilidade de resolver essa questão? Já tentei todos os recursos que conheço mas infelizmente não resolvi. Peço gentilmente a ajuda de vocês.

    Obrigado!


    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3216
    Registrado : 15/03/2013

    Re: [Resolvido]Identificar último dia útil de cada mês usando como base o ano

    Mensagem  ahteixeira em Seg 06 Out 2014, 14:41

    Olá,

    Experimente com esta função

    Código:
    'Álvaro Teixeira 2014 - converter uma data para o ultimo dia do mes dessa data
    Function DataUD(Data)
        DataUD = CDate("01-" & Month(DateAdd("m", 1, Data)) & "-" & Year(DateAdd("m", 1, Data))) - 1
    End Function

    Pode testar no immediate ?DataUD("20/02/2014")

    Ficamos aguardar retorno.
    Abraço

    lebersa12
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 108
    Registrado : 16/05/2014

    Identificar último dia útil de cada mês usando como base o ano.

    Mensagem  lebersa12 em Seg 06 Out 2014, 15:10

    Álvaro bom dia!

    Infelizmente não obtive o resultado esperado. Estou colocando em anexo para facilitar a sua análise.

    Tabela: LWDFull
    Objetivo: Identificar o(s) registro(s) correspondentes ao último dia útil de cada mês.


    Muito obrigado em se dispor a me ajudar!!
    Anexos
    LWD.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (541 Kb) Baixado 6 vez(es)

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3216
    Registrado : 15/03/2013

    Re: [Resolvido]Identificar último dia útil de cada mês usando como base o ano

    Mensagem  ahteixeira em Seg 06 Out 2014, 15:41

    Olá, essa função converte uma data para o ultimo dia do mês dessa mesma data.
    Não sei o que pretende efetuar na consulta, mas testei e funciona.
    Veja como fica na consulta:

    [Você precisa estar registrado e conectado para ver esta imagem.]

    Abraço

    lebersa12
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 108
    Registrado : 16/05/2014

    Identificar último dia útil de cada mês usando como base o ano.

    Mensagem  lebersa12 em Seg 06 Out 2014, 16:38

    Ótima função, cada vez tenho aprendido mais e vou utilizar em outros projetos.

    O que ocorre, é que infelizmente não atende a minha necessidade. Não preciso converter uma data, mas sim, criar um criterio que extraia da tabela somente os registros que correspondem ao último dia útil de cada mês. No anexo, estou usando o DataSerial, porém por exemplo em 2013 os meses de Março, Junho, Agosto, Novembro e Dezembro, não possuem esse registro. Eu gostaria para esses casos que trouxesse o último dia registrado (desde que ele seja útil).

    A visualização na Consulta1 acaba deixando mais clara a minha necessidade.
    Anexos
    LWD.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (561 Kb) Baixado 4 vez(es)

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Identificar último dia útil de cada mês usando como base o ano

    Mensagem  Avelino Sampaio em Seg 06 Out 2014, 17:33

    Olá!

    Veja se atende:

    Sucesso!
    Anexos
    LWD_rev.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (560 Kb) Baixado 10 vez(es)


    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

    lebersa12
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 108
    Registrado : 16/05/2014

    Identificar último dia útil de cada mês usando como base o ano.

    Mensagem  lebersa12 em Seg 06 Out 2014, 18:22

    Mestre Avelino, boa tarde!

    Obrigado por seu retorno.!

    Ao observar o retorno da consulta, ainda não está trazendo a última data registrada do mês quando esse não corresponde ao último dia útil. Na cadeia de solicitação ao fórum, eu exponho essa necessidade na quarta mensagem.

    Por exemplo, no ano de 2013 não há registros para os meses de Março, Junho, Agosto, Novembro e Dezembro. Nesses casos, eu precisaria que trouxesse a última data útil registrada mesmo que esta nao seja a última da útil do mês.

    O mesmo ocorre no ano de 2014...
    Anexos
    Consulta Avelino.docx
    Você não tem permissão para fazer download dos arquivos anexados.
    (342 Kb) Baixado 4 vez(es)

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Identificar último dia útil de cada mês usando como base o ano

    Mensagem  Avelino Sampaio em Seg 06 Out 2014, 19:36

    Veja se esta montagem atende
    Anexos
    LWD_rev2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (560 Kb) Baixado 31 vez(es)


    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

    lebersa12
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 108
    Registrado : 16/05/2014

    Identificar último dia útil de cada mês usando como base o ano.

    Mensagem  lebersa12 em Ter 07 Out 2014, 15:31

    Resolvido para o meu caso!

    Obrigado Avelino, AhTeixeira pela disposição e interesse em me auxiliar..

      Data/hora atual: Sex 09 Dez 2016, 07:41