Ms access MS访问限制表/窗体访问
是否有一种简单的方法允许用户只编辑他们创建的表单条目,并且只允许管理员编辑表/所有表单?我需要我的全体员工能够添加和编辑他们自己的会议,而不能编辑其他员工的会议 这并不简单。。。Access过去内置了各种安全功能(现在仍然如此),但现在已经被弃用了,因此如果您的用户想要并且知道如何使用,他们可以绕过您的表单。Access确实不是一个安全的平台,因此您尝试构建的任何安全性都只能防止意外错误,甚至不能防止半心半意的攻击 无论如何,您需要捕获每个用户的用户ID(Access无法在开箱即用的情况下完成此操作;此函数将完成此操作): 然后,您需要将其用作表/表单中Ms access MS访问限制表/窗体访问,ms-access,Ms Access,是否有一种简单的方法允许用户只编辑他们创建的表单条目,并且只允许管理员编辑表/所有表单?我需要我的全体员工能够添加和编辑他们自己的会议,而不能编辑其他员工的会议 这并不简单。。。Access过去内置了各种安全功能(现在仍然如此),但现在已经被弃用了,因此如果您的用户想要并且知道如何使用,他们可以绕过您的表单。Access确实不是一个安全的平台,因此您尝试构建的任何安全性都只能防止意外错误,甚至不能防止半心半意的攻击 无论如何,您需要捕获每个用户的用户ID(Access无法在开箱即用的情况下完成此
创建用户
文本字段的默认值
您需要有一个tbl_Users
表,至少有一个UserID
字段,其中包含用户的WSUserName()
,以及一个isadmin
是/否字段
然后,在您的表单中,在当前的表单
事件处理程序中,您需要:
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()
这将阻止用户编辑/删除其他人的记录,同时允许管理员编辑/删除任何人的记录。任何人都可以添加记录,由于创建用户
字段默认为WSUserName()
,并且应该是只读的,因此只有他们(或管理员)才能对其执行任何操作
这种方法的唯一问题是,它假定您的电脑没有共享登录。如果电脑是早上登录的,任何人都可以走过来开始使用它,你将不得不使用另一种方法,但是这种方法对于用户使用自己的ID登录、完成工作、然后注销,然后其他人可以登录的电脑来说都很好用
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()