我是 MS Access 的新手。我有两个问题:
- 我有一个主表单,用户在其中输入车辆编号。在下面的子表单中,显示了该车辆的维护记录。现在我想要的是没有人应该能够对以前的记录进行更改,并且只允许添加新记录。如果需要 VB 代码,它应该放在哪里,主窗体还是子窗体?
- 新记录的 Mileage 值应该总是大于以前的值,对吗? 现在我如何读取最后的里程值以便将其与新值进行比较?
我会设置子表单允许编辑=否。
然后我会在主窗体上有一个按钮来启动另一个基于与子窗体相同的表的窗体。
因此,用户可以单击此按钮,添加记录,然后当他们关闭记录时,您刷新子表单以显示该新记录。
换句话说,您非常清楚子表单中的现有记录仅用于显示 - 不允许进一步编辑或更改。
所以在按钮后面(你把它放在主窗体上),你可以有这个代码:
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 更改为用于将子表链接回主窗体的列。子表单自动“设置”此值,但启动单独的表单不会