访问 - 允许更新数据,但只能通过表单

时间:2009-06-15 13:34:10

标签: sql-server ms-access ms-access-2007

在Microsoft Access 2007中,是否可以允许用户仅在通过表单进行编辑时选择和更新数据?

我有一个表格,其中包含外国表格的数据表(后者又有另一个子表格)。我希望用户只能通过表单中的数据表编辑自己的内容。

运行SQL后端,因此可以使用存储过程,并且只能执行具有EXECUTE权限的存储过程。

修改

表是否可以隐藏在Access中,用户无法显示它,除非他们是数据库所有者?或者,如何让子数据表运行存储过程来更新,而不是直接编辑表?我希望能够“深入研究”相关表格。

2 个答案:

答案 0 :(得分:2)

我想你已回答了自己的问题。

您可以使用存储过程来检索和更新数据,并删除任何链接表或删除对它们的UPDATE权限。

您将在表单字段中丢失方便的数据绑定,您必须在VBA中进行重新构建。

或者(为了保持数据绑定),您可以将表单指向只读数据源并捕获“Before Update”事件以执行实际更新,然后在Access绑定之前保存更新本身。这只是一个想法,我还没有测试它是否有效。

答案 1 :(得分:1)

如果您愿意深入研究Jet用户级安全性,您可以使用户无法读取链接表,并使用RWOP(Run With Owner Permission)查询以允许在表单中进行编辑。当然,您可以删除对数据库窗口的访问权限,以防止它们运行RWOP查询。这也可以通过对您使用RWOP查询的表单进行引用来增强,这将禁止它返回记录,除非它在表单内运行。