VBA Access - Erro 3052

Inline image 1
Vez por outra somos surpreendidos por alguns erros nas nossas aplicações MS Access, e em alguns momentos sequer fazemos ideia do que estes sejam (vá se acostumando).

Um dos erros que nos surpreendem, pegando-nos desprevenidos, é o erro 3052 ele aparece quando o número de bloqueios de compartilhamento de arquivos foi excedido, o valor padrão é 9.500. Sem nos apercebermos disso, excedemos o número máximo de bloqueios permitidos em um recordset, este limite é especificado pela definição MaxLocksPerFile no Registro do sistema.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Jet
4.0\MaxLocksPerFile

Como eliminá-lo? Aumente a entrada de registro MaxLocksPerFile, o valor padrão pode ser alterado por meio da edição do Registro com Regedit.exe ou com o método SetOption.

Application.DBEngine.SetOption dbMaxLocksPerFile, <NumLocks>

Altere o <NumLocks> para 1.000.000 ou algo maior do que 10.000 (um milhão poupará você de aplicar esse truque mais vezes) e o erro irá embora. Certifique-se de colocar a linha acima na sua subroutina, e evoque-a a partir do seu FORM principal.

Outros fatores que podem fazer o seu aplicativo atingir este limite são:

* quantidade de memória disponível
* tamanho das linhas no recordset
* restrições no sistema operacional da rede 


Mais detalhes
Inicializando o driver de mecanismo de banco de dados do Microsoft Jet 3.5
Personalizando configurações do Registro do Windows para Microsoft Jet


Pois é, desse erro você já se livrou . . . Mas . . . outros virão...


Tags: VBA, Access, error, erro, err, run-time, 3052, Jet 3.5, Jet, registry, registro

Nenhum comentário:

Postar um comentário

diHITT - Notícias