Đánh giá chủ đề:
  • 8 Votes - 3.25 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Phân quyền sửa Chương trình trong Access
#1
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
Trích dẫn: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
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn haquocquan , Cafe Via He , khaccuong , Silver_Wolf717 , findev
#2
Bạn noname ơi các sự kiện: EnableSHIFTButton_Click(); DisableSHIFTButton_Click() thì chạy ok rồi. Nhưng con sự kiện Form_Open thì gõ sai pass hoặc không gõ pass thì F_ShiftKey đều chạy. bạn kiểm tra lại giúp mình với nhé.

Chữ ký của khaccuong Xin chào, mình là khaccuong, Tham gia http://thuthuataccess.com/forum từ ngày 20-04 -11.
Reply
Những người đã cảm ơn
#3
(09-08-10, 01:16 AM)Noname Đã viết: 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
Trích dẫn: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

Mình làm theo hướng dẫn của bạn vào Tool-->Starup... thì menu View và Tool mất tiêu vậy làm sao để nó hiện lên lại.
Chữ ký của HDS06790 Xin chào, mình là HDS06790, Tham gia http://thuthuataccess.com/forum từ ngày 11-11 -11.
Reply
Những người đã cảm ơn
#4
(09-08-10, 01:16 AM)Noname Đã viết: 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.
......

End Sub
[/quote]

Cái này trong Access 2k7 hoặc 2k10 em làm nhưng không có tác dụng, có cách nào khác không vậy anh?
Em cảm ơn nhiều!
Chữ ký của findev Xin chào, mình là findev, Tham gia http://thuthuataccess.com/forum từ ngày 24-03 -12.
Reply
Những người đã cảm ơn
#5
làm mất thanh công cụ rùi giờ sao cho nó hiện lại đc ạ sad
k vào code sửa đc
Chữ ký của thanh260292 Xin chào, mình là thanh260292, Tham gia http://thuthuataccess.com/forum từ ngày 15-04 -13.
Reply
Những người đã cảm ơn
#6
sao e viết hok chay a noname ơi
http://www.mediafire.com/download/gri1pp...nghiem.rar
e làm xong zây lun hết sửa lun
Chữ ký của huyvu333 Xin chào, mình là huyvu333, Tham gia http://thuthuataccess.com/forum từ ngày 09-04 -14.
ღღღღღTài sản của huyvu333 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#7
minh moi vao nghe, xin tham gia y kien.
Luc dau minh cung dung startup nhung roi mat tieu, sau do minh su dung menu va dua startup nay vao quyen admin do do khi dang nhap admin thi co the loi ra duoc startup.
Chữ ký của nvthanghcm Xin chào, mình là nvthanghcm, Tham gia http://thuthuataccess.com/forum từ ngày 07-10 -14.
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  Nhập đường dẫn 1 file ảnh vào chương trình để lưu! Noname 29 11,199 08-09-16, 08:24 PM
Bài mới nhất: maidinhdan
  [Thủ Thuật] Hiểu đúng về phân quyền - MDE - SQL Backend ckno1no 6 669 28-07-16, 05:16 PM
Bài mới nhất: maidinhdan
  Lấy về số seri CPU, ổ cứng MainBoard trong Access Noname 33 12,303 08-06-16, 11:23 PM
Bài mới nhất: maidinhdan
  [Thủ Thuật] Ẩn record trong table theo ngày tháng tvn_hut 6 494 24-04-16, 01:00 AM
Bài mới nhất: tvn_hut
  Thuộc tính Startup MS Access toàn tập với VBA Noname 2 2,740 18-04-16, 04:50 PM
Bài mới nhất: ongke0711

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