Artigo: 209884 - Última revisão: quarta-feira, 11 de Outubro de 2006 - Revisão: 3.2

ACC2000: Como desactivar a opção "Interromper em todos os erros" no código

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Avançado: Requer conhecimentos avançados sobre codificação, interoperabilidade e multi-utilizador.

Nesta página

Expandir tudo | Reduzir tudo

Sumário

Este artigo mostra como desactivar a opção de quebra em todos os erros no Visual Basic para código de aplicações impedir que utilizadores interromper o rotinas de tratamento de erro.

Mais Informação

Mesmo quando o código contém rotinas, tratamento de erros se partilhar a base de dados com um utilizador com a opção de quebra em todos os erros activada no Microsoft Access, um erro de tempo de execução faz com que o código parar e abrir o módulo que contém o erro. Se não pretender utilizadores para processar erros de tempo de execução, pode criar procedimentos suspender a opção de quebra em todos os erros enquanto o código está em execução.

A Microsoft fornece exemplos de programação apenas, para fins sem garantia expressa ou implícita. Isto inclui, mas não está limitado a, as garantias implícitas de comercialização ou adequação a um fim específico. Este artigo pressupõe que está familiarizado com a linguagem de programação apresentada e as ferramentas que são utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador.

Procedimentos de exemplo para suspender e continuar a opção "Interromper em todos os erros"

Pode utilizar os procedimentos de exemplo na sua própria base de dados para suspender temporariamente a opção de quebra em todos os erros . Note que funcionam estes procedimentos, se a opção de quebra de todos os erros está definida ou não. Pode inclui-las no código como contra adicionada expor erros de tempo de execução:
  1. Crie um módulo e escreva a seguinte linha na secção Declarations:
    Dim varOldBOAEOptions As Variant
    					
  2. Escreva os seguintes procedimentos:
    '-----------------------------------------------------------------
    ' Save the current setting for the "Break on All Errors" option
    ' Turn off the "Break on All Errors" option.
    '-----------------------------------------------------------------
    
    Public Sub SuspendBreaks()
    
       varOldBOAEOptions = GetOption("Error Trapping")
       SetOption "Error Trapping", 2
    
    End Sub
    
    '-----------------------------------------------------------------
    ' Restore the "Break on All Errors" settings that were temporarily
    ' suspended by the SuspendBreaks procedure.
    '-----------------------------------------------------------------
    
    Public Sub ResumeBreaks()
    
       If Not IsEmpty(varOldBOAEOptions) Then _
         SetOption "Error Trapping", varOldBOAEOptions
    
    End Sub
    					
  3. Guarde o módulo como basErrHandling.
  4. Quando pretender garantir que a quebra de todos os erros "opção não interromper a execução do código, chamar o procedimento SuspendBreaks no início do código e chamar o procedimento ResumeBreaks no fim. Por exemplo:
    Function MyCodeModule()
       SuspendBreaks
       On Error GoTo MyCodeModule_Err
    
       ' Add your code here.
    
    MyCodeModule_Exit:
       ResumeBreaks
       Exit Function
    
    MyCodeModule_Err:
    
       ' Add your error handling routine here.
    
       Resume MyCodeModule_Exit
    End Function
    					

Exemplo de mostrar os resultados das diferentes definições de "Interromper em todos os erros"

O exemplo seguinte demonstra o que acontece quando código contém rotinas de tratamento de erros é executado com a opção de Interromper em todos os erros activada.

