johnperpir 13/5/2014, 02:01
Tem a ver com as permissões dadas aos usuários para edição, adição e exclisão de registos nos formulários.
'Este é o módulo:
Option Compare Database
Public Login As Login
Type Login
id As Long
USUARIO As String
End Type
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) & " "
If Nz(DLookup("bloqueada", "tblpermissoesUsuarios", filtro), True) = True Or Login.id = 1 Then
MsgBox "Acesso bloqueado...", vbInformation, "Aviso"
DoCmd.Close acForm, NomeForm.Name
Exit Function
End If
NomeForm.AllowEdits = Nz(DLookup("atualizar", "tblpermissoesUsuarios", filtro), "false")
NomeForm.AllowDeletions = Nz(DLookup("excluir", "tblpermissoesUsuarios", filtro), "false")
NomeForm.AllowAdditions = Nz(DLookup("inserir", "tblpermissoesUsuarios", filtro), "false")
End Function
'E este é o procedimento de um dos formulários:
Private Sub Form_Load()
Dim filtro As String
On Error Resume Next
Call fncPermissões(Me)
filtro = "objeto = '" & Me.Name & "'"
filtro = "Idfuncao = " & Nz(DCount("idFuncao", "tblFunções", filtro), 0) & _
" AND idUsuario =" & CLng(Login.id)
DoCmd.Close acForm, "Painel de Controle de Formulários"
DoCmd.GoToRecord , , acNewRec
Registo_N_.SetFocus
End Sub
'e o método .id não é reconhecido, se assim se pode designar
cumprimentos.