Ola pessoal queria uma ajuda de vcs para melhorar este codigo abaixo:
E o seguinte e pra funcionar da seguinte maneira:
codigo| data |numero|dc| debito | credito | saldo |
01 01/03/07 205 C 0,00 90,00 90,00
02 02/03/07 154 D 15,00 0,00 -75,00
03 02/03/07 025 C 0,00 5,00 80,00
ate ai tudo bem ,dai quando e feito um lancamento com data anterior a ultima ele chama a rotina calcular saldo e atualiza tudo saldos e codigo.
Bom o que eu queria fazer e transformar as duas rotinas em uma so, nao sei se poderia ser usado uma sql com if ou com (insert into) e (update set) pra ficar mais rápido a inclusão e atualizaçao ,pelo fato de que este programa podera ser usado em rede.
Public Sub Gravar
() Dim debito
As Single Dim credito
As Single Dim saldo
As Single Dim SALDOANT
As Single Dim CODIGO
As Integer Set TB_LANCAMENTOS = CreateObject
("ADODB.RecordSet") Set TB_LANCAMENTOS.ActiveConnection = BD_CAIXA
TB_LANCAMENTOS.LockType = adLockOptimistic
TB_LANCAMENTOS.CursorType = adOpenForwardOnly
TB_LANCAMENTOS.CursorLocation = adUseClient
TB_LANCAMENTOS.Open
"select * from LANCAMENTOS order by data asc,codigo asc", BD_CAIXA
TB_LANCAMENTOS.MoveMax
SALDOANT =
"0" SALDOANT = TB_LANCAMENTOS.Fields
("SALDO") If CAIXA =
"C" Then credito = CCur
(TEXTVALOR.Text
) debito =
"0" saldo = CCur
(SALDOANT
) + CCur
(TEXTVALOR.Text
) End If If CAIXA =
"D" Then debito = CCur
(TEXTVALOR.Text
) * -
1 credito =
"0" saldo = CCur
(SALDOANT
) - CCur
(TEXTVALOR.Text
) End If TB_LANCAMENTOS.AddNew
TB_LANCAMENTOS
("codigo") = CODIGO +
1 |TB_LANCAMENTOS
("data") = TEXTdata.Text
TB_LANCAMENTOS
("numero") = TEXTNumero.Text
TB_LANCAMENTOS
("dc") = DEBCRED
TB_LANCAMENTOS
("debito") = debito
TB_LANCAMENTOS
("credito") = credito
TB_LANCAMENTOS
("saldo") = saldo
TB_LANCAMENTOS.UPDATE
If TEXTdata.Text < ULTIMADATA
Then CalcularSaldo
End If Principal.MSG.Caption =
"Documento Incluido com Sucesso."End Sub Public Sub CalcularSaldo
() 'caixa grade.Clear
Set TB_LANCAMENTOS = CreateObject
("ADODB.RecordSet") Set TB_LANCAMENTOS.ActiveConnection = BD_CAIXA
TB_LANCAMENTOS.LockType = adLockOptimistic
TB_LANCAMENTOS.CursorType = adOpenForwardOnly
TB_LANCAMENTOS.CursorLocation = adUseServer
TB_LANCAMENTOS.Open
"select .... data asc,codigo asc", BD_CAIXA
Dim debito
As Single Dim credito
As Single Dim saldo
As Single Dim SALDOANT
As Single Dim Saldoatual
As Single TB_LANCAMENTOS.MoveMin
SALDOANT =
"0" debito =
"0" credito =
"0" saldo =
"0" While Not TB_LANCAMENTOS.EOF
COD = COD +
1 If TB_LANCAMENTOS!CAIXA =
"C" Then saldo = CCur
(SALDOANT
) + CCur
(TB_LANCAMENTOS!Valor
) Saldoatual = saldo
Else saldo = CCur
(SALDOANT
) - CCur
(TB_LANCAMENTOS!Valor
) Saldoatual = saldo
End If SALDOANT = Saldoatual
TB_LANCAMENTOS.UPDATE
TB_LANCAMENTOS!CODIGO = COD
TB_LANCAMENTOS!saldo = saldo
TB_LANCAMENTOS.MoveNext
WendEnd Sub