RARS
|
AMERICO BRASILIENSE SP - BRASIL
|
|
Postada em 11/03/2008 10:22 hs
For x = 1 to Parcela Data = Dateadd("m",x,Data_Vencimento) if Not Isdate(data) then Data = Dateadd("d",1,data) 'No caso de meses q nao possua o dia da data de 'Vencimento..ou anos bissestos Endif Next x
|
|
|
|
|
Postada em 11/03/2008 10:24 hs
Pessoal, desculpa a minha ignorância, mas não estou entendendo essas rotina q. vcs estão me passando. deixa eu tentar explicar melhor como faço. Tenho um campo chamado Qt_parcela 'Quantidade de parcelas e tenho 12 campos MaskEdBox onde serão os vencimentos, estes tem o nome de: Vecto1,vecto2,vecto3,vecto4,vecto5,vecto6,vecto7,vecto8,vecto9,vecto10,vecto11, vecto12. em vossas formulas não sei onde colocar cada campo. Desde já Agradeço. Luciano
|
|
|
RARS
|
AMERICO BRASILIENSE SP - BRASIL
|
|
Postada em 11/03/2008 10:50 hs
Analista deculp o a falha ao exemplificar a rotina Neste caso vou usar um array de Objetos Vcto em vex de chamar eles de Vct1 Vcto2... Estou usando o Index 0 do Array para a data base e os demais para as futuras datas O comando ubound retorna o numero de Indices q o array tem no caso subtraii 1.pq o array comeca no index 0. For x = 1 to Ubound(Vcto) -1 Vecto(x) = Dateadd("m",x,Vecto(0))' No caso Vai Adicionar a Qtde X de meses na data 'inicial no controle e Vecto controlado pela propriedade 'Index q vai ser igual a 0 (Data Base para o calculo) if Not Isdate(Vcto(x)) then 'Aki eu verifico c a data eh valida..pois tem 'meses q nao tem dias 29,30 ou 31 Vcto(X) = Dateadd("d",1,Vcto(x)) ' Caso isso ocorra eu adiciono + 1 dia para ir para o primeiro ' Dia do outro mes Endif Next x
|
TÓPICO EDITADO
|
|
|
|
|
Postada em 11/03/2008 10:50 hs
o Correto seria voce colocar em uma variavel Array mas nesse caso tente colocar If QtdParcela >= 1 then Vecto1 = DataVencimento If QtdParcela >= 2 then Vecto2 = DateAdd("m", 1, DataVencimento) If QtdParcela >= 3 then Vecto3 = DateAdd("m", 2, DataVencimento) If QtdParcela >= 4 then Vecto4 = DateAdd("m", 3, DataVencimento) If QtdParcela >= 5 then Vecto5 = DateAdd("m", 4, DataVencimento) If QtdParcela >= 6 then Vecto6 = DateAdd("m", 5, DataVencimento) If QtdParcela >= 7 then Vecto7 = DateAdd("m", 6, DataVencimento) If QtdParcela >= 8 then Vecto8 = DateAdd("m", 7, DataVencimento) If QtdParcela >= 9 then Vecto9 = DateAdd("m", 8, DataVencimento) If QtdParcela >= 10 then Vecto10 = DateAdd("m", 9, DataVencimento) Estipule dias para vencimento por exemplo. Dia 5, dia 10, dia 20, ou 25 que nesse caso voce nao terá problemas quando o dia for mair que 28, onde todas as parcelas terão vencimentos em dias normais.
|
|
|
|
Postada em 11/03/2008 11:25 hs
Caro amigo Macaubal, vc está dizendo para eu indicar o dia que será o vencimento, não quero indicar, quero que pegue a dada da compra e faça os vencimentos, caso a compra seja hoje 11/03/2008, os vencimentos terão q. ser todo dia 11 como segue. vecto1= 11/04/2008; vecto2 = 11/05/2008; vecto3 = 11/06/2008....
|
|
|
|
Postada em 11/03/2008 12:33 hs
Entendi, mesmo assim voce pode utilizar o DateAdd("M", 1, DataVencimento) que no caso da primeira parcela cair em 30/01/2008 a segunda ira cair dia 29/02/2008, isso pq o ano é bisexto, caso o ano fosse 2007 e a primeira parcela em 31/01/2007, a segunda iria cair em 28/02/2008, a terceita em 31/03/2007 e por ai vai...
|
TÓPICO EDITADO
|
|
|
|
|