【发布时间】:2015-06-06 02:49:03
【问题描述】:
我正在尝试制作一个与拆分表单类似的子表单。
我会使用 splitform,但据我所知,我不能只过滤拆分表单的数据表部分的结果,而不能过滤其余部分的结果。 看这里...
subformPartDetail 仅返回 OrderID 等于主窗体的 OrderID 的记录。主窗体中没有过滤器,因此无论 OrderID 是什么,它都会返回所有 partDetail 记录。在这个特定的例子中,主窗体有 21 条记录要循环,而子窗体只有 4 条。
当我使用子表单添加或删除记录时出现问题。当我尝试使用主窗体循环浏览记录时,添加的记录被跳过,删除的记录抛出错误,告诉我我试图去的记录已被删除。 我通过将这些放在子表单事件上来纠正它......
Private Sub Form_AfterInsert()
Dim frm As Form
Dim rst As Recordset
Set frm = Forms!PartDetails
Set rst = frm.Recordset
rst.Requery
End Sub
Private Sub Form_Delete(Cancel As Integer)
Dim frm As Form
Dim rst As Recordset
Set frm = Forms!PartDetails
Set rst = frm.Recordset
rst.Requery
End Sub
但是假设我尝试从子窗体中删除主窗体正在显示的记录。该代码不起作用,也不会重新查询。当我循环离开然后返回该记录时,它会引发错误。
我该如何解决这个问题?
我知道我可以在删除之前将记录从已删除的记录中移动
rst.move
我不知道从哪里开始测试正在删除的记录是否与主窗体正在显示的记录相同。
【问题讨论】: