MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


    [Resolvido]Gerar relatório de erros ao final da atualização.

    avatar
    Daniel Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 88
    Registrado : 16/05/2012

    [Resolvido]Gerar relatório de erros ao final da atualização. Empty Gerar relatório de erros ao final da atualização.

    Mensagem  Daniel Meireles 23/5/2012, 13:39

    Bom dia a todos!
    Utilizo o access 2007 e gostaria de um código que ao final das minhas atualizações o access gerasse um relatório me informando quais as tabelas não foram atualizadas.

    Agradeço desde já.
    avatar
    Convidado
    Convidado


    [Resolvido]Gerar relatório de erros ao final da atualização. Empty Re: [Resolvido]Gerar relatório de erros ao final da atualização.

    Mensagem  Convidado 24/5/2012, 21:15

    Boa tarde daniel, post o código que utiliza para a atualização...

    Quando há tabelas que não foram atualizadas, como isso é identificado no código?


    Cumprimentos.
    avatar
    Daniel Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 88
    Registrado : 16/05/2012

    [Resolvido]Gerar relatório de erros ao final da atualização. Empty Harysohn

    Mensagem  Daniel Meireles 4/6/2012, 18:25

    Boa tarde!
    Desculpa pela demora,

    A forma que eu faço não é das melhores mas é o que meu conhecimento me permite.
    Eu coloquei este código no "timer" do formulario para atualizar minhas macros.
    Option Compare Database

    Private Sub Form_Timer()
    Me.Label0.Caption = Format(Now, "hh:mm:ss")
    If Me.Label0.Caption = "07:00:00" Then
    DoCmd.RunMacro "M Atualizar all"
    End If
    End Sub

    e eu utilizo a macro com as ações seguinte forma:

    On Error Next
    RunMacro Importar curva ABC
    RunMacro Importar Peças.txt
    RunMacro Importar CCC.txt
    RunMacro Importar Almox.txt
    RunMacro Importar Simas.txt
    RunMacro Importar D logistica
    RunMacro Importar ECO.txt
    MsgBox Ok atualizado

    Sei que não é a melhor forma, mas não sei fazer essas atualizações em VBA.

    Ao final desta atualização eu queria que o access me avisasse de alguma forma quais atualizações não foram feitas.

    Agradeço desde já.
    avatar
    Convidado
    Convidado


    [Resolvido]Gerar relatório de erros ao final da atualização. Empty Re: [Resolvido]Gerar relatório de erros ao final da atualização.

    Mensagem  Convidado 4/6/2012, 20:21

    Voce esta utilizando o tratamento de erro : On Error Resume Next

    Esse tratamento ignora o erro e vai para o proximo procedimento.

    Primeiro retire este código e rode e veje qual o numero do erro para quando uma tabela nao é utilizada.
    Anote estes erros.

    E no tratamento remeta o tratamento para que quando ocorra o erro, grave em uma tabela o erro ocorrido.

    Algo assim:
    On Error Goto TrataErro
    Dim Msg as String

    Seu Código aqui.........

    Exi Sub
    Exit_TrataErro:
    DoCmd.Hourglass False
    DoCmd.Echo True
    Exit Sub

    TrataErro:
    If Err.Number = 0 Then 'aqui vai o numero do erro
    Instrução INSERT INTO (para adicionar o erro e informação que achar pertinente)
    Resume Next (prossegue o código)
    Else
    DoCmd.Hourglass False
    DoCmd.Echo True
    Msg = "Erro # " & Str(Err.Number) & " gerado na " & Err.Source _
    & vbNewLine & vbNewLine & "Descrição: " & Err.Description _
    & vbNewLine & vbNewLine & "Por favor contate o Administrador de Sistema."
    MsgBox Msg, vbMsgBoxHelpButton + vbCritical, "Erro", Err.HelpFile, Err.HelpContext
    Resume Exit_TrataErro
    End If
    End Sub


    Cumprimentos.
    avatar
    Daniel Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 88
    Registrado : 16/05/2012

    [Resolvido]Gerar relatório de erros ao final da atualização. Empty Re: [Resolvido]Gerar relatório de erros ao final da atualização.

    Mensagem  Daniel Meireles 12/6/2012, 03:09

    Amigo, desculpa pela demora novamente, eu tentei adequar este código ao meu BD mas não consegui. Se não for muito incomodo, vc pode dar uma olhada neste exemplo que eu estou anexando, nele tem o formulário com o codigo no timer do evento, se você colocar o horario determinado ele não irá atualizar as tabelas pois não encontrara o local do arquivo txt.
    Eu queria que o access gerasse um relatório ou algo parecido exatamente quando ele não encontrar o arquivo,porém que continue a atualização.


    Eu já estou muito grato pela sua atenção. Valeu mesmo.
    avatar
    Convidado
    Convidado


    [Resolvido]Gerar relatório de erros ao final da atualização. Empty Re: [Resolvido]Gerar relatório de erros ao final da atualização.

    Mensagem  Convidado 12/6/2012, 14:24

    Boas Daniel segue o bd..

    E algo por ai...

    Nas macros alterei de G para C:\ para nao dar erro de busca por rede.


    https://dl.dropbox.com/u/26441349/DanielMeirelles.rar


    Cumprimentos.
    avatar
    Daniel Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 88
    Registrado : 16/05/2012

    [Resolvido]Gerar relatório de erros ao final da atualização. Empty Re: [Resolvido]Gerar relatório de erros ao final da atualização.

    Mensagem  Daniel Meireles 12/6/2012, 19:27

    Boa tarde Harysohn.

    Obrigado pela sua atenção, sempre prestativo.

    Não deu certo aqui pq este codigo necessita do numero do erro, e eu percebi aqui que ele não gera um numero de erro, somente gera uma mensagem assim:

    "Microsoft Office Access cant't find the object "Minha tabela".

    e é justamente esse erro,mas não gera o número, mais ou menos assim:

    É pra atualizar a tabela ABC importando do diretório G:LOGISTICA/PROJETOS/ABC.txt

    e neste diretório o arquivo ABC.txt não está.

    Será que esse dá pra adaptar esse código que vc me passou e gerar um relatório ao final dos arquivos não encontrados?

    PS: Você já me ajudou muito, e eu fico sem graça de ficar insistindo, se quiser eu fecho o tópico como resolvido.

    abraço.


    avatar
    Convidado
    Convidado


    [Resolvido]Gerar relatório de erros ao final da atualização. Empty Re: [Resolvido]Gerar relatório de erros ao final da atualização.

    Mensagem  Convidado 12/6/2012, 20:11

    Observe que no tratamento de erros faz referencia tanto ao numero como a descrição do erro..

    tente assim:


    TrataErro:
    If Err.Desciption = "Microsoft Office Access cant't find the object "Minha tabela"" 'Onde esta a tabela tem que ser o nome da sua tabela

    Instrução INSERT INTO (para adicionar o erro e informação que achar pertinente)
    Resume Next (prossegue o código)
    Else
    DoCmd.Hourglass False
    DoCmd.Echo True
    Msg = "Erro # " & Str(Err.Number) & " gerado na " & Err.Source _
    & vbNewLine & vbNewLine & "Descrição: " & Err.Description _
    & vbNewLine & vbNewLine & "Por favor contate o Administrador de Sistema."
    MsgBox Msg, vbMsgBoxHelpButton + vbCritical, "Erro", Err.HelpFile, Err.HelpContext
    Resume Exit_TrataErro
    End If
    End Sub


    avatar
    Convidado
    Convidado


    [Resolvido]Gerar relatório de erros ao final da atualização. Empty Re: [Resolvido]Gerar relatório de erros ao final da atualização.

    Mensagem  Convidado 12/6/2012, 20:12

    Agora o ideal seria substituir essas macros por rotinas em VBA..

    Essa mensagem de texto com o erro deve ser oriunda da macro...

    porém de macro eu entendo patavina amigão.

    Cumprimentos.
    avatar
    Daniel Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 88
    Registrado : 16/05/2012

    [Resolvido]Gerar relatório de erros ao final da atualização. Empty Re: [Resolvido]Gerar relatório de erros ao final da atualização.

    Mensagem  Daniel Meireles 13/6/2012, 03:02

    rsrsrs

    e de VBA sou eu que entendo patavina, você já fez algo parecido sem utilizar macros?

    eu vou tentar amanhã na empresa e respondo aqui se deu certo assim.


    grato.
    avatar
    Daniel Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 88
    Registrado : 16/05/2012

    [Resolvido]Gerar relatório de erros ao final da atualização. Empty Re: [Resolvido]Gerar relatório de erros ao final da atualização.

    Mensagem  Daniel Meireles 13/6/2012, 13:53

    Descobri o número do erro, é o 3011.

    Só que ao substituir o número do erro que você colocou para o erro 3011, não irforma a descrição na tabela tblLogErros.

    to frustrado com isso. confused

    avatar
    Convidado
    Convidado


    [Resolvido]Gerar relatório de erros ao final da atualização. Empty Re: [Resolvido]Gerar relatório de erros ao final da atualização.

    Mensagem  Convidado 13/6/2012, 14:17

    Se frusta muito facil amigão....
    Coloque o codigo que esta utilizan do, conforme aplicacao ai em teu bd

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Gerar relatório de erros ao final da atualização. Empty Re: [Resolvido]Gerar relatório de erros ao final da atualização.

    Mensagem  Convidado 13/6/2012, 14:26

    Daniel, observe essa imagem...

    Marque as linhas do código com pontos de interrupção...
    ao ser executada a rotina, ele ira passar linha a linha (faixa amarela como esta ai)

    Ao ocorrer erro o codigo (Faixa amarela) irá para o comando:

    If Err..... onde terá o numero do erro, se o erro acontecido for igual ao erro dessa linha, ele continuará na instrução Insert Into...

    Veja isso, observe e nos de um retorno.

    [Resolvido]Gerar relatório de erros ao final da atualização. Imagem


    Cumprimentos.
    avatar
    Daniel Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 88
    Registrado : 16/05/2012

    [Resolvido]Gerar relatório de erros ao final da atualização. Empty Re: [Resolvido]Gerar relatório de erros ao final da atualização.

    Mensagem  Daniel Meireles 14/6/2012, 13:16

    Harysohn, muito obrigado pela ajuda, muito mesmo, mas eu não estou conseguindo fazer dar certo esse codigo, mesmo com todas suas dicas, preciso estudar mais e encontrar outro modo de fazer isso. Eu coloquei o topico como resolvido.

    agradeço muito a atenção.

    obrigado
    avatar
    Convidado
    Convidado


    [Resolvido]Gerar relatório de erros ao final da atualização. Empty Re: [Resolvido]Gerar relatório de erros ao final da atualização.

    Mensagem  Convidado 14/6/2012, 16:01

    Uma dica..
    coloque uma tópico na sala Macros, pedindo para que alguem lhe ajudar a transformar estas macros em VBA, depois disso volte aqui e vamos fazer isso funcionar ok?


    Aguardo

    Cumprimentos.
    avatar
    Daniel Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 88
    Registrado : 16/05/2012

    [Resolvido]Gerar relatório de erros ao final da atualização. Empty Re: [Resolvido]Gerar relatório de erros ao final da atualização.

    Mensagem  Daniel Meireles 15/6/2012, 14:14

    Obrigado cara, estou retornando.

    converti as macros em VBA,talvez agora nós podemos conseguir.

    Anexei o mesmo arquivo anterior e o VBA das macros estão nos modulos.

    muito obrigado novamente.
    avatar
    Convidado
    Convidado


    [Resolvido]Gerar relatório de erros ao final da atualização. Empty Re: [Resolvido]Gerar relatório de erros ao final da atualização.

    Mensagem  Convidado 15/6/2012, 19:45

    Amigao... coloque o numero do erro que der ai no tratamento de erros, se for mais de um erro podes is adicionando quantos forem.


    On Error GoTo TrataErro

    Me.Label1.Caption = Format(Now, "hh:mm:ss")
    If Me.Label1.Caption = "09:58:00" Then

    DoCmd.DeleteObject acTable, "CCC"
    DoCmd.TransferText acImportDelim, "CCC Import Specification", "CCC", "G:\LOGÍSTICA\TDEDL\Projetos\Projetos 2012\CCC\CCC.txt", False, ""

    DoCmd.DeleteObject acTable, "ABC"
    DoCmd.TransferDatabase acImport, "Microsoft Access", "G:\COMUM\01 - BANCO DE DADOS\02 - LOGISTICA\Projetos 2009\Projetos 2009.mdb", acTable, "ABC", "ABC", False

    DoCmd.DeleteObject acTable, "ALMOXARIFADO_MU"
    DoCmd.TransferText acImportFixed, "MU ALMOXARIFADO", "ALMOXARIFADO_MU", "\\lupus\public\ALMOXARIFADO_MU.txt", False, ""

    DoCmd.DeleteObject acTable, "Pecas New"
    DoCmd.TransferText acImportFixed, "PECAS NEW", "Pecas New", "\\lupus\public\pecas.txt", False, ""

    MsgBox "Ok atualizado", vbInformation, "Atenção"

    End If
    Exit Sub
    Exit_TrataErro:
    DoCmd.Hourglass False
    DoCmd.Echo True
    Exit Sub

    TrataErro:
    If Err.Number = 3044 Then 'aqui vai o numero do erro
    DoCmd.SetWarnings False
    DoCmd.RunSQL ("INSERT INTO tblLogErros (LogErros) Values(""" & Err.Description & """)")
    DoCmd.SetWarnings True
    Resume Next '(prossegue o código)
    Else
    DoCmd.Hourglass False
    DoCmd.Echo True
    Msg = "Erro # " & Str(Err.Number) & " gerado na " & Err.Source _
    & vbNewLine & vbNewLine & "Descrição: " & Err.Description _
    & vbNewLine & vbNewLine & "Por favor contate o Administrador de Sistema."
    MsgBox Msg, vbMsgBoxHelpButton + vbCritical, "Erro", Err.HelpFile, Err.HelpContext
    Resume Exit_TrataErro
    End If
    End Sub


    Observe que este tratamento esta para 1 erro, mas podes aplicar em mais utilizando o ElseIf

    TrataErro:
    If Err.Number = 3044 Then 'aqui vai o numero do erro
    DoCmd.SetWarnings False
    DoCmd.RunSQL ("INSERT INTO tblLogErros (LogErros) Values(""" & Err.Description & """)")
    DoCmd.SetWarnings True
    Resume Next '(prossegue o código)
    ElseIf Err.Number = XXX Then 'aqui vai o numero do erro
    DoCmd.SetWarnings False
    DoCmd.RunSQL ("INSERT INTO tblLogErros (LogErros) Values(""" & Err.Description & """)")
    DoCmd.SetWarnings True



    Cumprimentos.
    avatar
    Daniel Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 88
    Registrado : 16/05/2012

    [Resolvido]Gerar relatório de erros ao final da atualização. Empty Re: [Resolvido]Gerar relatório de erros ao final da atualização.

    Mensagem  Daniel Meireles 19/6/2012, 15:25

    Perfeito meu amigo, deu certo!

    você fez eu ganhar o dia, o meu humor e do meu chefe ao ver isso aumentaram muito também, e ele também agradece a ajuda.

    muito obrigado pela paciência, muito mesmo!

    e pode contar comigo também.

    abraço
    avatar
    Convidado
    Convidado


    [Resolvido]Gerar relatório de erros ao final da atualização. Empty Re: [Resolvido]Gerar relatório de erros ao final da atualização.

    Mensagem  Convidado 19/6/2012, 15:58

    E pensar que ia desistir tão fácilmente...

    Harysohn, muito obrigado pela ajuda, muito mesmo, mas eu não estou conseguindo fazer dar certo esse codigo, mesmo com todas suas dicas, preciso estudar mais e encontrar outro modo de fazer isso. Eu coloquei o topico como resolvido.

    Nunca Desista!

    O Fórum agradece o retorno.


    **** Não se esqueça de clicar no joinha da mensagem que o auxiliou.
    avatar
    Daniel Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 88
    Registrado : 16/05/2012

    [Resolvido]Gerar relatório de erros ao final da atualização. Empty Re: [Resolvido]Gerar relatório de erros ao final da atualização.

    Mensagem  Daniel Meireles 19/6/2012, 18:34

    É verdade, se eu tivesse desistido estaria fazendo tudo no braço ainda.

    Obrigado.

    Conteúdo patrocinado


    [Resolvido]Gerar relatório de erros ao final da atualização. Empty Re: [Resolvido]Gerar relatório de erros ao final da atualização.

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/4/2024, 12:58