Hola yo estoy usando algo por el estilo te muestro que es lo que hago en partes
primer declaro unas contantes de este tipo
Public Const PERMIT_ALL As Long = -1
Public Const PERMIT_AUDIO1 As Long = &H1
Public Const PERMIT_AUDIO2 As Long = &H2
Public Const PERMIT_DB As Long = &H4
Public Const PERMIT_LIVE As Long = &H8
Public Const PERMIT_HTH As Long = &H10
Public Const PERMIT_PROG As Long = &H20
Public Const PERMIT_CONF As Long = &H40
Public Const PERMIT_DRAGANDDROP As Long = &H80
bien vos cambiarle los nombres (el primero es para todos los permisos), fijate que tienen valores multiplos (o algo asi no se como se dice, alguien que me corrija).
ahora en tu base de datos tenes que poner un campo con un valor Numérico en los tabla de los usuario (yo en mi caso lo llame Privileges)
en el formulario que tengo los privilegios tengo algo como esto para guardar los datos
Dim p as long
If CheckAudio1.value = vbChecked Then p = p Or PERMIT_AUDIO1
If CheckAudio2.value = vbChecked Then p = p Or PERMIT_AUDIO2
If CheckBD.value = vbChecked Then p = p Or PERMIT_DB
If CheckLive.value = vbChecked Then p = p Or PERMIT_LIVE
If CheckHTH.value = vbChecked Then p = p Or PERMIT_HTH
If CheckProg.value = vbChecked Then p = p Or PERMIT_PROG
If CheckConf.value = vbChecked Then p = p Or PERMIT_CONF
If CheckDD.value = vbChecked Then p = p Or PERMIT_DRAGANDDROP
rs("Privileges") = p
rs.Update
rs.close
para recuperarlos:
Dim p as long
p = rs("Privileges")
CheckAudio1.value = IIf((p And PERMIT_AUDIO1) = PERMIT_AUDIO1, vbChecked, vbUnchecked)
CheckAudio2.value = IIf((p And PERMIT_AUDIO2) = PERMIT_AUDIO2, vbChecked, vbUnchecked)
CheckBD.value = IIf((p And PERMIT_DB) = PERMIT_DB, vbChecked, vbUnchecked)
CheckLive.value = IIf((p And PERMIT_LIVE) = PERMIT_LIVE, vbChecked, vbUnchecked)
CheckHTH.value = IIf((p And PERMIT_HTH) = PERMIT_HTH, vbChecked, vbUnchecked)
CheckProg.value = IIf((p And PERMIT_PROG) = PERMIT_PROG, vbChecked, vbUnchecked)
CheckConf.value = IIf((p And PERMIT_CONF) = PERMIT_CONF, vbChecked, vbUnchecked)
CheckProg.value = IIf((p And PERMIT_PROG) = PERMIT_PROG, vbChecked, vbUnchecked)
CheckDD.value = IIf((p And PERMIT_DRAGANDDROP) = PERMIT_DRAGANDDROP, vbChecked, vbUnchecked)
entonces si en la variable p almacenamos los privilegios del usuario cuando quieras saber si tiene un cierto privilegio lo haces asi
if (p And PERMIT_CONF) = PERMIT_CONF then
msgbox "puede entrar en la configuracion"
end if
Saludos.