RE:bloquear acceso a tablas y forms
Yo empleo el siguiente sistema:
una tabla con tres campos USUARIO, CLAVE y OPCION
donde meteras a los usuarios, claves y opciones
un formulario para introducir USUARIO Y CLAVE (que previamente deben estar dados de alta) y en el evento "Al hacer click" del botón aceptar
Private Sub BtnAceptar_Click()
Dim ACCEDER As Variant
Dim GP2PLdb As Database
Dim MI_RS As Recordset
Set GP2PLdb = DBEngine.Workspaces(0).Databases(0)
Set MI_RS = GP2PLdb.OpenRecordset("Usuarios")
ACCEDER = False
MI_RS.MoveFirst
Do While Not MI_RS.EOF
If MI_RS("Usuario") = Me.USUARIOS And MI_RS("Clave") = Me.CLAVEUSUARIO Then
ACCEDER = True
Exit Do
End If
MI_RS.MoveNext
Loop
MI_RS.Close
If ACCEDER Then
Usuario = Me.USUARIOS
Clave = Me.CLAVEUSUARIO
DoCmd.Close
DoCmd.OpenForm "Principal"
Else
CALLFUNC = MsgBox("ACCESO DENEGADO" & vbCrLf & "USUARIO INEXISTENTE O CLAVE INCORRECTA", vbCritical, "")
End If
End Sub
---------------------------------------------------------------------------------------------------------
Una función como esta
Public Function AUTORIZADO(Usuario, Clave, Opcion) As String
Set GP2PLdb = DBEngine.Workspaces(0).Databases(0)
Set RS = GP2PLdb.OpenRecordset("Usuarios")
AUTORIZADO = False
RS.MoveFirst
Do While Not RS.EOF
If RS("Usuario") = Usuario And RS("Clave") = Clave And RS("Opcion") = Opcion Then
AUTORIZADO = True
Exit Function
End If
RS.MoveNext
Loop
RS.Close
End Function
-----------------------------------------------------------------------------------------------------------
En el evento "al hacer click" de la opcion que quieras ... por ejemplo
Private Sub lblItem1_1_03_Click()
Opcion = "Personal en alta"
If AUTORIZADO(Usuario, Clave, Opcion) Then
DoCmd.OpenForm "TIPO CONTRATO"
Else
MensajeMsgbox = MsgBox("USUARIO NO AUTORIZADO", vbCritical, "")
End If
End Sub
---------------------------------------------------------------------------------------------------------
De esta forma podrás controlar quien puede entrar a determinados formulario y que usuarios pueden acceder a la aplicación.
Con un poco de paciencia y varias pruebas... lo conseguiras.
Saludos