Phần quyền với Access

1. Thiết kế tbUser
tbUser
UserName  Pass   Group

tbUser_PhanQuyen
ID    Group    TenFrm    TenDoiTuong    ChoPhep     HienThi


2. Tạo frmLogin

PhanQuyen.UserName = Text0.Value
 PhanQuyen.Pass = Text2.Value
 If PhanQuyen.CheckUser = 1 Then
    
    MsgBox PhanQuyen.Group
 
 End If
 

3. Tạo module PhanQuyen

 


Option Compare Database
Public UserName As String
Public Pass As String
Public Group As String

Public Function CheckUser() As Integer
    
   
    
    ' Check ten dang nhap co bi rong
    If UserName = "" Then
        MsgBox "Chua nhap user ?"
        CheckUser = 0
        Return
    End If
    
    ' Ket noi lay du lieu tu table tbUser
   
   
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim strSQL As String
 
On Error GoTo ErrorHandler
 
   Set db = CurrentDb
   strSQL = "Select * From tbUser Where UserName='" & UserName & "'"
   Set rst = db.OpenRecordset(strSQL, dbOpenDynaset)
   
   If rst.RecordCount = 0 Then
    CheckUser = 0
    Exit Function
   End If
   
   rst.MoveFirst
 
 
    If rst!Pass = Pass Then
         CheckUser = 1
    End If
 
 
  Group = rst!Group
 
 
   rst.Close
   db.Close
        
        
     Exit Function
     
ErrorHandler:
   MsgBox "Error #: " & Err.Number & vbCrLf & vbCrLf & Err.Description


End Function

Public Function PhanQuyenDoiTuong(frm As Form)
  Dim rst As Recordset
  Set rst = md_DATA.getRecs("Select * From tbUser_PhanQuyen Where (Group='" + Group + "' AND TenFrm='" + frm.Name + "')")
 
  If Group = "" Then
    MsgBox "Group= rong"
  End If
 
  Dim Ctrl As Control
    tongct = frm.Controls.Count
    For Each Ctrl In frm.Controls
         tenControl = Ctrl.Properties("Name")
         
        With rst
              'Debug.Print tenControl
              .FindFirst "TenDoiTuong='" + tenControl + "'"
              Ctrl.Enabled = .Fields("ChoPhep").Value
              Ctrl.Visible = .Fields("HienThi").Value
               'Ctrl.Enabled = .
              
        End With
    Next Ctrl
 
End Function