Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 在MS access中限制用户对表和查询的访问_Vba_Ms Access_Ms Access 2013 - Fatal编程技术网

Vba 在MS access中限制用户对表和查询的访问

Vba 在MS access中限制用户对表和查询的访问,vba,ms-access,ms-access-2013,Vba,Ms Access,Ms Access 2013,我有一个MS access数据库,包含4个表、4个查询和1个表单 是否有一种方法可以限制用户在打开access文件时仅查看表单。在密码保护的线路上打开表也就足够了 注意:我知道MS access()中的隐藏对象和组,但我认为没有密码保护功能来实现这一点,任何知道如何取消隐藏的用户都可以查看表和查询。MS access提供了两个启动选项。包括隐藏和禁用许多功能 此外,您还可以定义一个表单,以便在启动文件时打开,如下所示: Access选项>当前数据库>显示表单,选择要在启动文件时显示的表单 再向下

我有一个MS access数据库,包含4个表、4个查询和1个表单

是否有一种方法可以限制用户在打开access文件时仅查看表单。在密码保护的线路上打开表也就足够了


注意:我知道MS access()中的隐藏对象和组,但我认为没有密码保护功能来实现这一点,任何知道如何取消隐藏的用户都可以查看表和查询。

MS access提供了两个启动选项。包括隐藏和禁用许多功能

此外,您还可以定义一个表单,以便在启动文件时打开,如下所示:

Access选项>当前数据库>显示表单,选择要在启动文件时显示的表单

再向下滚动一点时,您可以禁用“显示导航窗格”,以不显示包含表单、表格、查询等的左侧窗格

顺便说一句,在启动文件时按住shift键时,所有启动选项都被禁用


查看所有详细信息的解释位置。

如果您的数据库被拆分,您可以从前端的一个副本中删除所有非必要对象,并将其分发给有问题的用户。但是,表单的任何依赖对象都需要随附(包括链接表),如果用户知道访问权限,他们仍然可以读/写表。这也会在分发新版本时造成混乱,因为DBA必须维护前端的多个版本


另一种方法是完全隐藏导航窗格。我不是说最小化,而是使用VBA使用
DoCmd.RunCommand acCmdWindowHide
将其关闭。正如您提到的,任何可以在VBA中运行此命令的用户都可以取消隐藏导航窗格,但普通用户将无法取消隐藏它。如果有人可以在VBA中取消隐藏nav窗格,您应该告诉他们在使用数据库时允许/禁止什么,以避免任何设计更改或绕过表单验证。如果他们理解Access/VBA,他们应该理解他们的行为何时会破坏平台。

如果您将表单设置为启动表单,并将数据库的文件扩展名更改为
.accdr
,它将以运行时模式打开,这意味着用户只能通过该表单执行您允许他们执行的任何操作。他们不能直接打开表或查询。这就足够了吗?@HansUp任何用户都可以更改文件名并打开它,并且可以访问表?是否有任何功能可以设置密码,以便只有管理员才能查看表?@goutam如果您使用的是.mdb数据库,则有用户级安全选项。此功能已在较新版本的Access中删除,在任何.accdb文件类型中都不可用。您应该能够通过“工具”>“安全”菜单进入用户级安全向导。