Acesso VBA: suprimida erros de execução

votos
0

Enquanto eu estou desenvolvendo meu aplicativo do Access MS, eu abri-lo com shift clique. Quando ocorre um erro, que não está preso (por ON ERROR ...), uma caixa de mensagem aparece informando-me sobre o erro. Isto é uma coisa boa.

Quando um usuário abrir o meu pedido, ele does't Shift + clique, e um formulário de início apropriado abre. No entanto, agora Erros untrapped não aparecem, o aplicativo se comporta como se o usuário clicou no botão Parar na caixa de mensagem. Eu não quero que esse comportamento.

Existe uma opção / property / variável que fornece o mesmo comportamento no código de produção (de preferência, mesmo quando o ID de aplicativo convertido em um mde) como em desenvolvimento, ou seja, mostrar uma caixa de mensagem para cada erro untrapped? Ou é neccessary para interceptar erros em cada rotina evento único e aparecer uma caixa de mensagem pelo programa?

Publicado 10/12/2008 em 12:24
fonte usuário
Em outras línguas...                            


3 respostas

votos
1

Acontece que, este é um efeito colateral de definir a propriedade AllowSpecialKeys para Falso. Isso pode ser feito por meio de programação, mas eu fiz isso no menu em Ferramentas> StartUp.

Desde esta propriedade permite que o usuário a abrir o editor de código, que tipo de faz sentido, mas a relação do phenomen descrito para esta opção foi intrigante para mim.

Quer isto dizer que, se eu quero esconder o meu código, eu preciso escrever todos os manipuladores de erro? Ou há um lugar central (como um método principal de Java) onde posso invocar um manipulador de erro. Como alternativa, eu poderia permitir chaves specical e apenas proteger o código com uma palavra-chave?

Respondeu 10/12/2008 em 17:37
fonte usuário

votos
0

Como mencionado, MZ-Tools 3.0 é uma ótima ferramenta para ajudar na rápida adicionando manipuladores de erro. Lembre-se também que os erros que ocorrem em procedimentos sem manipuladores de erro "bubble up" a este último chamado em declaração erro. (E se existe nenhuma declaração que você começa a caixinha de depuração cinza.) O efeito líquido desta, é que você pode fazer manipulação de erro mínima, simplesmente adicionando manipuladores de erro somente para os procedimentos que são públicos (ou amigo) ou chamado pelo evento. Isso irá garantir que você sempre ter pelo menos 1 "nível superior" manipulador de erro invocado. Se você quiser adicionar um tratamento especial aos seus procedimentos particulares depois que se sentir livre. Se não, quando ocorre um erro neles eles vão "bubble up" para o manipulador de erro nível superior.

Respondeu 22/05/2009 em 03:04
fonte usuário

votos
0

Você pode criar seu próprio manipulador de erro e adicioná-lo a todos os procs, subs e funções. Você tem esse muito bom Ferramentas MZ add-on VBA que permite muitas coisas, tais como a adição de números de linha ao seu código, "pré-programação" sua etiqueta de erro, etc.

Se você é inteligente o suficiente, você será capaz de usar este add-on para gerar um código padrão "gestão de erro" exibindo coisas como err.number, err.description, eo valor undocument erl, que é o número do linha onde ocorreu o erro (você deve primeiro ter suas linhas numeradas antes de ser capaz de obter esse valor).

EDIT: Eu só abriu esta pergunta sobre um assunto similar.

Respondeu 10/12/2008 em 23:09
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more