Nota : O código de exemplo deste artigo utiliza Microsoft Data Access Objects. Para que este código seja executado correctamente, tem de referenciar a biblioteca Microsoft DAO 3.6 Object Library. Para o fazer, clique em References no menu Ferramentas no Editor do Visual Basic e certifique-se de que está seleccionada a caixa de verificação Microsoft DAO 3.6 Object Library .

  1. Inicie o Microsoft Access e crie uma nova base de dados vazia denominada MyError.mdb.
  2. Siga os passos 1 a 3 na secção anterior para criar os procedimentos que suspender e retomar a opção de quebra em todos os erros .
  3. Criar um novo formulário não baseado em qualquer tabela ou consulta na vista de estrutura:
       Form: frmTestErrors
       ----------------------------------------------------
       Caption: Test Error Handling
    
       Text box:
          Name: txtUName
       Text box:
          Name: txtPwd
       Command button:
          Name: cmdOK
          Caption: Without Turning Off Break On All Errors
          OnClick: [Event Procedure]
       Command button:
          Name: cmdOKBreakOff
          Caption: Turning Off Break On All Errors
          OnClick: [Event Procedure]
       Command button:
          Name: cmdCancel
          Caption: Cancel
          OnClick: [Event Procedure]
    					
  4. No menu Ver , clique em código e, em seguida, escreva os seguintes procedimentos:
    '---------------------------------------------------------------
    ' Test UserName and Password.
    ' Returns:
    '   True if UserName and Password are valid.
    '   False if UserName and Password are invalid.
    ' Displays corresponding error message.
    '-------------------------------------------------------------
    
    Public Function ChkPwd(uid As String, strPwd As String)
       On Error GoTo badPwd
       Dim ws As DAO.Workspace
       Set ws = DAO.DBEngine.CreateWorkspace("TestPWD", uid, strPwd)
       MsgBox "Your password is correct, " & uid
       ChkPwd = True
    
    exitChkPwd:
       Exit Function
    
    badPwd:
       MsgBox "Not the right UserName or Password, " & uid & _
         ", if that is your real name!"
       ChkPwd = False
       Resume exitChkPwd
    End Function
    
    Private Sub cmdOK_Click() ' Without "Break on All Errors" turned off.
       Call ChkPwd(Me![txtUName] & "", Me![txtPwd] & "")
    End Sub
    
    Private Sub cmdOKBreakOff_Click()
       SuspendBreaks  ' Turn off "Break on All Errors."
       Call ChkPwd(Me![txtUName] & "", Me![txtPwd] & "")
       ResumeBreaks   ' Reset "Break on All Errors."
    End Sub
    
    Private Sub cmdCancel_Click()
       DoCmd.Close
    End Sub
    					
  5. No menu Ferramentas , clique em Opções .
  6. Na caixa de diálogo Opções , clique no separador Geral e, em seguida, clique em Interromper em todos os erros . Clique em OK .
  7. No menu ficheiro , clique em Close and Return to Microsoft Access .
  8. Guarde o formulário frmTestErrors e fechá-lo.
  9. Abra o formulário frmTestErrors na vista de formulário.
  10. Escreva Utilizador1 na caixa txtUName e escreva MinhaPalavraPasse na caixa txtPwd. Clique em Sem activar desactivar interromper em todos os erros e repare que receberá a seguinte mensagem de erro em tempo de execução, mesmo que o código processa erros:
    Run-time error '3029':
    Não uma conta válida do nome ou palavra-passe.
    Clique em Terminar em resposta à mensagem de erro.
  11. Clique em Activar desactivar quebra em todos os erros . Tenha em atenção que a rotina de tratamento de erro produz a seguinte mensagem:
    Não o NomeUtilizador direita ou palavra-passe, Utilizador1, se esse é o seu nome verdadeiro!

Referências

Para mais informações sobre métodos GetOption e SetOption, no Editor do Visual Basic, clique em Ajuda do Microsoft Visual Basic no menu Ajuda , escreva GetOption, SetOption métodos no Assistente do Office ou no Assistente de respostas e, em seguida, clique em Procurar para visualizar o tópico.

A informação contida neste artigo aplica-se a:
  • Microsoft Access 2000 Standard Edition
Palavras-chave: 
kbmt kbcode kbhowto kbprogramming KB209884 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 209884  (http://support.microsoft.com/kb/209884/en-us/ )