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


2 participantes

    [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string

    avatar
    Convidado
    Convidado


    [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string Empty Acao a tomar em código, gravado em tabela e aplicado a uma string

    Mensagem  Convidado 7/1/2013, 14:43

    Amigos. em uma tabela para Acoes a executar dependendo do erro ocorrido, tenho um Campo: AcoesATomar, onde tem em forma de texto algumas acoes a ser executada

    1 - Resume Next
    2 - MsgBox "blablablab"
    3 - AcaoX
    4 - Acao y

    Carrego esta ação em uma string...

    Como executar esta string? tem como?


    StrErro = DLookup("AcaoAExecutar", "tblErroDetalhe", "Procedimento = '" & CurrentProcName & "'")

    Executar >>>>>>>>> StrErro

    Cumprimentos.
    chsestrem
    chsestrem
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 463
    Registrado : 01/03/2010

    [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string Empty Re: [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string

    Mensagem  chsestrem 7/1/2013, 15:27

    Boa Tarde,

    Acho que poderia ser mais ou menos nesta lógica.

    StrErro = DLookup("AcaoAExecutar", "tblErroDetalhe", "Procedimento = '" & CurrentProcName & "'")

    If StrErro > 0 or = True then

    Currentdb.Execute Dlookup("Acoes a tomar","Tabelade Erros", "Acoes a Tomar = '" & StrErro & "'")

    End If


    .................................................................................
    Charles Sestrem
    http://www.vbabit.com.br
    avatar
    Convidado
    Convidado


    [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string Empty Re: [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string

    Mensagem  Convidado 7/1/2013, 15:33

    Ja havia tentado.. mas a função CurrentDb.Execute se refere a tabelas ou consultas...

    Imagine que vou emitir uma MsgBox. o que faço?

    MsgBox "Minha Mensagem"

    Agora neste caso eu tenho esse texto: >>> MsgBox "Minha Mensagem" <<< Em uma tabela

    Gravo este campo em uma String.... E ai que está... quero executar esta String para como se fosse a msgBox...
    ou seja ao inves dedigitar.. MsgBox"blbalblba" Digitaria apenas StrErro


    Nao sei se me fiz entender..

    Cumprimentos.
    chsestrem
    chsestrem
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 463
    Registrado : 01/03/2010

    [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string Empty Re: [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string

    Mensagem  chsestrem 7/1/2013, 15:45

    Bom, pensei que era pra executar uma ação SQL

    Mas se é pra executar mensagem, jogue o dlookup pra uma variável

    StrErro = DLookup("AcaoAExecutar", "tblErroDetalhe", "Procedimento = '" & CurrentProcName & "'")

    If StrErro > 0 then

    Dim StrMensagemErro as String

    StrMensagemErro = Dlookup("Acoes a tomar","Tabelade Erros", "Acoes a Tomar = '" & StrErro & "'")

    MsgBox StrMensagemErro

    End If


    .................................................................................
    Charles Sestrem
    http://www.vbabit.com.br
    avatar
    Convidado
    Convidado


    [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string Empty Re: [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string

    Mensagem  Convidado 7/1/2013, 15:52

    Certo amigão.. A questão é que nem todas as acoes serão mensagens...

    pode ter algum procedimento comopor exemplo: ResumeNext...

    E dai?

    Cumprimetos.
    chsestrem
    chsestrem
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 463
    Registrado : 01/03/2010

    [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string Empty Re: [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string

    Mensagem  chsestrem 7/1/2013, 17:15

    Uma idéia é você criar mais um campo nesta tabela de erros, ex;TipoErro

    1 = Mensagem
    2 = sql
    3 = Resume Next

    Puxar o tipo Erro na expressão do Dlookup

    e usar um select Case para executar a ação necessária, conforme for o erro.

    Sds,




    .................................................................................
    Charles Sestrem
    http://www.vbabit.com.br
    avatar
    Convidado
    Convidado


    [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string Empty Re: [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string

    Mensagem  Convidado 7/1/2013, 19:08

    Ei é que está... Eu estou justamente querendo evitaro select case ou o if...

    Automatizar todo o processo: O tratamento de erros, Veja:


    Function LogError(ByVal lngErrNumber As Long, ByVal strErrDescription As String, _
    strCallingProc As String, FormName As String, Linha, Optional vParameters, Optional bShowUser As Boolean = True) As Boolean
    10 On Error GoTo Err_LogError
    Dim ExecutaErro As String
    'Objetivo: manipulador de erro genérico.
    'Registra erros para "tblLogErros" da tabela.
    'Argumentos: lngErrNumber - valor de Err.Number
    'StrErrDescription - valor de Err.Description
    'StrCallingProc - nome da sub | função que gerou o erro.
    'VParameters - String opcional: Lista de parâmetros para gravar.
    'BShowUser - boolean opcional: Se for False, suprime a exibição.
    'Autor: Allen Browne, allen@allenbrowne.com
    'Adaptado por PILOTO (Fórum Máximo Access em 07/01/2013 - Harysohn@hotmail.com

    Dim StrMsg As String ' String for display in MsgBox
    Dim rst As DAO.Recordset ' The tLogError table

    20 Select Case lngErrNumber
    'Aqui vai o numero do erro, que caso exista em uma tabela, eu filtro: NumeroErro x NomeObjeto, e encontrando extraio a acao a ser executada para este erro
    ' Convém lembrar que um mesmo erro pode ocorrer por fatores diferentes que dependendo do caso tem uma acao: MsgBox ou Resume Next ou Exit Sub etc..
    'Esses erros estarao gravados em uma tabela e com a acao esperada..
    'Erro X no Botão Y = Acao W
    'Erro X no Botao N = Acao T

    Case NumeroErro
    30 Debug.Print strCallingProc & " called error 0."
    ' NomeErro
    40 Case 2501 ' Cancelado
    'Do nothing.
    50 Case 3314, 2101, 2115 ' Não é possível salvar.
    60 If bShowUser Then
    70 StrMsg = "O Registro não pode ser salvo no momento." & vbCrLf & _
    "Completar a entrada, ou pressione para desfazer."
    80 MsgBox StrMsg, vbExclamation, strCallingProc
    90 End If
    100 Case Else
    110 If bShowUser Then
    120 StrMsg = "Erro Gerado no: " & FormName & "" _
    & vbNewLine & "Erro Número: " & lngErrNumber _
    & vbNewLine & "Procedimento: " & CurrentProcName() _
    & vbNewLine & "linha: " & Linha _
    & vbNewLine & "Descrição: " & strErrDescription _
    & vbNewLine & "Por favor contate o Administrador de Sistema."
    130 MsgBox StrMsg, vbExclamation, strCallingProc
    140 Call Logtxt
    150 End If
    160 Set rst = CurrentDb.OpenRecordset("tblLogErros", , dbAppendOnly)
    170 rst.AddNew
    180 rst![ErroNumero] = lngErrNumber
    190 rst![ErroDescricao] = Left$(strErrDescription, 255)
    200 rst![ErroData] = Now()
    210 rst![NomeForm] = FormName
    220 rst![NomeProcedimento] = strCallingProc
    230 rst![NomeUsuario] = Usuario
    240 rst![MostrarUsuario] = bShowUser
    250 If Not IsMissing(vParameters) Then
    260 rst![Parametros] = Left(vParameters, 255)
    270 End If
    280 rst.Update
    290 rst.Close
    300 LogError = True
    310 End Select

    Exit_LogError:
    320 Set rst = Nothing
    330 Exit Function

    Err_LogError:
    340 StrMsg = "Uma situação inesperada surgiu em seu programa." & vbCrLf & _
    "Por Favor Anote os seguintes detalhes" & vbCrLf & vbCrLf & _
    "Procedimento: FUNÇÃO logError " & strCallingProc & vbCrLf & _
    "Numero do Erro: " & lngErrNumber & vbCrLf & strErrDescription & vbCrLf & vbCrLf & _
    "Numero da linha: " & Erl & vbCrLf & vbCrLf & _
    "Não foi possível gravar por causa do erro: " & err.Number & vbCrLf & err.Description
    350 MsgBox StrMsg, vbCritical, "LogError()"
    360 Resume Exit_LogError
    End Function


    Espero ter sido claro.

    Cumprimentos.
    Jungli
    Jungli
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 715
    Registrado : 07/05/2010

    [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string Empty Re: [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string

    Mensagem  Jungli 9/1/2013, 14:06

    Harry fiz um dbzinho que pega informações de uma tabela e executa comandos, msgbox, resumenext, comandos gerais do access, dá uma olhada, acho que dá pra adicionar ao teu log de erros.
    Anexos
    [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string AttachmentTeste Harry.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (62 Kb) Baixado 13 vez(es)
    avatar
    Convidado
    Convidado


    [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string Empty Re: [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string

    Mensagem  Convidado 9/1/2013, 15:18

    Boas Jungli, obrigado pela participação, irei estudar o teu exemplo e dou retorno.

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string Empty Re: [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string

    Mensagem  Convidado 10/1/2013, 02:51

    Bosa Jungli.. está em 2010?

    tem como mandar em 2007?

    Cumprimentos.
    Jungli
    Jungli
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 715
    Registrado : 07/05/2010

    [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string Empty Re: [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string

    Mensagem  Jungli 10/1/2013, 10:42

    Lá vai, em 2000
    Anexos
    [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string AttachmentTeste Harry_2000.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (59 Kb) Baixado 14 vez(es)
    avatar
    Convidado
    Convidado


    [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string Empty Re: [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string

    Mensagem  Convidado 12/1/2013, 14:56

    Boa Tarde Jungli... Estive a analisar o exemplo e é realmente isso que necessitava.

    Bem como está aberto a sugestões vai a primeira:

    na tblErroDetalhe você utiliza para realizar um comando segundo o erro ocorrido:

    strErro = DLookup("retorno", "tblErroDetalhe", "Evento = '" & Err.Number & "'")

    No Entanto o mesmo erro pode ter para sua solução, acões diferentes...

    Por exemplo o erro 2105 em um sistema meu, pode ter ação Resume Next ou Exit Sub dependendo do caso, então irei adicionar mais um critério na tabela para que além do Err.Number filtre pela ocasiao da sua ocorrência.

    Não sei se me fiz entender...

    Ja vou adaptá-lo ao meu.

    Me dou por satisfeito com o teu exemplo.

    Grato.
    avatar
    Convidado
    Convidado


    [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string Empty Re: [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string

    Mensagem  Convidado 17/1/2013, 03:15

    Amigo Jungli, o BD de tratamento de erros adaptado com o teu exemplo, até o momnto eu gostei...

    O teu exemplo foi essencial à realização dessa idéia.

    Abraços.

    http://maximoaccess.forumeiros.com/t11178-tratamento-de-erros-com-gravcao-de-log-de-erros-em-tabela#89055


    Cumprimentos.
    Jungli
    Jungli
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 715
    Registrado : 07/05/2010

    [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string Empty Re: [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string

    Mensagem  Jungli 17/1/2013, 11:28

    Razz Fico feliz em participar de projetos como este,
    alien abraços...
    avatar
    Convidado
    Convidado


    [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string Empty Re: [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string

    Mensagem  Convidado 20/1/2013, 13:24

    Boas Jungli... vamos ver se conseguimos adicionar mais algumas funcionalidades ao teu projeto...

    1 -l ações como Exit Sub?
    2 - Ações conjugadas como ResumeNext e MsgBox.

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string Empty Re: [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string

    Mensagem  Convidado 20/1/2013, 17:23

    Boas Jungli, dê uma olhada no exemplo que atualizei, para erros especificos com nomes de comandos padronizados (Botoes de avançar e retroceder registros)

    http://maximoaccess.forumeiros.com/t11178-tratamento-de-erros-com-gravcao-de-log-de-erros-em-tabela

    Conteúdo patrocinado


    [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string Empty Re: [Resolvido]Acao a tomar em código, gravado em tabela e aplicado a uma string

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 08:49