OLHA QUE ESTRANHO. NEM DA PRA EXPLICAR NO TITULO..

USUARIO.EXCLUIDOS 11/09/2007 11:59:52
#235019
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:


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...
USUARIO.EXCLUIDOS 11/09/2007 13:10:03
#235044
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.
USUARIO.EXCLUIDOS 11/09/2007 14:27:01
#235063
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:



'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.
USUARIO.EXCLUIDOS 12/09/2007 08:33:23
#235144
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!
Página 2 de 2 [14 registro(s)]
Tópico encerrado , respostas não são mais permitidas