MS Access子表单-仅允许添加

时间:2018-06-29 17:05:29

标签: ms-access subforms

我是MS Access的新手。我有两个问题:

  1. 我有一个主要的表单,用户可以在其中输入车号。在下面的子窗体中,将显示该车辆的维护记录。现在我想要的是,没有人应该能够在以前的记录中进行更改,并且只允许添加新记录。 如果需要将VB代码放置在主表单或子表单中
  2. 新记录的Mileage值应该始终大于以前的值,对吗? 现在如何读取最近的里程值,以便将其与新值进行比较

1 个答案:

答案 0 :(得分:1)

我将子表单设置为允许编辑=否。

然后,我将在主窗体上具有一个按钮来启动另一个窗体,该窗体基于与子窗体相同的表。

因此,用户可以单击此按钮,添加记录,然后在他们关闭记录时,刷新子窗体以使该新记录无效。

换句话说,您充分说明了子表单中的现有记录只能显示-不允许进行进一步的编辑或更改。

因此在按钮后面(将其放置在主窗体上),您可能会得到以下代码:

Dim f        As String
If Me.Dirty = True Then Me.Dirty = False ' force data save

f = "frmFoodAdd"

DoCmd.OpenForm f, , , , acFormAdd
Forms(f)!tblHotels_ID = me.id
DoCmd.OpenForm f, , , , , acDialog       ' change form to "wait" for user
Me.MySubForm.Requery

当然在上面,您将f更改为“您创建的表格允许添加一行”

tblHotels_ID = me.id

在上方,将tblHotels_ID更改为用于将子表链接回主窗体的列。子表单会自动“设置”此值,但会启动一个单独的表单,不会这样做