为链接 table 锁定 table 级别的字段

Lock fields at table level for linked table

我想构建尽可能简单的 MS Access 数据库,以允许用户编辑链接的 table(它链接到 SQL 服务器 table)。

我只希望用户编辑 10 个字段中的 2 个。

有什么方法可以在 table 级别做到这一点吗?我知道我可以在表单级别执行此操作,但我正在寻找真正快速简便的方法。我在想也许有某种方法可以通过验证规则来做到这一点,但我没有看到获得 previous/current 值的方法。

我想用 table 而不是表格来做这件事的主要原因是有一个类似于 excel 的功能,它允许您过滤 table 记录集通过右键单击该字段并过滤(只要您为 ODBC tables 打开它,就像 MSAccess and ODBC. Filter dialog doesn't show 一样)就非常容易。

@HansUp - 感谢您的回答。我认为您所描述的不会让我获得 table 视图中的过滤功能。还是我遗漏了什么?

您可以为用户提供 Access 查询以限制他们可以编辑的列。对于您不希望他们编辑的内容,请使用字段表达式而不是字段本身。对于您确实希望他们编辑的内容,只使用该字段本身:

SELECT y.ID + 0 AS [ID], y.text_field & '' AS [text_field], y.date_field
FROM YourTable AS y;

在该示例中,IDtext_field 将是 read-only,并且可以编辑 date_field

但是,我不太明白您为什么反对为此目的使用表单。对于您不希望用户更改其值的任何绑定数据控件,设置 Enabled = False and/or Locked = True 应该是快速且容易的。您可以从表单向导开始创建这样一个简单的表单,然后根据需要修改 EnabledLocked 属性。真的只需要几分钟。