访问:同一数据库中的2个角色具有不同的角色

时间:2018-11-07 18:49:42

标签: ms-access

我在SharePoint上有一个Access数据库,并且必须使用两个用户角色:

  • 角色1 被分配给单个用户。他可以管理数据库的所有形式,并可以更改所有表。这些表格将需要将来发布。
  • 角色2 已授予许多用户。他们只能管理仅对数据库的单个表有效的一种形式。他不需要(也不必)查看/管理其他表单/表格(它们很多)。用于此角色的表格不需要以后的版本。

管理此最佳实践是什么?我考虑过以下两种解决方案,但可能还有第三个更好的解决方案。

解决方案#1

有2个不同的Access文件链接到同一个DB:一个具有所有形式(我给Role1的文件)和一个具有唯一形式(我给Role2的文件)。

解决方案2

只有一个我提供给两个用户的Access文件。 Role1具有对所有表单的读/写访问权限。 Role2只能看到特定的表单,而不能对其他表单进行读/写访问。

1 个答案:

答案 0 :(得分:1)

我建议使用解决方案#2 ,否则,如果您更改前端的逻辑,则必须始终对其进行两次更改,这确实很烦人。另外,如果您忘记同时更改两个版本,并且在逻辑上有很大的更改,那么您将需要使用旧版本的人员和使用新版本的人员。

我通常做的是以下操作。我有一个表格tblDeveloperAccess和您的角色1 ID。在第一个表单加载事件开始时,我有以下代码:

Dim db As Database
Dim rs As Recordset

Set db = CurrentDb
Set rs = db.OpenRecordset("tbDeveloperAccess", dbOpenSnapshot)

rs.FindFirst "ID = '" & Environ("USERNAME") & "'"

If rs.NoMatch Then

    DoCmd.NavigateTo "acNavigationCategoryObjectType", "acNavigationGroupTables"
    DoCmd.SelectObject acForm, vbNullString, True
    DoCmd.RunCommand acCmdWindowHide

    DoCmd.ShowToolbar "Ribbon", acToolbarNo

End If

基本上,我隐藏了功能区和对象导航。您甚至可以走得更远,并禁用上下文菜单和“ Shift + DblClick”技巧(在数据库文件上)。当然,我禁用了启动表单上的功能以进入设计视图。