OLHA QUE ESTRANHO. NEM DA PRA EXPLICAR NO TITULO..
Já sei onde é o problema...
O programa roda normal (até que rapidinho (+ - 1 segundo / clique)). Aàquando um usuário edita um registro (rs.Edit), fica tudo lento.
exemplo do código de edição:
Eu comentei as três linhas referentes àedição, e o programa não ficou lento. :)
A questão é saber porquê o programa fica lento quando um registro é editado.
Vi que a placa de rede fica comunicando direto com o servidor. Mas nos processos do servidor tá td normal (processadores 99% ociosos) e na estação também (processador 99% ocioso) e o consumo de memória é mÃÂÂnimo e estável (cerca de 25MB). Então não tenho a mÃÂÂnima idéia de onde vem essa lentidão.
Eu achava que eram os loops, mas tÃÂ' vendo que não eram...
O programa roda normal (até que rapidinho (+ - 1 segundo / clique)). Aàquando um usuário edita um registro (rs.Edit), fica tudo lento.
exemplo do código de edição:
Set rs = db.OpenRecordset("SELECT Situacao,MasterPagar,IDPg " & _
"FROM tblPagar " & _
"WHERE IDPg = " & " " & varSituacaoPagar & " ")
If rs!MasterPagar = "Liberado" Then
MsgBox Format(rs!IDpg, "00000") & " - Este registro está bloqueado.", vbInformation, "Registro bloqueado"
Else
rs.Edit
rs!Situacao = cmbSitPagar.Text
rs.Update
End If
rs.Close
Set rs = Nothing
Eu comentei as três linhas referentes àedição, e o programa não ficou lento. :)
A questão é saber porquê o programa fica lento quando um registro é editado.
Vi que a placa de rede fica comunicando direto com o servidor. Mas nos processos do servidor tá td normal (processadores 99% ociosos) e na estação também (processador 99% ocioso) e o consumo de memória é mÃÂÂnimo e estável (cerca de 25MB). Então não tenho a mÃÂÂnima idéia de onde vem essa lentidão.
Eu achava que eram os loops, mas tÃÂ' vendo que não eram...
O problema não está no código e sim no banco de dados.
O Access quando entra no modo Edit bloqueia a pagina de dados e não somente o registro. Por isso, devido ao tamanho da página de dados, todos os registros que se encontrarem dentro desta página serão bloqueados.
Este problema também era apresentado no SQL Server 6.5, sendo corrigido na versão 7.0.
O Access quando entra no modo Edit bloqueia a pagina de dados e não somente o registro. Por isso, devido ao tamanho da página de dados, todos os registros que se encontrarem dentro desta página serão bloqueados.
Este problema também era apresentado no SQL Server 6.5, sendo corrigido na versão 7.0.
Mas o bloqueio não impediria que eu salvasse / alterasse dados?
Depois que clico no botão 'ALTERAR', o código que postei é executado (e bem rapidinho) e só depois fica tudo lento, mas não chega a bloquear nada. Continui inserino, alterando, etc. Só que com velocidade bem menor.
Como isso poderia ser bloqueio?
E percebi também que quando carrego um novo formulario (FormAdicionar) e descarrego o que tá lento (FormGeral) e depois volto pro FormGeral, ele fica rápido de novo:
Depois:
Aào formGeral fica normal de novo.
Depois que clico no botão 'ALTERAR', o código que postei é executado (e bem rapidinho) e só depois fica tudo lento, mas não chega a bloquear nada. Continui inserino, alterando, etc. Só que com velocidade bem menor.
Como isso poderia ser bloqueio?
E percebi também que quando carrego um novo formulario (FormAdicionar) e descarrego o que tá lento (FormGeral) e depois volto pro FormGeral, ele fica rápido de novo:
'Carregando FormAdicionar e descarregando o FormGeral (que está lento).
FormAdicionar.Show
Unload Me
Depois:
'Carregando o FormGeral (que estava lento)
FormGeral.Show
Unload Me
Aào formGeral fica normal de novo.
Resolvido!
Pesquisando no site da dona do banco de dados (http://support.microsoft.com/default.aspx?scid=kb;pt-br;283849), encontrei alguns dizeres que podem causar problemas no banco de dados. Tipo quedas de energia elétrica com o banco de dados aberto.
Isso já aconteceu aqui algumas vezes no passado (antes de ficar tão lento).
Então abri o banco de dados no próprio ACCESS e depois: Ferramentas > Utilitário de banco de dados > Compacta e reparar banco de dados.
Aó o menino ficou rápido... mais rápido do que nunca!
Só não tenho uma explicação do motivo pelo qual esse banco de dados ficou lento de uma hora pra outra. Provavelmente pode ser algum erro durante a gravação de algum registro.
Vlw galera!
Pesquisando no site da dona do banco de dados (http://support.microsoft.com/default.aspx?scid=kb;pt-br;283849), encontrei alguns dizeres que podem causar problemas no banco de dados. Tipo quedas de energia elétrica com o banco de dados aberto.
Isso já aconteceu aqui algumas vezes no passado (antes de ficar tão lento).
Então abri o banco de dados no próprio ACCESS e depois: Ferramentas > Utilitário de banco de dados > Compacta e reparar banco de dados.
Aó o menino ficou rápido... mais rápido do que nunca!
Só não tenho uma explicação do motivo pelo qual esse banco de dados ficou lento de uma hora pra outra. Provavelmente pode ser algum erro durante a gravação de algum registro.
Vlw galera!
Tópico encerrado , respostas não são mais permitidas