Ir para conteúdo
Fórum Script Brasil
  • 0

Consulta: Somar data


csfab

Pergunta

Tenho um banco de dados de uma imobiliária, onde o maior problema sempre foram os recibos de algueis, tais recibos são anuais, ou seja, temos 12 recibos mensais cada um com seu respectivo vencimento. Por exemplo

Data Inicial - Data Final - Vencimento

01/01/2008 - 30/01-2008 - 01/01/2008

01/02/2008 - 29/02/2008 - 01/02/2008

01/03/2008 - 30/03/2008 - 01/03/2008

01/04/2008 - 20/04/2008 - 01/04/2008

01/05/2008 - 30/05/2008 - 01/05/2008

01/06/2008 - 20/06/2008 - 01/06/2008

01/07/2008 - 30/07/2008 - 01/07/2008

01/08/2008 - 20/08/2008 - 01/08/2008

01/09/2008 - 30/09/2008 - 01/09/2008

01/10/2008 - 20/10/2008 - 01/10/2008

01/11/2008 - 30/11/2008 - 01/11/2008

01/12/2008 - 20/12/2008 - 01/12/2008

ai uso a seguinte formula para gerar dos campos do perido 2 em diante

Periodo Inicial2: SomData("m";[Mes];[Periodo Inicial]), onde [Mes] varia de 1 até 11

tenho da seguinte maneira

Periodo inicial 2: é Periodo Inicial + 1 Mês

Periodo Inicial 3: é Periodo Inicial + 2 Meses

E assim sucessivamente até o ultimo

O problema está quando o primeiro recibo é da seguinte maneira

Data Inicial - Data Final - Vencimento

01/02/2008 - 29/02/2008 - 01/02/2008

Ou seja, tem o periodo final é todo ultimo dia do mês mas pela minha formula o mês subsequencia irá ter Data final 2 em 29/03/2008 o próximo dia 29/04/2008 mas quero que vença dia 30 mas como meu campo é em data hora o access não aceita eu digitar 30/03/2008, se tivesse um jeito da seguinte maneira eu digito 30/02/200X ai o sistema automaticamente converte para 28 ou 29 dependendo do ano se for bisexto o mês de fevereiro terá 29 dias caso não terá 28 dias. Por favor me ajudem isso ta me deixando loko.

Ou uma outra formula usando dias qualquer coisa

Desde já agradeço

Atenciosamente

CSFAB

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

cara se levar em consideração que os meses em media teem 30 dias basta somar a data com 30, mais você pode incrementar um código VBA para fazer validações e outras coisas afins..

Link para o comentário
Compartilhar em outros sites

  • 0

Seu problema seria de logica então pois você então não precisaria se preocupar o Dia e sim meses e anos, então bastaria que você fizesse algo assim

dim xdia, xmes, xano as variant

xdia=(me.suaDataAtual.Format = "dd")

xmes=(me.suaDataAtual.Format = "mm")+1

if xmes >12 then

xmes=01

xano=(me.suaDataAtual.Format = "yyyy")+1

else

xano=(me.suaDataAtual.Format = "yyyy")

end if

me.suaDataSeguinte.value=datevalue( xdia & "/" & xmes & "/" & xano )

Bom acho que é por ai claro que tem que dar uma melhorado no codigo mais a ideia é essa

Link para o comentário
Compartilhar em outros sites

  • 0
Seu problema seria de logica então pois você então não precisaria se preocupar o Dia e sim meses e anos, então bastaria que você fizesse algo assim

dim xdia, xmes, xano as variant

xdia=(me.suaDataAtual.Format = "dd")

xmes=(me.suaDataAtual.Format = "mm")+1

if xmes >12 then

xmes=01

xano=(me.suaDataAtual.Format = "yyyy")+1

else

xano=(me.suaDataAtual.Format = "yyyy")

end if

me.suaDataSeguinte.value=datevalue( xdia & "/" & xmes & "/" & xano )

Bom acho que é por ai claro que tem que dar uma melhorado no codigo mais a ideia é essa

Não manjo muito bem em códigos VBA, como colocaria esse código no meu campo vencimento2

vou em antes de atualiza, onde coloco?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...