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