Supongo que hay mil maneras de solucionar esa cuestión; yo te digo cómo lo hago yo, garantizándote que va bien:
Cada usuario tiene un número y una clave de acceso; pues bien, con esa clave yo encripto una cifra, que se corresponde con el nivel de permiso que se le confiere. (Al desencriptar la clave desencriptamos también esa cifra, que la asignamos a una variable pública de nombre "NivelPermiso", pongamos por caso)
Cuando confecciones un formulario puedes poner, por ejemplo, el siguiente código:
if NivelPermiso < 3 then
CmdAñadir.Enable = False
CmdBorrar.Enable = False
etc.....
End If
o bien
if NivelPermiso = 1 then
txtSueldo.Locked = True
txtNIF.Locked = True
End If
si prefieres bloquear algunos campos para ciertos usuarios...
Esto te dará muchas posibilidades de "jugar" con cuantas combinaciones desees.
Incluso puedes bloquear el acceso a tal o cual formulario o subprograma:
If NivelPermiso < 6 Then
msgbox("Usted no tiene permiso para realizar esta opción")
Else
frmXXX.Show vbModal
End If
Si eres más ambicioso, desarrolla una tabla en la que indiques esas combinaciones para cada input del programa y cada tipo de Nivel... Pero ten la precaución de encriptar esa tabla, para que no te la pueda alterar un usuario listo...
Saludos y suerte