如何保存我的Access表单以防止编辑字段?

时间:2012-08-08 18:35:41

标签: ms-access

我有一个表单作为我的一个表的前端。可以将此表视为顶级表,几乎所有其他表都与之相关。一旦填写了这个表格,特别是一旦其他表格也被填满,我真的不希望有人回来编辑那个顶级表格中的一些字段。这样做会真正改变整个系统的逻辑。如果我拥有一个我拥有的不同运输设备的历史维护记录数据库,并且在20年后将其中一辆车从汽车改为飞机,就会有类似的情况。历史记录不再有意义了。

所以我希望如果保存记录,我不希望某些字段被编辑。删除整个记录并重新开始就可以了,更改其他字段就可以了。只是不改变某些领域。此外,如果用户第一次创建记录,则可以改变主意。但是一旦保存了记录,那应该是它的结束。

我主要希望在表单级别使用VBA来防止这种情况。我不认为可以在数据库级别保护它。

我正在考虑OnCurrent中的某些内容,并检查自动增量ID是否为空,然后编辑是正常的,但如果ID有值,则不进行编辑?

2 个答案:

答案 0 :(得分:2)

标签属性通常很有用:

For Each ctl In Me.Controls
    If ctl.Tag = "SysLock" Then
        ctl.Locked = (Not Me.NewRecord)
<...>

之后,我建议您确保您的表具有创建时间戳和更新时间戳。写完这些后,您可以阻止编辑。例如,可能是在过去半小时内创建的任何记录都是合理的。

答案 1 :(得分:1)

您可以指定某种VBA甚至OnCurrent来查找正在查看的记录中是否存在数据 - 然后告诉它将输入框更改为Enabled = No和Locked = Yes - 这样,有无法将数据输入这些字段,甚至无法在Tab顺序中选择它们(如果我没记错的话)。