MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    Tratar Erro

    Compartilhe

    marcelo3092
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 65
    Registrado : 19/08/2010

    Tratar Erro

    Mensagem  marcelo3092 em Ter 10 Jan 2017, 22:39

    Ola amigos gostaria de uma ajuda estou tentando fazer um tratamento de erro porem to ficando doido e no evento ao abrir de um formulario, que aparece a mensagem do código e depois aparece a açao open form foi cancelada erro 2501 o codigo e esse
    Private Sub Form_Open(Cancel As Integer)
    On Error GoTo Err_TrataErro
     If DLookup("[AbrirClientes]", "usuario", "[login] = txtUsuarioAtual") Then
     

     Else
       
       MsgBox "Acesso Negado, Usuário não Permitido.", _
             vbOKOnly + vbCritical, "SISTEMA VENDAS."
    Cancel = True

     End If
    Exit_TrataErro:
     Exit Sub
    Err_TrataErro:
    MsgBox "Não existe divisão por zero !!!!"
    End Sub

    gostaria de fazer com que ele não apareça mais vcs poderia me ajudar?
    avatar
    hiperjohn
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 06/06/2013

    Re: Tratar Erro

    Mensagem  hiperjohn em Ter 10 Jan 2017, 23:54

    Veja se ajuda:

    Private Sub Form_Open(Cancel As Integer)
     
      If Not IsNull(DLookup("[AbrirClientes]", "usuario", "[login] = txtUsuarioAtual")) Then
           ***código de abertura***
      Else  
            MsgBox "Acesso Negado, Usuário não Permitido.", vbOKOnly + vbCritical, "SISTEMA VENDAS."
           Cancel = True
      End If
    End Sub

    marcelo3092
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 65
    Registrado : 19/08/2010

    Tratar Erro

    Mensagem  marcelo3092 em Qua 11 Jan 2017, 14:04

    Então amigo até funciono porem ele não pode abrir o formulario pois ele verifica se o usuario atual tem permissão para abrir o formulario, se na tabela usuario tem o campo abrir clientes marcado como sim, ai se ele não aparece a mensagem e cancela a ação. seu código não apareceu a mensagem porem abriu o formulario normal.
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3226
    Registrado : 14/08/2013

    Re: Tratar Erro

    Mensagem  FabioPaes em Qua 11 Jan 2017, 14:29

    If DLookup("[AbrirClientes]", "usuario", "[login] = txtUsuarioAtual")=-1 Then
    ***código de abertura***
    Else
    MsgBox "Acesso Negado, Usuário não Permitido.", vbOKOnly + vbCritical, "SISTEMA VENDAS."
    Cancel = True
    End If


    Experimente assim!

    Se o valor do campo AbrirCliente=-1 (marcado) ele libera abertura!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    hiperjohn
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 06/06/2013

    Re: Tratar Erro

    Mensagem  hiperjohn em Qua 11 Jan 2017, 14:34

    Amigo, o Dlookup tem que retornar "Sim" ou o nome do usuário logado?
    Se ele tem que retornar "Sim", o código seria parecido com esse:

    Dim permissao As String

    If Not IsNull(DLookup("AbrirCliente", "usuario", "Usuario = '" & UsuarioLogado & "'")) Then
    permissao = DLookup("AbrirCliente", "usuario", "Usuario = '" & UsuarioLogado & "'")
    End If

    If permissao <> "Sim" Then
    MsgBox "Acesso Negado, Usuário não Permitido.", vbOKOnly + vbCritical, "SISTEMA VENDAS."
    Cancel = True
    End If


    Outra coisa: o usuário logado tem que estar numa variável global e pública, de modo que a informação seja acessada por qualquer formulário no projeto.

    Abraços!


      Data/hora atual: Qua 26 Jul 2017, 03:40