USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Tem como Melhor este Código
Ricardo
não registrado
Postada em 29/03/2007 14:27 hs   
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

   Wend

End Sub
     
Jose.Niz
CURITIBA
PR - BRASIL
Postada em 03/04/2007 02:01 hs         
Tem sim!
- Comece selecionando somente os campos desejados no SELECT (remova o *);
- Por que você define o SALDOANT como single e depois usa a função CCur? Por que não definir de cara SALDOANT como Currency.
- Por que os campos debito, credito, SALDOANT e saldo são inicializados como string?
     
Ricardo
não registrado
Postada em 03/04/2007 11:02 hs   
Já é uma grande coisa valew ..
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página