为链接 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;
在该示例中,ID
和 text_field
将是 read-only,并且可以编辑 date_field
。
但是,我不太明白您为什么反对为此目的使用表单。对于您不希望用户更改其值的任何绑定数据控件,设置 Enabled
= False and/or Locked
= True 应该是快速且容易的。您可以从表单向导开始创建这样一个简单的表单,然后根据需要修改 Enabled
和 Locked
属性。真的只需要几分钟。
我想构建尽可能简单的 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;
在该示例中,ID
和 text_field
将是 read-only,并且可以编辑 date_field
。
但是,我不太明白您为什么反对为此目的使用表单。对于您不希望用户更改其值的任何绑定数据控件,设置 Enabled
= False and/or Locked
= True 应该是快速且容易的。您可以从表单向导开始创建这样一个简单的表单,然后根据需要修改 Enabled
和 Locked
属性。真的只需要几分钟。