PARACELA ERRO COM O SEGUNDO MES DO ANO
Galera estou gerando as parcelas mas quando o ano muda a data de feverreiro fica como 1930
estou gerando dessa forma
FUNÇÃO PARCELA
Dim mes As Integer
Dim ano As Integer
Dim data As String
Dim COTA As Integer
Dim parc As Integer
COTA = 0
mes = Format(Now, [Ô]mm[Ô])
ano = Format(Now, [Ô]yy[Ô])
parc = Val(txtnumeroparcelas.Text)
For i = 1 To Val(txtnumeroparcelas.Text)
COTA = COTA + 1
mes = mes + 1
If mes > 12 Then
mes = 1
ano = ano + 1
End If
dia1 = Format(Text35.Text, [Ô]dd[Ô])
dia = Verifica_dia(dia1, mes)
data = dia & [Ô]/[Ô] & Format(mes, [Ô]00[Ô]) & [Ô]/[Ô] & Format(ano, [Ô]00[Ô])
parcela = CCur(txtvalor.Text) / txtnumeroparcelas.Text
Connect
rs.Open [Ô]SELECT * FROM CAIXA[Ô], CON, adOpenStatic, adLockOptimistic
rs.AddNew
rs.Fields(1) = Text10.Text
rs.Fields(2) = Format(txtcodigo, [Ô]0000000000000[Ô]) [ô] CLng(txtcodigo.Text)
rs.Fields(5) = Format(CDate(data), [Ô]dd/mm/yy[Ô])
rs.Fields(3) = CCur(parcela)
rs.Fields(6) = [Ô]ABERTA[Ô]
rs.Fields(8) = [Ô]Prestação de serviço[Ô]
rs.Fields([Ô]MODOPAGAMENTO[Ô]) = MDCO1.Text
rs.Fields(7) = Date
rs.Fields(4) = COTA & [Ô] / [Ô] & Val(txtnumeroparcelas.Text)
rs.Update
Disconnect
[ô]MsgBox Format(CDate(Data), [Ô]dd/mm/yy[Ô])
Next
FUNÇÃO VERIFICA DIA
Public Function Verifica_dia(dia, mes)
Dim diasDoMes As Variant
dia = Val(dia)
diasDoMes = Array(31, 28, 30, 30, 31, 30, 31, 30, 30, 31, 30, 31)
If dia = 31 Then
Verifica_dia = diasDoMes(mes - 1)
Else
Verifica_dia = dia
End If
End Function
estou gerando dessa forma
FUNÇÃO PARCELA
Dim mes As Integer
Dim ano As Integer
Dim data As String
Dim COTA As Integer
Dim parc As Integer
COTA = 0
mes = Format(Now, [Ô]mm[Ô])
ano = Format(Now, [Ô]yy[Ô])
parc = Val(txtnumeroparcelas.Text)
For i = 1 To Val(txtnumeroparcelas.Text)
COTA = COTA + 1
mes = mes + 1
If mes > 12 Then
mes = 1
ano = ano + 1
End If
dia1 = Format(Text35.Text, [Ô]dd[Ô])
dia = Verifica_dia(dia1, mes)
data = dia & [Ô]/[Ô] & Format(mes, [Ô]00[Ô]) & [Ô]/[Ô] & Format(ano, [Ô]00[Ô])
parcela = CCur(txtvalor.Text) / txtnumeroparcelas.Text
Connect
rs.Open [Ô]SELECT * FROM CAIXA[Ô], CON, adOpenStatic, adLockOptimistic
rs.AddNew
rs.Fields(1) = Text10.Text
rs.Fields(2) = Format(txtcodigo, [Ô]0000000000000[Ô]) [ô] CLng(txtcodigo.Text)
rs.Fields(5) = Format(CDate(data), [Ô]dd/mm/yy[Ô])
rs.Fields(3) = CCur(parcela)
rs.Fields(6) = [Ô]ABERTA[Ô]
rs.Fields(8) = [Ô]Prestação de serviço[Ô]
rs.Fields([Ô]MODOPAGAMENTO[Ô]) = MDCO1.Text
rs.Fields(7) = Date
rs.Fields(4) = COTA & [Ô] / [Ô] & Val(txtnumeroparcelas.Text)
rs.Update
Disconnect
[ô]MsgBox Format(CDate(Data), [Ô]dd/mm/yy[Ô])
Next
FUNÇÃO VERIFICA DIA
Public Function Verifica_dia(dia, mes)
Dim diasDoMes As Variant
dia = Val(dia)
diasDoMes = Array(31, 28, 30, 30, 31, 30, 31, 30, 30, 31, 30, 31)
If dia = 31 Then
Verifica_dia = diasDoMes(mes - 1)
Else
Verifica_dia = dia
End If
End Function
Dim mes As Integer
Dim ano As Integer
Dim data As String
Dim COTA As Integer
Dim parc As Integer
COTA = 0
mes = Format(Now, [Ô]mm[Ô])
ano = Format(Now, [Ô]yy[Ô])
parc = Val(txtnumeroparcelas.Text)
For i = 1 To Val(txtnumeroparcelas.Text)
COTA = COTA + 1
mes = mes + 1
If mes > 12 Then
mes = 1
ano = ano + 1
End If
dia1 = Format(Text35.Text, [Ô]dd[Ô])
dia = Verifica_dia(dia1, mes)
data = dia & [Ô]/[Ô] & Format(mes, [Ô]00[Ô]) & [Ô]/[Ô] & Format(ano, [Ô]00[Ô])
parcela = CCur(txtvalor.Text) / txtnumeroparcelas.Text
Connect
rs.Open [Ô]SELECT * FROM CAIXA[Ô], CON, adOpenStatic, adLockOptimistic
rs.AddNew
rs.Fields(1) = Text10.Text
rs.Fields(2) = Format(txtcodigo, [Ô]0000000000000[Ô]) [ô] CLng(txtcodigo.Text)
rs.Fields(5) = Format(CDate(data), [Ô]dd/mm/yy[Ô])
rs.Fields(3) = CCur(parcela)
rs.Fields(6) = [Ô]ABERTA[Ô]
rs.Fields(8) = [Ô]Prestação de serviço[Ô]
rs.Fields([Ô]MODOPAGAMENTO[Ô]) = MDCO1.Text
[txt-color=#e80000][ô]rs.Fields(7) = Date[/txt-color] Mude isto para data = dia & [Ô]/[Ô] & Format(mes, [Ô]00[Ô]) & [Ô]/[Ô] & Format(ano, [Ô]00[Ô])
rs.Fields(7) =Data
rs.Fields(4) = COTA & [Ô] / [Ô] & Val(txtnumeroparcelas.Text)
rs.Update
Disconnect
[ô]MsgBox Format(CDate(Data), [Ô]dd/mm/yy[Ô])
Next
Dim ano As Integer
Dim data As String
Dim COTA As Integer
Dim parc As Integer
COTA = 0
mes = Format(Now, [Ô]mm[Ô])
ano = Format(Now, [Ô]yy[Ô])
parc = Val(txtnumeroparcelas.Text)
For i = 1 To Val(txtnumeroparcelas.Text)
COTA = COTA + 1
mes = mes + 1
If mes > 12 Then
mes = 1
ano = ano + 1
End If
dia1 = Format(Text35.Text, [Ô]dd[Ô])
dia = Verifica_dia(dia1, mes)
data = dia & [Ô]/[Ô] & Format(mes, [Ô]00[Ô]) & [Ô]/[Ô] & Format(ano, [Ô]00[Ô])
parcela = CCur(txtvalor.Text) / txtnumeroparcelas.Text
Connect
rs.Open [Ô]SELECT * FROM CAIXA[Ô], CON, adOpenStatic, adLockOptimistic
rs.AddNew
rs.Fields(1) = Text10.Text
rs.Fields(2) = Format(txtcodigo, [Ô]0000000000000[Ô]) [ô] CLng(txtcodigo.Text)
rs.Fields(5) = Format(CDate(data), [Ô]dd/mm/yy[Ô])
rs.Fields(3) = CCur(parcela)
rs.Fields(6) = [Ô]ABERTA[Ô]
rs.Fields(8) = [Ô]Prestação de serviço[Ô]
rs.Fields([Ô]MODOPAGAMENTO[Ô]) = MDCO1.Text
[txt-color=#e80000][ô]rs.Fields(7) = Date[/txt-color] Mude isto para data = dia & [Ô]/[Ô] & Format(mes, [Ô]00[Ô]) & [Ô]/[Ô] & Format(ano, [Ô]00[Ô])
rs.Fields(7) =Data
rs.Fields(4) = COTA & [Ô] / [Ô] & Val(txtnumeroparcelas.Text)
rs.Update
Disconnect
[ô]MsgBox Format(CDate(Data), [Ô]dd/mm/yy[Ô])
Next
Esse campo esta correto so a data atual de lançamento
esse esta errado e onde formam as parcelas
[txt-color=#e80000]rs.Fields(5) = Format(CDate(data), [Ô]dd/mm/yy[Ô])[/txt-color]
esse erro so acontece se o dia do vencimento for dia 30 ou dia 31 e so acontece no fevereiro
esse esta errado e onde formam as parcelas
[txt-color=#e80000]rs.Fields(5) = Format(CDate(data), [Ô]dd/mm/yy[Ô])[/txt-color]
esse erro so acontece se o dia do vencimento for dia 30 ou dia 31 e so acontece no fevereiro
eNTAO A SOLUÇÃO ESTA DENTRO DESTA FUNÇÃO MAS COMO RESOLVER
Dim diasDoMes As Variant
dia = Val(dia)
diasDoMes = Array(31, 28, 30, 30, 31, 30, 31, 30, 30, 31, 30, 31)
If dia = 31 Then
Verifica_dia = diasDoMes(mes - 1)
Else
Verifica_dia = dia
End If
Dim diasDoMes As Variant
dia = Val(dia)
diasDoMes = Array(31, 28, 30, 30, 31, 30, 31, 30, 30, 31, 30, 31)
If dia = 31 Then
Verifica_dia = diasDoMes(mes - 1)
Else
Verifica_dia = dia
End If
veja se isso te ajuda....
Porque não usa a função DATEADD?
Se a forma de parcelamento é mensal, ou seja, o vencimento é sempre no mesmo dia, basta usar:
Se a forma de parcelamento é a cada 30 dias, use:
Qualquer dúvida poste.
Se a forma de parcelamento é mensal, ou seja, o vencimento é sempre no mesmo dia, basta usar:
For i = 1 To nroParcelas
dataParcela = DATEADD([Ô]m[Ô], i, dataVenda)
Next
Se a forma de parcelamento é a cada 30 dias, use:
For i = 1 To nroParcelas
dataParcela = DATEADD([Ô]d[Ô], (i *30), dataVenda)
Next
Qualquer dúvida poste.
Funfo bacana F001E vlwww
Tópico encerrado , respostas não são mais permitidas