Tenho a seguinte situação:
Tenho um formulário principal que possui um subformulário. No rodapé do subformulário há um campo onde soma os valores selecionados. No formulário principal, há um campo onde mostra a soma do subformulário. Até aí, tudo perfeito.
No formulário principal, fiz um recordset para que os valores sejam transferidos para uma tabela. Até aí, tudo bem também, pois todos os valores do recordset são gravados na tabela, menos o valor de um campo. que é justamente o campo que onde mostra a soma do subformulário: Exemplificando:
no subformulário "Frm_SubCartaoCreditoPagamento" tenho o campo "txtquitar" onde na fonte de controle do campo está o seguinte comando:
=Soma(SeImed([selecionar]=Verdadeiro;[xxvalor];0))
Nota: o campo xxvalor vem de uma expressão da consulta, que renomeei o campo "Vl" (valor) da tabela.
no formulário principal "Frm_PagamentoCartaoCredito", também tenho um campo "txtquitar1" onde na fonte de controle do campo está o seguinte comando:
=[Frm_SubCartaoCreditoPagamento]![txtquitar]
Nestes dois campos, nas propriedades, estão o formato como padrão e duas casas decimais.
no recordset apenas o campo txtquitar1 grava o valor "0" zero, ao invés da soma dos campos selecionados! Os valores dos outros campos gravam normalmente na tabela.
Não entendi o que está acontecendo. Já tentei mudar a configuração do campo sem sucesso. Se alguém puder ajudar, agradeço antecipadamente.
Segue abaixo o código do recorset que estou utilizando:
- Código:
Public Function cadastralotequitacao() As Integer
'Cria o lote e lança a soma dos dados selecionados para quitação
Dim db As DAO.Database
Dim rslote As DAO.Recordset
Dim rslancamento As DAO.Recordset
Set db = CurrentDb()
Set rslote = db.OpenRecordset("tbl_Lote", dbOpenDynaset)
Set rslancamento = db.OpenRecordset("tbl_Movimento", dbOpenDynaset)
rslote.AddNew
rslote("nrlote") = Me.txtNrLote
rslote("data") = Me.txtdtquitacao
rslote("descricao") = Me.txtdescricao
rslote("cod_pessoa") = Me.txtcodcorrentista
rslote("cod_unidade") = Me.txtunidade
rslote("status") = "L"
rslote.Update
rslote.Close
Set rslote = Nothing
rslancamento.AddNew
rslancamento("nrlote") = Me.txtNrLote
rslancamento("dtocorrencia") = Me.txtdtquitacao
rslancamento("datavencimento") = Me.txtdtvencimento
rslancamento("dataprevisaopgtorec") = Me.txtdtquitacao
rslancamento("datapgtorec") = Me.txtdtquitacao
rslancamento("tipotransacao") = Me.txtcodtransacao
rslancamento("parcela") = "1"
rslancamento("numerodoc") = "s/n"
rslancamento("cod_pessoa") = Me.txtcodcorrentista
rslancamento("unidade") = Me.txtunidade
rslancamento("centrocusto") = Me.txtCC
rslancamento("beneficiario") = Me.txtbeneficiario
rslancamento("cod_conta") = Me.txtcontacartao
rslancamento("descricao") = Me.txtdescricao
rslancamento("Vl") = Me.txtquitar1 ' O problema está somente neste campo que grava zero na tabela
rslancamento("d/c") = "D"
rslancamento("status") = "L"
rslancamento("selecionar") = True
rslancamento("quitado") = True
rslancamento.Update
rslancamento.Close
Set rslancamento = Nothing
db.Close
Set db = Nothing
End Function