bollywood actresses hair loss hair rehab london contact number cheap hair extensions brazilian curly hair with closure hair extension fails human hair wigs black ponytail hairstyles 2018 sunny hair extensions uk hair extensions remy hair extensions weft koko one piece hair extensions clip hair
Selecionar uma data entre vários campos com datas

Selecionar uma data entre vários campos com datas

Adquira a assinatura vitalícia do site e passe a ter acesso aos arquivos exemplos, vídeos, revistas, livros e ao kit de montagem de ribbons. Você terá suporte por e-mail, caso necessite tirar dúvidas pontuais. Clique AQUI e veja como obter um dos nossos planos. Clique AQUI e faça uma visita a seção Downloads do site e verifique as centenas de arquivos que estará à sua disposição. Clique AQUI e faça uma visita a seção Vídeos do site e veja a lista que estará disponível ao se tornar o nosso assinante vitalício. Clique AQUI e saiba mais detalhes sobre o kit de montagem de ribbons (deixe seus aplicativos com aspecto profissional).

Usuário Cezar:

Boa tarde.

Trabalho com convênios em uma prefeitura e estou tentando criar um Banco de Dados para me auxiliar no controle dos meus projetos.  Preciso criar uma consulta que envolva várias colunas com datas, com a seguinte situação:

Inicio_Vigencia Fim_Vigencia 1º_termo_Adit 2º_termo_Adit 3º_termo_Adit 4º_termo_Adit
01/01/2010 01/01/2014 01/01/2011 01/01/2012 01/01/2013 01/01/2014
01/01/2015 01/01/2017 01/01/2016 01/01/2017    

 

Preciso que a coluna Fim_Vigencia me retorne a data mais recente, no exemplo acima (01/01/2014) para o primeiro registro e (01/01/2017) no segundo registro.

Espero que possa me ajudar. Já tentei encontrar uma solução e até agora nada.

Aproveito para agradecer a você, Avelino, pelas postagens e tutoriais.  Tem ajudado muitas pessoas a enriquecer conhecimentos. Obrigado!

Suporte:

Cezar, veja se o arquivo exemplo atende. 

Utilizei a seguinte função para retornar a maior data entre os campos:

Public Function fncFimVigencia(dt1 As Date, dt2 As Date, dt3 As Date, dt4 As Date, dt5 As Date)
On Error Resume Next
If (dt5 > dt4) And (dt5 > dt3) And (dt5 > dt2) And (dt5 > dt1) Then fncFimVigencia = dt5
If (dt4 > dt5) And (dt4 > dt3) And (dt4 > dt2) And (dt4 > dt1) Then fncFimVigencia = dt4
If (dt3 > dt5) And (dt3 > dt4) And (dt3 > dt2) And (dt3 > dt1) Then fncFimVigencia = dt3
If (dt2 > dt5) And (dt2 > dt4) And (dt2 > dt3) And (dt2 > dt1) Then fncFimVigencia = dt2
If (dt1 > dt5) And (dt1 > dt4) And (dt1 > dt3) And (dt1 > dt2) Then fncFimVigencia = dt1
End Function

A função foi utilizada da seguinte forma, na consulta:

SELECT Data_Inicio_Vigencia, Vig_1º_Termo_Aditivo, Vig_2º_Termo_Aditivo, Vig_3º_Termo_Aditivo, 
Vig_4º_Termo_Aditivo, fncFimVigencia(Nz([data_Inicio_Vigencia],0),Nz([Vig_1º_Termo_Aditivo],0),
Nz([Vig_2º_Termo_Aditivo],0),Nz([Vig_3º_Termo_Aditivo],0),Nz([Vig_4º_Termo_Aditivo],0)) AS Data_Fim_Vigência
FROM tblTeste;

Usuário Cezar:

Avelino, muito obrigado!

Exatamente o que eu precisava.

Download

 


 

 


1 comentário(s)

MARCIO MELO - RJ   27/03/2018 05:14:52

Show hein! Gosto de ver as soluções que o Mestre Avelino emprega, isso acaba me encorajando e expirando para fazer minhas tentativas. Uma solução limpa e perfeita, uma função para ser usada numa consulta e abastecer um campo com o valor sugerido.

Grato! por apresentar mais uma solução... criatividade...

Sou mais Brasil!

Forte abraço!


Envie seu comentário: