Boa noite
Desde já agradeço o auxílio nesta dúvida.
Todos os formulários e subformulários tem como origem as tabelas.
No banco que estou trabalhando, criei um formulário de compras fml_CadCompras. Esse Formulário tem dois subformulários: fml_CadComprasDetalhes onde lanço os produtos, e fml_CadComprasPgto onde lanço parcelas a pagar da compra. Isso está funcionando.
Criei também um formulário fml_CadLancamentoCaixa que será usado para lançar receitas e despesas.
No subformulário fml_CadComprasPgto há uma caixa de seleção sim/não chamada PAGO. O objetivo é, ao marcar a caixa de seleção, os dados das parcelas sejam lançados na tabela tbl_CadLancamentoCaixa/fml_CadLancamentoCaixa automaticamente. Para isso, na caixa de seleção criei o procedimento do evento após atualizar:
Private Sub PAGO_AfterUpdate()
If PAGO.Value = -1 Then 'analisa se o checkbox PAGO está marcado
Set db = CurrentDb()
Set rs = db.OpenRecordset("tbl_CadLancamentoCaixa") 'abre a tabela CadLancamentoCaixa
rs.AddNew 'gera registro de lançamento de caixa
rs("DATA_LANCAM") = DATA_PGTO 'faz a data do lanç. igual a data pgto
rs("TIPO_LANC") = "DESPESA" 'faz tipo de lanç. igual a DESPESA
rs("COD_COMP_VEND") = COD_ME_tbl_CadCompras 'lança o código da compra
rs("DESC_LANCAM") = FORNECEDOR 'lança a descrição do lançamento
rs("TIPO_PGTO_LANC") = TIPO_PGTO 'lança o tipo de pagamento
rs("VALOR_LANC") = Me.VALOR_PAGO 'lança o valor pago
rs.Update
rs.Close
db.Close
End
End If
End Sub
Esse código está funcionando, pois ao marcar a caixa de seleção, um registro é criado na tabela tbl_CadLancamentoCaixa/fml_CadLancamentoCaixa automaticamente. Mas como FORNECEDOR e TIPO_PGTO são caixas de combinação, ao verificar o registro, vejo que foi preenchido com o código automático da tabela de fornecedor e tipo pgto e não o nome.
Entendo que, com a linhas do código:
rs("DESC_LANCAM") = FORNECEDOR 'lança a descrição do lançamento
rs("TIPO_PGTO_LANC") = TIPO_PGTO 'lança o tipo de pagamento
Ele está buscando a primeira coluna (0) da caixa de combinação, que é o código automático da tabela. A ideia é buscar o nome do fornecedor e do tipo pgto na segunda coluna (1). Para isso, tentei alterar a linha para:
rs("DESC_LANCAM") = FORNECEDOR.Column(1) 'lança a descrição do lançamento
rs("TIPO_PGTO_LANC") = TIPO_PGTO.Column(1) 'lança o tipo de pagamento
Mas assim o Access trava e reinicia. Acredito que a minha sintaxe esteja errada. Já realizei buscas na internet e nesse fórum, mas não identifiquei um comando para isso. Também tentei outros comandos sem sucesso. Essa é a dúvida, como fazer o comando buscar a segunda coluna (1) da caixa de cominação?
O banco está em anexo.
Obrigado.
Enio Eltz Filho
Desde já agradeço o auxílio nesta dúvida.
Todos os formulários e subformulários tem como origem as tabelas.
No banco que estou trabalhando, criei um formulário de compras fml_CadCompras. Esse Formulário tem dois subformulários: fml_CadComprasDetalhes onde lanço os produtos, e fml_CadComprasPgto onde lanço parcelas a pagar da compra. Isso está funcionando.
Criei também um formulário fml_CadLancamentoCaixa que será usado para lançar receitas e despesas.
No subformulário fml_CadComprasPgto há uma caixa de seleção sim/não chamada PAGO. O objetivo é, ao marcar a caixa de seleção, os dados das parcelas sejam lançados na tabela tbl_CadLancamentoCaixa/fml_CadLancamentoCaixa automaticamente. Para isso, na caixa de seleção criei o procedimento do evento após atualizar:
Private Sub PAGO_AfterUpdate()
If PAGO.Value = -1 Then 'analisa se o checkbox PAGO está marcado
Set db = CurrentDb()
Set rs = db.OpenRecordset("tbl_CadLancamentoCaixa") 'abre a tabela CadLancamentoCaixa
rs.AddNew 'gera registro de lançamento de caixa
rs("DATA_LANCAM") = DATA_PGTO 'faz a data do lanç. igual a data pgto
rs("TIPO_LANC") = "DESPESA" 'faz tipo de lanç. igual a DESPESA
rs("COD_COMP_VEND") = COD_ME_tbl_CadCompras 'lança o código da compra
rs("DESC_LANCAM") = FORNECEDOR 'lança a descrição do lançamento
rs("TIPO_PGTO_LANC") = TIPO_PGTO 'lança o tipo de pagamento
rs("VALOR_LANC") = Me.VALOR_PAGO 'lança o valor pago
rs.Update
rs.Close
db.Close
End
End If
End Sub
Esse código está funcionando, pois ao marcar a caixa de seleção, um registro é criado na tabela tbl_CadLancamentoCaixa/fml_CadLancamentoCaixa automaticamente. Mas como FORNECEDOR e TIPO_PGTO são caixas de combinação, ao verificar o registro, vejo que foi preenchido com o código automático da tabela de fornecedor e tipo pgto e não o nome.
Entendo que, com a linhas do código:
rs("DESC_LANCAM") = FORNECEDOR 'lança a descrição do lançamento
rs("TIPO_PGTO_LANC") = TIPO_PGTO 'lança o tipo de pagamento
Ele está buscando a primeira coluna (0) da caixa de combinação, que é o código automático da tabela. A ideia é buscar o nome do fornecedor e do tipo pgto na segunda coluna (1). Para isso, tentei alterar a linha para:
rs("DESC_LANCAM") = FORNECEDOR.Column(1) 'lança a descrição do lançamento
rs("TIPO_PGTO_LANC") = TIPO_PGTO.Column(1) 'lança o tipo de pagamento
Mas assim o Access trava e reinicia. Acredito que a minha sintaxe esteja errada. Já realizei buscas na internet e nesse fórum, mas não identifiquei um comando para isso. Também tentei outros comandos sem sucesso. Essa é a dúvida, como fazer o comando buscar a segunda coluna (1) da caixa de cominação?
O banco está em anexo.
Obrigado.
Enio Eltz Filho
- Anexos
- banco.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (433 Kb) Baixado 5 vez(es)