Compartilhar via


Coleção de erros (DAO)

Aplica-se ao: Access 2013, Office 2013

Uma coleção Errors contém todos os objetos Error armazenados, cada um dos quais pertence a uma única operação envolvendo o DAO.

Comentários

Qualquer operação envolvendo objetos do DAO pode gerar um ou mais erros. Quando cada erro ocorre, um ou mais objetos Error são colocados na coleção Errors do objeto DBEngine. Quando outra operação do DAO gera um erro, a coleção Errors é limpa e o novo conjunto de objetos Error é colocado na coleção Errors. O objeto de número mais elevado na coleção Errors (DBEngine.Errors.Count - 1) corresponde ao erro informado pelo objeto Err do Microsoft Visual Basic for Applications (VBA).

Operações do DAO que não geram erro não produzem efeito na coleção Errors.

Elementos da coleção Errors não são acrescentados como geralmente ocorre com outras coleções, portanto a coleção Errors não oferece suporte para os métodos Append e Delete.

O conjunto de objetos Error na coleção Errors descreve um erro. O primeiro objeto Error é o erro de nível mais baixo, o segundo, o próximo nível mais alto, e assim por diante. Por exemplo, se um erro de ODBC ocorre durante a tentativa de abrir um objeto Recordset, o primeiro objeto error contém o erro de ODBC de nível mais baixo; erros subsequentes contêm os erros de ODBC retornados pelas várias camadas de ODBC. Neste caso, o gerenciador de driver ODBC e possivelmente o próprio driver retornam objetos Error separados. O último objeto Error contém o erro do DAO indicando que o objeto não pôde ser aberto.

Enumerar os erros específicos na coleção Errors permite que suas rotinas de manipulação de erros determinem mais precisamente a causa e a origem de um erro e tomem as medidas de recuperação apropriadas.

Observação

[!OBSERVAçãO] Se você utiliza a palavra-chave New para criar um objeto que causa um erro tanto antes como quando ele está sendo colocado na coleção Errors, a coleção não conterá informações de erro sobre aquele objeto, porque o novo objeto não está associado ao objeto DBEngine. No entanto, a informação de erro estará disponível no objeto Err do VBA.

Exemplo

Este exemplo força um erro, captura-o e exibe as propriedades Description, Number, Source, HelpContext e HelpFile do objeto Error resultante.

Sub DescriptionX() 
 
 Dim dbsTest As Database 
 
 On Error GoTo ErrorHandler 
 
 ' Intentionally trigger an error. 
 Set dbsTest = OpenDatabase("NoDatabase") 
 
 Exit Sub 
 
ErrorHandler: 
 Dim strError As String 
 Dim errLoop As Error 
 
 ' Enumerate Errors collection and display properties of 
 ' each Error object. 
 For Each errLoop In Errors 
 With errLoop 
 strError = _ 
 "Error #" & .Number & vbCr 
 strError = strError & _ 
 " " & .Description & vbCr 
 strError = strError & _ 
 " (Source: " & .Source & ")" & vbCr 
 strError = strError & _ 
 "Press F1 to see topic " & .HelpContext & vbCr 
 strError = strError & _ 
 " in the file " & .HelpFile & "." 
 End With 
 MsgBox strError 
 Next 
 
 Resume Next 
 
End Sub