这真是令人费解。
我有一个子表单,它被设置为连续表单并从查询中接收数据。这是SQL
SELECT Top 12 Tbl_Parent_ITN.ID, Tbl_Parent_ITN.ITN_Number, Tbl_Child_ITN.ITN,
Tbl_Child_ITN.Parent_ITN_fk, Tbl_Scope_Rqmts.Completed, Tbl_Scope_Rqmts.Child_ITN_fk,
Tbl_Lkup_Requirements.Requirement, Tbl_Lkup_Basis.Basis
FROM Tbl_Parent_ITN INNER JOIN (Tbl_Lkup_Requirements
INNER JOIN (Tbl_Lkup_Basis INNER JOIN (Tbl_Child_ITN INNER JOIN Tbl_Scope_Rqmts
ON Tbl_Child_ITN.Id = Tbl_Scope_Rqmts.Child_ITN_fk) ON Tbl_Lkup_Basis.ID = Tbl_Scope_Rqmts.Basis_fk)
ON Tbl_Lkup_Requirements.ID = Tbl_Scope_Rqmts.Requirements_fk)
ON Tbl_Parent_ITN.ID = Tbl_Child_ITN.Parent_ITN_fk
WHERE (((Tbl_Parent_ITN.ID)=[Forms]![Frm_Parent_ITN_Main]![parent_id]));
SQL的where子句中的条件是基于此窗体之前的窗体中的控件传递的。该值是父表的主键,它与多个子表连接以获取子表单的所有数据。
当我打开带有子项的一条记录时,它可以很好地工作,表格中有12条记录。但是,当我在下一个父记录上运行相同的操作时,即使父母有4个子记录,我也不会在视图中获得任何结果。
真正令人困惑的是,当我独立于打开表单运行查询时,它根据第二个父记录向我提供了我想要的确切结果。此外,如果我将子表格更改为数据表,我仍然无法获得任何记录;但是,如果我选择那些列标题(但表单中没有显示记录),我可以在数据表格式的过滤器中看到结果。子格式的属性在两种情况下完全相同,所以我无法理解在第一种情况下会导致记录显示的内容,而不是第二种情况。
答案 0 :(得分:1)
一些建议: 1.尝试做一个Me.Refresh看看会发生什么。 2.在表单的OnError事件中设置一个断点,看是否有错误。 3.检查是否有任何其他数据源可能会锁定任何应刷新的数据。 4.验证在运行时期间是否更改了无定义数据父子关系的属性。 5.检查父记录ID是否在表单的OnCurrent事件中刷新。
希望这有帮助, FunkSoulBrother