Em ajuda a um colega do Forum...
Este exemplo gera parcelas obtendo-as apartir de um valor total, sendo que tais terão valores diferenciados, de acordo com uma porcentagem e numero de parcelas escolhido na combo condicoes.
Portanto cada parcela terá valor diferenciado, porém a somatória será o valor total estabelecido no form
Código:
Private Sub btnGerar_Click()
Dim I As Integer
Dim StrDateAdd As Date
Dim StrValorParc As Double
Dim Parc As String
Dim StrValor As Double
Dim Rs As DAO.Recordset
'Carrego o recordset com as condições da tbl_CondicoesDet, filtrado pela coluna da combo com o registro de condicão escolhido
Set Rs = CurrentDb.OpenRecordset("SELECT ID_Det, ID_CondDet, cpCondicao, cpQuantidadeParcelas FROM tbl_CondicoesDet WHERE ID_CondDet = " & Me.cboCond.Column(0) & ";")
'Carrego a variável com o valor total
StrValorParc = Me.txtValor_Total
'Defino a variável X como 1
X = 1
'COndição para que se ainda não chegou ao ultimo registro do Recordset
Do While Not Rs.EOF
' Aqui defino o valor da parcela que é o cálculo da porcentagem da mesma.
' Observe que é de acordo com a condição do registro selecionado na tbl_CondicoesDet
' Este valor será modificado a cada loop
' Suponha que o valor total seja 1000 e sejam 3 parcelas com as condições 20%, 30% e 50%
' A cada loop o cálculo será o Valor Total * pela condição / 100
' Ou seja se a condição for a primeira: 20% então:
' A parcela será 1000 * 20 / 100 = 200
' Assim o Rs!CpCondição a cada loop será definido com o registo correspondente
StrValor = Me.txtValor_Total * Rs!cpCondicao / 100
'A data será a data escolhida adicionada do valor de x, se x for 1 = Adiciona um mes, se 2, adiciona 2 meses e assim sucessivamente
StrDateAdd = DateAdd("m", X, Format(Me.txtData, "dd/mm/yyyy"))
'Enumera a parcela
StrParc = X & "/" & Me.cboCond.Column(2)
' Executa a inserção do registro na tabela
CurrentDb.Execute "INSERT INTO tblExemplo(Compra,CpData,CpValor, cpParcela)" _
& " Values(""" & Me.txtDescricao.Value & """,#" & Format(StrDateAdd, "mm/dd/yyyy") & "#, """ & StrValor & """, """ & StrParc & """);"
' Faz o incremento da variável X
X = X + 1
'Vai para o próximo regitro do Recordset
Rs.MoveNext
Loop
' Faz a atualização da listBox
Me.lstParcelas.Requery
End Sub
https://dl.dropbox.com/u/26441349/GeraParcelas_Diferentes.rar
Enjoy!!!
Este exemplo gera parcelas obtendo-as apartir de um valor total, sendo que tais terão valores diferenciados, de acordo com uma porcentagem e numero de parcelas escolhido na combo condicoes.
Portanto cada parcela terá valor diferenciado, porém a somatória será o valor total estabelecido no form
Código:
Private Sub btnGerar_Click()
Dim I As Integer
Dim StrDateAdd As Date
Dim StrValorParc As Double
Dim Parc As String
Dim StrValor As Double
Dim Rs As DAO.Recordset
'Carrego o recordset com as condições da tbl_CondicoesDet, filtrado pela coluna da combo com o registro de condicão escolhido
Set Rs = CurrentDb.OpenRecordset("SELECT ID_Det, ID_CondDet, cpCondicao, cpQuantidadeParcelas FROM tbl_CondicoesDet WHERE ID_CondDet = " & Me.cboCond.Column(0) & ";")
'Carrego a variável com o valor total
StrValorParc = Me.txtValor_Total
'Defino a variável X como 1
X = 1
'COndição para que se ainda não chegou ao ultimo registro do Recordset
Do While Not Rs.EOF
' Aqui defino o valor da parcela que é o cálculo da porcentagem da mesma.
' Observe que é de acordo com a condição do registro selecionado na tbl_CondicoesDet
' Este valor será modificado a cada loop
' Suponha que o valor total seja 1000 e sejam 3 parcelas com as condições 20%, 30% e 50%
' A cada loop o cálculo será o Valor Total * pela condição / 100
' Ou seja se a condição for a primeira: 20% então:
' A parcela será 1000 * 20 / 100 = 200
' Assim o Rs!CpCondição a cada loop será definido com o registo correspondente
StrValor = Me.txtValor_Total * Rs!cpCondicao / 100
'A data será a data escolhida adicionada do valor de x, se x for 1 = Adiciona um mes, se 2, adiciona 2 meses e assim sucessivamente
StrDateAdd = DateAdd("m", X, Format(Me.txtData, "dd/mm/yyyy"))
'Enumera a parcela
StrParc = X & "/" & Me.cboCond.Column(2)
' Executa a inserção do registro na tabela
CurrentDb.Execute "INSERT INTO tblExemplo(Compra,CpData,CpValor, cpParcela)" _
& " Values(""" & Me.txtDescricao.Value & """,#" & Format(StrDateAdd, "mm/dd/yyyy") & "#, """ & StrValor & """, """ & StrParc & """);"
' Faz o incremento da variável X
X = X + 1
'Vai para o próximo regitro do Recordset
Rs.MoveNext
Loop
' Faz a atualização da listBox
Me.lstParcelas.Requery
End Sub
https://dl.dropbox.com/u/26441349/GeraParcelas_Diferentes.rar
Enjoy!!!