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


3 participantes

    [Resolvido]Tratamento de Erros

    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Tratamento de Erros Empty Tratamento de Erros

    Mensagem  ronaldojr1 27/8/2012, 22:15


    Boa Noite

    Galera estou precisando mais uma vez da ajuda do pessoal do forum.

    Alguem pode me ajudar a Fazer um Tratamento de Erro numa macro?

    Configuraçãos da minha Macro:

    ação: AbrirFormulário
    Condição: =[Codigo]="& [Codigo]

    A Macro Funciona Perfeitamente, mas eu queria tratar um erro comum nesse tipo de condição da macro. Quando o Campo a Ser Filtrado é do tipo numérico e eu aciono a macro num campo nulo naturalmente da erro, pois não tem como filtrar um campo nulo. Então Como eu Fasso Pra Tratar Esse Erro.

    Tentei Colocar uma Ação "Ao Ocorrer Erro" , mas não consegui Fazer Funciona, pois não conheço a sintaxe e sua maneira de trabalhar. No VBa Eu sei Tratar o Erro usando o OnError Goto, mas como eu faço dentro da Macro?

    Grato a Colaboração de todos.

    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    [Resolvido]Tratamento de Erros Empty Re: [Resolvido]Tratamento de Erros

    Mensagem  Leandro 27/8/2012, 22:25

    Tente assim no VBA:

    On Error Resume Next

    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Tratamento de Erros Empty Re: [Resolvido]Tratamento de Erros

    Mensagem  ronaldojr1 28/8/2012, 12:12


    Obrigado pelo retorno, mas não da certo tratar o erro no VBA pois essa macro que eu utilizo eu faço um esquema pra fazer um menu com Macro e depois eu associo a macro as teclas de atalho de um botão, esse menu é feito tudo em macro então eu preciso tratar o erro na própria macro pois a macro não fica associada a nenhum evento no vba, por isso eu não consigo tratar os erros no vba, deu pra entender?

    Resumindo tem como tratar o erro dentro da macro?
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Tratamento de Erros Empty Re: [Resolvido]Tratamento de Erros

    Mensagem  JPaulo 28/8/2012, 12:17

    Qual a versão do seu Ms Access ?

    Veja se o atende;
    http://office.microsoft.com/en-us/access-help/onerror-macro-action-HA001226457.aspx


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Tratamento de Erros Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Tratamento de Erros Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Tratamento de Erros Folder_announce_new Instruções SQL como utilizar...
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Tratamento de Erros Empty Re: [Resolvido]Tratamento de Erros

    Mensagem  ronaldojr1 28/8/2012, 13:19

    foi mal esqueci de menciona a versão do access que eu uso. No Caso é o Access 2007

    Esse Link Eu Já tinha visto ontem, mas era em portugues o que eu tinha visto, e mesmo assim não consegui implementar na minha macro estou enviando o banco pra ficar mais fácil o entendimento da minha necessidade.

    Vou Explicar a Logica que eu uso nas Macros.

    1° Crio Uma Macro que Abri todos os Objetos que quero que eu Chamo de M_Filtro, e eu coloco um filtro na condição da Macro

    2º Crio Outra Macro com o evento "Adicionar Menu" e Aponto Para a Primeira Macro que chamo de Bt_Filtro

    3º No Formulário Eu Associo o Botão Para Abrir a Macro Bt_Filtro na Opção "Barras de Menu de Atalho" Localizado em Propriedades do Objeto > Outra > Barras de Menu de Atalho

    4º No Caso Do Banco Enviado Eu Coloquei Apenas Esse Evento No Botão "Ir Para"

    Dificuldade. Quando Eu Chamo Um Outro Formulário e o Cursor Estiver em um Registro que o Campo de Associação for Nulo dá erro (Natural), mas como tratar esse erro?

    Obs.: O Menu Só Aparece Quando Clico com o Botão Direito do Mouse.


    Grato Mestre J. Paulo
    Anexos
    [Resolvido]Tratamento de Erros Attachmentmacro.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (197 Kb) Baixado 19 vez(es)
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Tratamento de Erros Empty Re: [Resolvido]Tratamento de Erros

    Mensagem  JPaulo 28/8/2012, 15:12

    Você consegue resolver isso, utilizando a função Nz no criterio das Macros;

    Exemplo testado;

    Macro Detalhes
    Abrir Formulario L_Details

    ="[Cod_L]=" & Nz([Cod_L];0)

    Anexos
    [Resolvido]Tratamento de Erros Attachmentmacro_OLD.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (136 Kb) Baixado 38 vez(es)


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Tratamento de Erros Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Tratamento de Erros Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Tratamento de Erros Folder_announce_new Instruções SQL como utilizar...
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Tratamento de Erros Empty Re: [Resolvido]Tratamento de Erros

    Mensagem  ronaldojr1 28/8/2012, 19:29

    Mas é claro, como eu pudi esquecer dessa função nz! O engraçado que essa função já esta sendo utilizada em várias partes do banco e eu nem me toquei que eu podia usar ela na macro, Mas J Paulo eu ainda preciso Saber como Tratar os Erros da Macro, pois eu tenho alguns Casos que tem um formulário que não tem o campo coincidente pra filtar ai da erro tb, nesses casos os formulários que não tem o campo concidente a macro apenas nao executasse a opção clicada. Ex.:

    No meu menu tem a opção de abrir o formulário "fornecedor" filtrado pelo campo fornecedor, mas essa opção só funciona nos formulários que contenha o campo Fornecedor. Nos Formularios que não tem esse campo da erro 2950.

    Eu Cliquei no resolvido cedo demais, desculpe é que eu não tinha feito os testes direito.

    Muito Obrigado J Paulo pela solução

    Cumprimentos
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Tratamento de Erros Empty Re: [Resolvido]Tratamento de Erros

    Mensagem  JPaulo 29/8/2012, 09:34

    Ronaldo Amigão, nesse caso altere a sua Macro no tratamento de erro, deste jeito;

    Se tiver o erro 2950, de campo não existente, abre o formulario correspondente.

    [Resolvido]Tratamento de Erros 29-08-10

    Anexos
    [Resolvido]Tratamento de Erros Attachmentmacro_OLDII.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (193 Kb) Baixado 23 vez(es)


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Tratamento de Erros Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Tratamento de Erros Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Tratamento de Erros Folder_announce_new Instruções SQL como utilizar...
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Tratamento de Erros Empty Re: [Resolvido]Tratamento de Erros

    Mensagem  ronaldojr1 29/8/2012, 13:53

    Eu Já tinha feito exatamente assim, mas não funciona. Não sei se eu estou fazendo alguma coisa errada ou do jeito que eu estou usando a macro ela não ta aceitando essa configuração, sei lá. Tava Pensando em fazer funções mas não sei como eu faria pra fazer funcionar o menu, mas eu acho que eu teria que abrir outro tópico, não é? é que eu sei fazer a macro chamar a função e passar o parametro por ela, tipo o Parametro da minha função é o Codigo,Ex.: na macro eu colocaria:

    Nome: Fornecedor
    Evento: executarcodigo
    NomeDaFunção: funcao(Forms!NomeDoFormulario!codigo)

    mas é duvida é como eu fazer esse parametro dinamicamente pois eu não sei qual é o furmulário que vai chamar a função?

    Se puder responder eu agradeço, se não eu posto outro tópico

    Se for mais fácil tratar esse erro na macro, blz nem vou precisar dessa função se não vou ser obrigado a tratar o erro na própria função que eu acho que é bem mais fácil, porém eu terei essa necessidade acima que vai ser bem complicado pra mim resolver sozinho.

    Lembrando que eu preciso da Macro de Qualquer Jeito, pq sem ela não sei fazer o menu

    Grato e desculpe pelo incomodo
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Tratamento de Erros Empty Re: [Resolvido]Tratamento de Erros

    Mensagem  JPaulo 29/8/2012, 14:44

    No ultimo exemplo que lhe passei, não funfa ???

    Testei aqui e funfa do jeito que você quer.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Tratamento de Erros Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Tratamento de Erros Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Tratamento de Erros Folder_announce_new Instruções SQL como utilizar...
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Tratamento de Erros Empty Re: [Resolvido]Tratamento de Erros

    Mensagem  ronaldojr1 29/8/2012, 15:27

    Os Campos Nulos Funcionam.

    É que No Exemplo que eu mandei não coloquei a Opção de Abrir Fornecedor, então estou enviando pra vc novamente dar uma olhada. Faça o seguinte teste pra vc ver o erro:

    abra o Form Obras > Botão Direito No Botão "Ir Para" > Escolha a opção Fornecedor

    ai vc vai ver o erro que quero tratar

    mas tem uma coisa importante parece que a ação aoOcorreErro(onError) funcionar eu tenho que colocar na propriedade Nome o nomeDoErro e Direcionar o Erro Pra esse Nome, mas como fazer isso sem fazer que esse Nome não apareça no meu menu?

    que rolo isso.rsrsrs

    Vlw
    Anexos
    [Resolvido]Tratamento de Erros Attachmentmacro_OLDIII.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (175 Kb) Baixado 12 vez(es)
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Tratamento de Erros Empty Re: [Resolvido]Tratamento de Erros

    Mensagem  JPaulo 29/8/2012, 15:51

    Ronaldo meu amigo, não vamos complicar o simples.

    Se você não tem como filtrar o form Fornecedor, para quê colocar o filtro no criterio da Macro ?

    Veja o simples;

    Anexos
    [Resolvido]Tratamento de Erros Attachmentmacro_OLDIV.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (169 Kb) Baixado 30 vez(es)


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Tratamento de Erros Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Tratamento de Erros Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Tratamento de Erros Folder_announce_new Instruções SQL como utilizar...
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Tratamento de Erros Empty Re: [Resolvido]Tratamento de Erros

    Mensagem  ronaldojr1 29/8/2012, 16:23

    é que tem formulários que tem esse campo e outros não ou pode acontecer de gerar outros tipos de erros e eu queria aprender como tratar eles. Realmente pra resolver eu poderia no caso tirar a opção "Fornecedor"pra resolver, mas com isso eu vou ter que fazer mais menus personalizados, consequentemente eu vou ter varias macros e eu não queria encher meu bd de macro e também eu queria aprender a fazer isso pq não sei a necessidade que eu possa ter no futuro.

    Grato
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Tratamento de Erros Empty Re: [Resolvido]Tratamento de Erros

    Mensagem  JPaulo 29/8/2012, 16:27

    Sinceramente não trabalho com Macros.

    A solução possivel é a que lhe passei, lamento não poder ajudar mais.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Tratamento de Erros Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Tratamento de Erros Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Tratamento de Erros Folder_announce_new Instruções SQL como utilizar...
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Tratamento de Erros Empty Re: [Resolvido]Tratamento de Erros

    Mensagem  ronaldojr1 29/8/2012, 17:08

    então blz

    E se eu tentar fazer assim

    E se na macro eu não colocar a condição ali e sim em uma função e na função eu trataria o erro Ex.: na macro eu colocaria:

    Nome: Fornecedor
    Evento: executarcodigo
    NomeDaFunção: OpenFornecedor(Forms!NomeDoFormulario!codigo)

    na função eu colocaria alguma coisa assim

    function OpenFornecedor(Forms!???!codigo)

    Meu codigo aqui

    End Function

    mas é duvida é como eu fazer esse parametro dinamicamente pois eu não sei qual é o furmulário que vai chamar a função?

    Se puder responder eu agradeço, se não eu posto outro tópico

    Eu sei que vc é o mestre das funções, por favor me ensine. Se der Problema eu abro um tópico na parte de funções, mas vc acha que assim vai dar certo ou então da uma dica ai(Se não for abusar da sua boa vontade).
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Tratamento de Erros Empty Re: [Resolvido]Tratamento de Erros

    Mensagem  JPaulo 29/8/2012, 17:17

    Ae torna-se mais facil sim.

    Pode utilizar a função OpenArgs na abertura dos seus formularios.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Tratamento de Erros Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Tratamento de Erros Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Tratamento de Erros Folder_announce_new Instruções SQL como utilizar...
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Tratamento de Erros Empty Re: [Resolvido]Tratamento de Erros

    Mensagem  ronaldojr1 29/8/2012, 17:38

    Eu to Vendo na net como funciona essa função openargs, ela serve pra algum objeto ganhar um foco pra uma macro ou código enxerga ela. É isso? Mas não to pegando a lógica de como eu vou utilizar, vc pode dar um help por favor. Nesse meio tempo estou tentando aprender mais sobre essa função.

    Grato
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Tratamento de Erros Empty Re: [Resolvido]Tratamento de Erros

    Mensagem  ronaldojr1 29/8/2012, 19:49

    Consegui fazer uma função que recebe o Nome Do Formulário Ativo. A ideia é o seguinte

    com essa função eu uso pra fazer referencia ao Campo que eu preciso comparar pra abrir o formulário filtrando o campo que eu preciso e consiga tratar os diferentes erros que podem aparecer, mas to tendo um probleminha na função, Segue configuração e mais detalhe de como eu usei a macro e a função:

    Nome da Macro: Obras
    Ação: Executar Codigo
    Nome DaFunção: FilterObras()






    Segue a função FormAtivo()

    Function FormAtivo()
    Dim nomeForm As form
    Dim teste
    Set nomeForm = Screen.ActiveForm

    FormAtivo = nomeForm.Name

    End Function





    Segue a função que ta dando erro

    Function FilterObras()

    Dim formulario as string ' Se eu defino diferente disso da erro de propriedade invalida

    formulario = FormAtivo
    MsgBox formulario 'Só pra saber se ta recebendo o formulário certo


    DoCmd.OpenForm "L_Obras", acNormal, , "[Cod_L]=" & [form!& formulario& !Cod_L]
    ' Na linha acima da a seguinte mensagem de erro: Erro de Compilação: Nome Externo Não ' Definido.

    End Function


    Suponho que este erro é porque o vba Não ta achando o Formulário, então o que eu tenho que mudar pra que essa função funcionar?

    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Tratamento de Erros Empty Re: [Resolvido]Tratamento de Erros

    Mensagem  ronaldojr1 30/8/2012, 16:56

    E ai Galera deixa quieto essa função, ta mais facil fazer mais macros. Como o J Paulo falou "Pra complicar o que é simples", vlw galera fui

    grato pela a ajuda J Paulo

    Conteúdo patrocinado


    [Resolvido]Tratamento de Erros Empty Re: [Resolvido]Tratamento de Erros

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/4/2024, 10:24