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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Atualização de Dados
mferreiraneto
LAGOA SANTA
MG - BRASIL
Postada em 08/02/2006 09:54 hs            
Bom dia!!!
Tenho um sistema que controla cartão de crédito e estou com um pequeno problema na atualização de dados.
No sistema tem um form composto com um DBGrid, 02 textbox, 01 DBCombo e 03 botões de comando.
Funciona assim:
No DBCombo seleciono o nome do cartão (MasterCard) nos textbox coloco a data que quero (01/02/06) a (07/02/06) então clico no botão de comando Procurar (cmdProcurar).
Este resultado é mostrado no DBGrid.
No BD tem um tabela por nome ConsCartao que alimenta o form acima citado, nesta tabela tem 02 campos que tem que ser atualizado nesta consulta por datas.
São os campos:
Baixado
DataBaixado
Preciso de uma rotina que atualize de uma só vez todos os registros selecionados colocando nos campos acima o seguinte:
Campo Baixado     (SIM)
Campo DataBaixado (08/02/06)
Desenvolvi a rotina abaixo, porém ficou muito lenta, pois tenho mais de 2.000 registros.
Private Sub cmdInserirDados_Click()
'Processo de Seleção
While Not frmCadRecebimentosVoucher.Data1.Recordset.EOF
frmCadRecebimentosVoucher.Data1.Recordset.Edit
frmCadRecebimentosVoucher.Data1.Recordset.Fields("Baixado") = "SIM"
frmCadRecebimentosVoucher.Data1.Recordset.Fields("DataRecebimentoCartao") = txtData.text
frmCadRecebimentosVoucher.Data1.Recordset.Update
frmCadRecebimentosVoucher.DBGrid1.Refresh
frmCadRecebimentosVoucher.Data1.Refresh
frmCadRecebimentosVoucher.Data1.Recordset.MoveNext
Wend
'Fim de Processo
Unload Me
Set frmData = Nothing
End Sub
Os Campos acima citados são atualizados por um outro form por nome frmData. Composto por um textbox (onde digito a data) e a opção SIM já está embutido no código.
Preciso de uma nova rotina que atualize bem mais rapido os registros selecionados.
Agradeço desde já a ajuda de vcs...
Marcelino Neto
VB6.0
Access 97
DataControl.
Obs. (Não sei trabalhar com SQL)

EmoçõesMFerreira...
     
kerplunk
Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 08/02/2006 12:11 hs         
Cara, se trabalhar com SQL não é uma opção, o único jeito seria esse loop que vc fez, com SQL ficaria tudo num comando só.
Update ConsCartao set Baixado = 'Sim', DataBaixado = CvDate('" & cdate(txtdata.text) & "') where ..."
 
Mas uma coisa que vc poderia usar que melhoraria a velocidade é ocultar o DBGrid antes de modificar ele. Outra coisa seria trocar o While...Wend por Do...Loop
A tua função ficaria assim(linhas novas ou modificadas estão em vermelho)
 
Private Sub cmdInserirDados_Click()
'Processo de Seleção
 
frmCadRecebimentosVoucher.DBGrid1.Visible = False

Do While not frmCadRecebimentosVoucher.Data1.Recordset.EOF
    frmCadRecebimentosVoucher.Data1.Recordset.Edit
    frmCadRecebimentosVoucher.Data1.Recordset.Fields("Baixado") = "SIM"
    frmCadRecebimentosVoucher.Data1.Recordset.Fields("DataRecebimentoCartao") = txtData.text
    frmCadRecebimentosVoucher.Data1.Recordset.Update
    'A linha abaixo é comentário mesmo.
    'frmCadRecebimentosVoucher.DBGrid1.Refresh
    frmCadRecebimentosVoucher.Data1.Refresh
    frmCadRecebimentosVoucher.Data1.Recordset.MoveNext
Loop
'Fim de Processo
frmCadRecebimentosVoucher.DBGrid1.Visible = True
Set frmData = Nothing
Unload Me

End Sub
 
Dá um retorno se melhorou...
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

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

HTML DESLIGADO

     
 VOLTAR

  



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