是否有一种简单的方式允许用户只编辑他们创建的表单条目,并且只允许管理员编辑表格/所有表单?例如:我需要我的全体员工能够添加和编辑他们自己的会议,但无法编辑其他员工的会议。MS Access限制表格/表格访问
1
A
回答
3
这不是究竟是简单...访问曾经有各种安全内置(但仍然),但现在已被弃用,所以如果你的用户想要,并知道如何,他们可以绕过你的表格。访问真的不是一个安全的平台,所以你试图建立的任何安全性只会防止无意的错误,但不是一个半心半意的攻击。
无论如何,你需要捕捉每个用户的用户ID(Access无法做到这一点的最盒;此功能将做到这一点):
Private Declare PtrSafe Function WNetGetUser Lib "mpr.dll" Alias "WNetGetUserA" (lpName As Any, ByVal lpUserName As String, lpnLength As Long) As Long
Public Function WSUserName() As String 'Returns the workstation user name
Dim Ret As Long, cbusername As Long, UserName As String
UserName = Space(256)
cbusername = Len(UserName)
Ret = WNetGetUser(ByVal 0&, UserName, cbusername)
If Ret = 0 Then
UserName = Left(UserName, InStr(UserName, Chr(0)) - 1)
Else
UserName = ""
End If
WSUserName = UserName
End Function
然后,你需要使用它作为表格/表格中的Creating_User
文本字段的默认值。
你需要有一个tbl_Users
表,其中,至少,包含用户的WSUserName()
和IsAdministrator
是/否领域的UserID
场。
然后,在你的形式,在Form_Current
事件处理程序,您需要:
Me.AllowEdits = DLookup("IsAdministrator", "tbl_Users", "UserID = " & WSUserName()) Or Me.Creating_User = WSUserName()
Me.AllowDeletions = DLookup("IsAdministrator", "tbl_Users", "UserID = " & WSUserName()) Or Me.Creating_User = WSUserName()
这将阻止用户编辑/删除其他人的纪录,同时允许管理员编辑/删除任何人的记录。任何人都可以添加记录,并且Creating_User
字段默认为WSUserName()
,并且应该是只读的,只有他们(或管理员)才能对其执行任何操作。
此方法的唯一问题是它假设您的PC没有共享登录。如果PC在早上登录并且任何人都可以直接开始使用它,那么您将不得不采用不同的方法,但是对于用户使用自己的ID登录的个人电脑,这种方法可以很好地工作,工作,然后注销,然后别人可以登录。
相关问题
- 1. MS Access:制作表格
- 2. MS Access子表格
- 3. ms access access关闭表格
- 4. MS Access中的表访问权限限制
- 5. 从表格MS Access创建表格
- 6. MS Access表格过滤器问题
- 7. MS ACCESS从表格的
- 8. MS Access中的子表格
- 9. MS Access窗体和表格
- 10. 限制电子表格访问脚本
- 11. MS Access 2003:在表格更改时更新表格表格
- 12. MS访问限制
- 13. MS访问事件加载表格
- 14. ActiveX电子表格MS访问
- 15. 跨表格MS访问年龄计算
- 16. MS访问2007,单一表格到多个表格
- 17. 表单中的MS Access DMax限制?
- 18. MS访问控制从连续表格复制/粘贴数据
- 19. MS Access 2003 - 访问表单上的嵌入式Excel电子表格
- 20. 将Excel表格链接到MS Access中的表格 - 使用VBScript
- 21. Excel表格和MS Access表格加入visual studio C#
- 22. 将Excel电子表格导入现有的MS Access表格
- 23. 在MS Access 2007中更改表格
- 24. 在MS Access中显示空白表格
- 25. 使用COUNT ms-access创建表格
- 26. 从MS Access填写PDF表格
- 27. 在MS Access中组合2个表格
- 28. ms access 2003.mdb无法查看表格
- 29. 在MS Access上保存临时表格
- 30. TableAdapterManager和MS Access中的相关表格