Hỏi
Bạn nào có biết cách phân quyền sử dụng trong Access không chỉ cho mình với. Có nghĩa là với chương trình mình tạo ra thì chỉ có mình mới có thể sửa source code được, có thể sửa design... được thôi, người sử dụng chỉ được quyền sử dụng và không có quyền truy cập vào source code cũng như table... để sửa chương trình. Ở bên mình mọi người cũng có kiến thức về Access nên biết là cứ bấm F11 là vào được data của chương trình.
Đáp
Bạn nào có biết cách phân quyền sử dụng trong Access không chỉ cho mình với. Có nghĩa là với chương trình mình tạo ra thì chỉ có mình mới có thể sửa source code được, có thể sửa design... được thôi, người sử dụng chỉ được quyền sử dụng và không có quyền truy cập vào source code cũng như table... để sửa chương trình. Ở bên mình mọi người cũng có kiến thức về Access nên biết là cứ bấm F11 là vào được data của chương trình.
Đáp
Trích:
Nguyên văn bởi hungtano Bạn phải làm 2 việc : 1) Vào Tools --> Startup : bỏ chọn tất cả các check box trên biểu mẫu này. (không cho users sử dụng các phím tắt) Còn muốn triệt để hơn, không cho xem code thì .mdb --> .mde 2) Disable phím SHIFT Nguyên lý : trong database có 1 thuộc tính (property) gọi là : AllowBypassKey. Thuộc tính này cho phép bạn enable/disable phím SHIFT. + Nếu AllowBypassKey = False --> disable phím SHIFT + Nếu AllowBypassKey = True --> enable phím SHIFT Cách làm : bạn tạo 1 Form (tạm gọi : F_ShiftKey) có 2 nút lịnh : 1 để enable và 1 disable phím SHIFT. Đưa 2 private sub dưới đây vào.......... Private Sub DisableSHIFTButton_Click() On Error GoTo ErrHandler Dim db As Database Dim ThuocTinh As Property Set db = CurrentDb db.Properties("AllowBypassKey") = False Set db = Nothing Egress: On Error Resume Next Set db = Nothing Set ThuocTinh = Nothing Exit Sub ErrHandler: MsgBox Err.Number If Err.Number = 3270 Then ' Property not found. Set ThuocTinh = db.CreateProperty("AllowBypassKey", dbBoolean, False) db.Properties.Append ThuocTinh Resume Next Else MsgBox Err.Description Resume Egress End If End Sub ================================================= Private Sub EnableSHIFTButton_Click() On Error GoTo ErrHandler Dim db As Database Dim ThuocTinh As Property Set db = CurrentDb db.Properties("AllowBypassKey") = True Set db = Nothing Egress: On Error Resume Next Set db = Nothing Set ThuocTinh = Nothing Exit Sub ErrHandler: MsgBox Err.Number If Err.Number = 3270 Then ' Property not found. Set ThuocTinh = db.CreateProperty("AllowBypassKey", dbBoolean, True) db.Properties.Append ThuocTinh Resume Next Else MsgBox Err.Description Resume Egress End If End Sub ++++++++++++++++++++++++++++++++++++++++++++++++++ OK chưa bạn ? .............................................. Chưa đâu ! Bây giờ đặt F_ShiftKey ở đâu trong chương trình để không ai được quyền mở ngoại trừ Admin ? Có nhiều cách : cách đơn giản nhất là đặt ….ở đâu cũng được với 1 điều kiện : để mở F_ShiftKey cần phải biết password. Ở sự kiện Form_Open, bạn yêu cầu nhập đúng password : Lambada mới cho mở form này. Private Sub Form_Open(Cancel As Integer) Dim Message, Title, MyValue Message = "Ban vui long cho biet mat khau :" ' Set prompt. Title = "Kiem tra" ' Set title. MyValue = InputBox(Message, Title) If MyValue <> "Lambada" Then DoCmd.Close End If End Sub |
Không có nhận xét nào:
Đăng nhận xét