sexta-feira, 30 de agosto de 2013

Access: cuidados ao desabilitar avisos em macros e no VBA

As vezes quando damos manutenção em sistemas complexos e com sequências longas de comandos, é comum deixar passar um pequeno detalhe que pode ser crucial para localizar um possível erro aparentemente sem explicação.
Ao criarmos uma macro quase sempre iniciamos com o comando "Definir Avisos - Não" para que o Access não exiba mensagens de confirmação a cada consulta executada. O equivalente no VBA é o DoCmd.SetWarnings False.
O problema é que os comandos acima desabilitam também as mensagens de erro.
Imaginem uma tabela com um campo numérico onde a instrução é alterar o conteúdo para uma letra. Óbvio que será exibida uma mensagem de erro, mas veja que na sequência abaixo isso não ocorrerá pois os avisos foram desabilitados:

Sub teste_aviso()

    DoCmd.SetWarnings False
        DoCmd.RunSQL "UPDATE Tabela1 SET campo_numerico = 'A'"
    DoCmd.SetWarnings True    

    MsgBox "Consulta executada"

End Sub  


A dica portanto é, na hora de depurar a macro ou código VBA, executar consulta por consulta e acompanhar as mensagens de alerta do Access. Dá trabalho, demora, é necessário muita paciência e atenção.
Somente após ter certeza de que tudo está "ok", aí sim podemos desabilitar as mensagens seja por "Definir Avisos - Não" ou "DoCmd.SetWarnings False".

;-)

Um comentário:

Unknown disse...

Concordo plenamente com seu post! Está de Parabéns ! Estou fazendo um pacote office no ADV www.cursoadv.com.br e estou gostando muito. Não achei a parte de Excel com VBA tão difícil, basta entender a lógica da ferramenta !

Pesquisar este blog

Arquivo do blog

Quem sou eu

Minha foto
Administrador de Empresas/Técnico em Processamento de Dados. Microsoft Office User Specialist - Excel Proficient. Pós-graduado em Business Intelligence.