GD Access    GD Access    Grupo de Discussão  Ir para Categorias  Grupos técnicos  Ir para Fóruns  Access    Tabela de erros
Go
Novo
Procurar
Notificar
Ferramentas
Responder
  
-star Rating Vote!  Login/Cadastrar 
Analista Júnior

Figura de  Carlos E. Moretti
postado
Onde posso conseguir uma tabela de erros do Access ?

Por exemplo,

3022 = Chave Duplicada
3058 = Chave Nula

Grato

[]s

CEM
carlosemoretti@ig.com.br

Bravo Nosso problema é que nunca tentamos o óbvio antes de termos gritado, xingado, amaldiçoado, culpado o hardware, o software e as pessoas à nossa volta! Envergonhado
 
Postagens: 549 | Localização: Santo André - SP | Registrado: 10 March 2003Reply With QuoteEditar ou Apagar MensagemReport This Post
JR
Analista Pleno

postado Hide Post
Olá,
Na Ajuda online (F1) do Access 97, há o exemplo de uma rotina que cria uma tabela com os erros:

quote:
Determinar os Códigos de Erro Reservados pelo Visual Basic

O procedimento a seguir cria uma tabela no Microsoft Access contendo
os códigos e seqüências de erro utilizados ou reservados pelo Visual
Basic. A tabela não inclui erros de objetos de acesso a dados(DAO).

O Visual Basic reserva uma parte dos primeiros mil números de erro
possíveis, portanto esse exemplo apenas considera os números de erro
entre 1 e 1000. Outros números de erro são reservados pelo mecanismo
de banco de dados Microsoft Jet ou estão disponíveis para definição
de erros personalizados.


Sub CriarTabelaDeErros()
	Dim dbs As Database, tdf As TableDef, fld As Field
	Dim rst As Recordset, lngCódigo As Long
	Const conErroAplObjeto = "Erro definido pelo aplicativo ou definido pelo objeto"

	' Cria tabela Erros com campos NúmeroDoErro e                                                                                                                                                                                            'DescriçãoDoErro.
	Set dbs = CurrentDb

Set tdf = dbs.CreateTableDef("Erros")
	Set fld = tdf.CreateField("NúmeroDoErro", dbLong)
	tdf.Fields.Append fld
	Set fld = tdf.CreateField("DescriçãoDoErro", dbText, 255)
	tdf.Fields.Append fld
	dbs.TableDefs.Append tdf
	' Abre conjunto de registros na tabela Erros.
	Set rst = dbs.OpenRecordset("Erros")
	' Executa loop pelos primeiros 1000 códigos de erro 'do Visual Basic.
	For lngCódigo = 1 To 1000
		On Error Resume Next
		' Provoca cada um dos erros.

Err.Raise lngCódigo
		DoCmd.Hourglass True
		' Pula os códigos de erro que geram erros 'definidos pelo aplicativo ou pelo objeto.
		If Err.Description <> conErroAplObjeto Then
			' Adiciona cada código e seqüência de erro à ' tabela Erros.
			rst.AddNew
			rst!NúmeroDoErro = Err.Number
			rst!DescriçãoDoErro = Err.Description
			rst.Update
		End If
		' Limpa objeto Err.
		Err.Clear
	Next lngCódigo
	' Fecha o conjunto de registros.

rst.Close
	DoCmd.Hourglass False
	MsgBox "Tabela de erros criada"
End Sub


Boa sorte.

João Rodrigues (JR)
http://www.accessjr.cjb.net/
 
Postagens: 1132 | Localização: Rio de Janeiro, RJ, Brasil | Registrado: 24 March 2001Reply With QuoteEditar ou Apagar MensagemReport This Post
Analista Júnior

Figura de  Carlos E. Moretti
postado Hide Post
Obrigado, JR

No Access 2k, já havia procurado no F1 por "tabela de erros" e não havia encontrado.

Esta função resolve parte dos meus problemas. Agora e quanto aos erros do Jet. (Registro sendo alterado por outro usuário, e por aí a fora). Vc tem alguma "pista" ?

[]s

CEM
carlosemoretti@ig.com.br

Bravo Nosso problema é que nunca tentamos o óbvio antes de termos gritado, xingado, amaldiçoado, culpado o hardware, o software e as pessoas à nossa volta! Envergonhado
 
Postagens: 549 | Localização: Santo André - SP | Registrado: 10 March 2003Reply With QuoteEditar ou Apagar MensagemReport This Post
Analista Júnior

Figura de  Carlos E. Moretti
postado Hide Post
JR:

P/ rodar no Access 2k, alterei o código conforme abaixo:
  Dim rst As ADODB.Recordset, lngCódigo As Long
    Const conErroAplObjeto = "Erro de definição de aplicativo ou de definição de objeto"

    ' Cria tabela Erros com campos NúmeroDoErro e                                                                                                                                                                                            'DescriçãoDoErro.
    Set rst = New Recordset
    
    With rst
      .CursorType = adOpenForwardOnly
      .LockType = adLockOptimistic
      .Source = "Select * from erros"
      .Open , CurrentProject.Connection
    End With
    

    For lngCódigo = 1 To 1000
        On Error Resume Next
        ' Provoca cada um dos erros.

        Err.Raise lngCódigo
        DoCmd.Hourglass True
        ' Pula os códigos de erro que geram erros 'definidos pelo aplicativo ou pelo objeto.
        If Err.Description <> conErroAplObjeto Then
            ' Adiciona cada código e seqüência de erro à ' tabela Erros.
            rst.AddNew
            rst!NúmeroDoErro = Err.Number
            rst!DescriçãoDoErro = Err.Description
            rst.Update
        End If
        ' Limpa objeto Err.
        Err.Clear
    Next lngCódigo
    ' Fecha o conjunto de registros.

rst.Close
    DoCmd.Hourglass False
    MsgBox "Tabela de erros criada"



[]s

CEM
carlosemoretti@ig.com.br

Bravo Nosso problema é que nunca tentamos o óbvio antes de termos gritado, xingado, amaldiçoado, culpado o hardware, o software e as pessoas à nossa volta! Envergonhado
 
Postagens: 549 | Localização: Santo André - SP | Registrado: 10 March 2003Reply With QuoteEditar ou Apagar MensagemReport This Post
 Tópico Anterior | Próximo Tópico Powered by Eve For Enterprise  
 

GD Access    GD Access    Grupo de Discussão  Ir para Categorias  Grupos técnicos  Ir para Fóruns  Access    Tabela de erros

©