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