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

    Erro em Controle de Usuário (exemplo do sistema maestro)

    Compartilhe
    avatar
    alozs
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 66
    Registrado : 07/02/2018

    Erro em Controle de Usuário (exemplo do sistema maestro)

    Mensagem  alozs em 17/12/2018, 14:19

    Bom dia, estou usando o controle de usuário desenvolvido pelo Mestre Avelino (maestro), mas ocorre que qualquer erro, tipo o cliente não preenche um campo e causa algum erro, o formulário atual é fechado e o sistema fica como se não estivesse usuário nenhum logado. Se tento abrir outro formulário ele não acesso bloqueado e dai tem que ficar saindo e entrando novamente no sistema, segue o código



    Código:
    Option Compare Database
    Public nlogoff As Boolean
    Public login As login
    Type login
        id  As Long
        Usuario As String * 50
    End Type

    Public Function fncLogoff()
    '----------------------------------
    'fecha todos os formulários e
    'reabre tela de login
    '----------------------------------
    On Error Resume Next
    nlogoff = False
    Call fncFechaForms(True)
    login.id = 0: login.Usuario = ""
    DoCmd.OpenForm "frmLogin", , , , , acDialog
    End Function

    Public Function fncPermissões(NomeForm As Form)
    Dim Filtro As String
    On Error Resume Next
    Filtro = "objeto = '" & NomeForm.Name & "'"
    Filtro = "Idfuncao = " & Nz(DLookup("idFuncao", "tblFunções", Filtro), 0) & " AND idUsuario =" & login.id
    If Nz(DLookup("bloqueada", "tblpermissõesUsuários", Filtro), True) = True Or login.id = 0 Then
        MsgBox "Acesso bloqueado, refaça o login no sistema!", vbInformation, "Atenção"
        DoCmd.Close acForm, NomeForm.Name
        Exit Function
    End If
    NomeForm.AllowEdits = Nz(DLookup("atualizar", "tblpermissõesUsuários", Filtro), "false")
    NomeForm.AllowDeletions = Nz(DLookup("excluir", "tblpermissõesUsuários", Filtro), "false")
    NomeForm.AllowAdditions = Nz(DLookup("inserir", "tblpermissõesUsuários", Filtro), "false")
    End Function

    Public Function fncPermissõesRpt(NomeRelatorio As Report) As Boolean
    Dim Filtro As String
    On Error Resume Next
    fncPermissõesRpt = True
    Filtro = "objeto = '" & NomeRelatorio.Name & "'"
    Filtro = "Idfuncao = " & Nz(DLookup("idFuncao", "tblFunções", Filtro), 0) & " AND idUsuario =" & login.id
    If Nz(DLookup("bloqueada", "tblpermissõesUsuários", Filtro), True) = True Or login.id = 0 Then
        MsgBox "Acesso bloqueado, refaça o login no sistema!", vbInformation, "Atenção"
        fncPermissõesRpt = False
    End If
    End Function
    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 482
    Registrado : 22/11/2016

    Re: Erro em Controle de Usuário (exemplo do sistema maestro)

    Mensagem  IvanJr. em 17/12/2018, 16:35

    Trate os erros que acontecem em seu aplicativo que isso resolve.

    ----------------------------------------------------------------------------
    private sub EventoQualquerEmFormulárioRelatórioMóduloOuClasse
    on error goto trataerro

    rotinaBláBláBlá

    sair:
    Exit sub

    trataerro:
    msgbox err.description, vbcritical,err.number
    resume sair:

    end sub
    -----------------------------------------------------------------------------


    .................................................................................
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Sempre tente entender o código, não somente copie e cole.
    avatar
    alozs
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 66
    Registrado : 07/02/2018

    Re: Erro em Controle de Usuário (exemplo do sistema maestro)

    Mensagem  alozs em 17/12/2018, 16:52

    sim estou tratando porem como utilizo esse sistema em alguns clientes, hora e outra cliente reclama que fica acesso bloqueado por algum erro que ele causou porem não tem como saber pois não estou no local e eu travei (com senha) o acesso ao vb e ao sistema para evitar que acessem sem autorização
    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 482
    Registrado : 22/11/2016

    Re: Erro em Controle de Usuário (exemplo do sistema maestro)

    Mensagem  IvanJr. em 17/12/2018, 17:02

    Entendo. Mas é certo que só resolverá depois de tratar o erro onde acontece. Veja com o cliente como ele faz pra você mesmo simular o ponto de erro e tratá-lo e então disponibilize o novo arquivo para ele.


    .................................................................................
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Sempre tente entender o código, não somente copie e cole.
    avatar
    alozs
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 66
    Registrado : 07/02/2018

    Re: Erro em Controle de Usuário (exemplo do sistema maestro)

    Mensagem  alozs em 17/12/2018, 18:05

    é oque estou fazendo atualmente porem vira e mexe aparece um erro, por isso queria saber se tem como tratar esse código do mestre avelino para evitar erros futuros!
    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 482
    Registrado : 22/11/2016

    Re: Erro em Controle de Usuário (exemplo do sistema maestro)

    Mensagem  IvanJr. em 17/12/2018, 19:29

    Veja a alteração da função abaixo e utilize de forma temporária até tratar os erros do seu aplicativo. JAMAIS utilize de forma definitiva.

    Código:
    Public Function fncPermissões(NomeForm As Form)
    Dim Filtro As String
    On Error Resume Next
    Filtro = "objeto = '" & NomeForm.Name & "'"
    Filtro = "Idfuncao = " & Nz(DLookup("idFuncao", "tblFunções", Filtro), 0) & " AND idUsuario =" & login.id
    If Nz(DLookup("bloqueada", "tblpermissõesUsuários", Filtro), True) = True Or login.id = 0 Then
        'ao inves de bloquear, permito tudo
        NomeForm.AllowEdits = true
        NomeForm.AllowDeletions = true
        NomeForm.AllowAdditions = true
        Exit Function
    End If
    NomeForm.AllowEdits = Nz(DLookup("atualizar", "tblpermissõesUsuários", Filtro), "false")
    NomeForm.AllowDeletions = Nz(DLookup("excluir", "tblpermissõesUsuários", Filtro), "false")
    NomeForm.AllowAdditions = Nz(DLookup("inserir", "tblpermissõesUsuários", Filtro), "false")
    End Function

    '--------------------------------------------------------------------------------------------------------------------------
    Public Function fncPermissõesRpt(NomeRelatorio As Report) As Boolean
    Dim Filtro As String
    On Error Resume Next
    fncPermissõesRpt = True
    Filtro = "objeto = '" & NomeRelatorio.Name & "'"
    Filtro = "Idfuncao = " & Nz(DLookup("idFuncao", "tblFunções", Filtro), 0) & " AND idUsuario =" & login.id
    If Nz(DLookup("bloqueada", "tblpermissõesUsuários", Filtro), True) = True Or login.id = 0 Then
        'ao invés de bloquear, permito tudo
        fncPermissõesRpt = True
    End If
    End Function


    .................................................................................
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Sempre tente entender o código, não somente copie e cole.
    avatar
    alozs
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 66
    Registrado : 07/02/2018

    Re: Erro em Controle de Usuário (exemplo do sistema maestro)

    Mensagem  alozs em 17/12/2018, 20:17

    obg mais uma vez ivanjr. o problema é que esse sistema eu vou achando os erros de acordo com oque os usuários vão me reportando, estava pensando em colocar para chamar novamente a tela de login se der algum erro oque acha?
    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 482
    Registrado : 22/11/2016

    Re: Erro em Controle de Usuário (exemplo do sistema maestro)

    Mensagem  IvanJr. em 17/12/2018, 22:17

    eu vou achando os erros de acordo com oque os usuários vão me reportando
    Shocked Perda este hábito o quanto antes. Isso tira toda a sua credibilidade. E também a credibilidade do MS Access.

    Imagine um sistema onde tratará do controle de registros que envolvam dinheiro. Operações incompletas devido a erros nesses casos podem custar caríssimo para o seu cliente, e quiça para você!

    Para garantir o funcionamento adequado do seu sistema, sempre limite as ações do usuário para somente o que ele deve realmente fazer. Exemplo: nunca salvar um registro com informações incompletas, preencher campos com informações inválidas, fechar janelas em horas indevidas etc etc etc. É algo que dá trabalho, mas são ossos do ofício. Logo o desenvolvedor se aperfeiçoa.

    Minha sugestão é que você recolha o aplicativo até ele ficar de fato pronto e/ou que você trabalhe o mais rápido possível em cima das ações dos usuários do seu aplicativo, trate os erros e evite que eles aconteçam. Isso fará de você um bom profissional.

    Boa sorte. Sucesso.


    .................................................................................
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Sempre tente entender o código, não somente copie e cole.
    avatar
    alozs
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 66
    Registrado : 07/02/2018

    Re: Erro em Controle de Usuário (exemplo do sistema maestro)

    Mensagem  alozs em 18/12/2018, 13:36

    sim ivanjr, já perdi o hábito é que muitas vezes os usuários fazem coisas que nunca imaginamos que pudesse ser feito dai fica difícil tentar tratar todos os erros que o usuário imagina fazer, mais muito obg pela dica com certeza estou desenvolvendo outros sistemas e já estou adotando essa prática
    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 482
    Registrado : 22/11/2016

    Re: Erro em Controle de Usuário (exemplo do sistema maestro)

    Mensagem  IvanJr. em 18/12/2018, 13:42

    Minha dica da mensagem nº 6 resolveu o problema da mensagem pedindo pra reiniciar o aplicativo?


    .................................................................................
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Sempre tente entender o código, não somente copie e cole.
    avatar
    alozs
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 66
    Registrado : 07/02/2018

    Re: Erro em Controle de Usuário (exemplo do sistema maestro)

    Mensagem  alozs em 19/12/2018, 16:46

    ivan pra ser bem sincero não vou utilizar não, vou tentar procurar todos os erros no projeto pra evitar de usar esse código, realmente é muito complicado utilizar ele

      Data/hora atual: 20/3/2019, 18:09