enio.eltz 11/4/2017, 12:17
Bom dia
Antes de tudo: os nomes nos códigos são do meu sistema, você deve alterar para os nomes do seu sistema.
No caso da tabela de vendas, o campo Produto é uma caixa de combinação. Eu fiz assim em meu sistema: na caixa de combinação eu criei um evento Após atualizar com o código:
- Código:
Private Sub COD_PRODUTO_AfterUpdate()
With COD_PRODUTO
Me.DESC_PRODUTO = .Column(2)
Me.VALOR_ITEM_VEND = .Column(3)
Me.VALOR_ITEM_COMP = .Column(4)
End With
End Sub
Mas você precisa alterar a sua caixa de combinação para que ela tenha todos os campos (preços, descrição, etc.).
Para gerar as parcelas, eu usei esse código em um evento Ao clicar do botão bt_gerar (GERAR PARCELAS):
- Código:
Private Sub bt_gerar_Click()
If IsNull(QTDE_PARCELAS) Then
MsgBox ("O campo QTDE PARCELAS é obrigatório")
Me.QTDE_PARCELAS.SetFocus
DoCmd.CancelEvent
End
End If
If QTDE_PARCELAS = 1 Then 'analisa a quantidade de parcelas
Set DB = CurrentDb()
Set rs = DB.OpenRecordset("tbl_CadVendasPgto") 'Abre tabela CadVendasPgto
rs.AddNew 'Gera parcela única
rs("COD_ME_tbl_CadVendas") = Me.COD_tbl_CadVendas
rs("NUM_PARCELA") = QTDE_PARCELAS & "/" & Me.QTDE_PARCELAS
rs("DATA_PREV_PGTO") = DATA_PRIM_PARCELA
rs("VALOR_PARCELA") = campo_tot_venda
rs("TIPO_PGTO") = TIPO_PGTO
rs.Update
rs.Close
DB.Close
Me.fml_CadVendasPgto.Requery 'Atualiza o subformulário CadVendasPgto
Else 'Se o número de parcelas é maior que 1 segue o code abaixo
Set DB = CurrentDb()
Set rs = DB.OpenRecordset("tbl_CadVendasPgto") 'Abre tabela CadVendasPgto
CALC_VALOR_PARCELA = Me.campo_tot_venda / Me.QTDE_PARCELAS 'Calcula o valor da parcela
SEL_TIPO_PGTO = TIPO_PGTO
For i = 1 To Me.QTDE_PARCELAS 'Insere as parcelas na tabela CadVendasPgto
rs.AddNew
rs("COD_ME_tbl_CadVendas") = Me.COD_tbl_CadVendas
rs("NUM_PARCELA") = i & "/" & Me.QTDE_PARCELAS
rs("DATA_PREV_PGTO") = DateAdd("m", i - 1, Me.DATA_PRIM_PARCELA) 'Calcula e insere as datas de previsão de pagamento
rs("VALOR_PARCELA") = CALC_VALOR_PARCELA
rs("TIPO_PGTO") = SEL_TIPO_PGTO
rs.Update
Next
rs.Close
DB.Close
Me.fml_CadVendasPgto.Requery 'Atualiza o subformulário CadVendasPgto
End
End If
Me.bt_salvar.SetFocus
Me.bt_gerar.Enabled = False
End Sub
Abraço!
Enio Eltz Filho.