我在 Access 中遇到了 SubForms 的问题,有一些我不明白的地方。我有一个带有控件(组合)的表单(frm),并且表单包含一个子表单(subfrm)。在调试模式下,我创建了两个断点,一个在 combo_AfterUpdate,另一个在 frm_AfterUpdate。如果我更改组合中的数据,一切似乎都很好:
停在 combo_AfterUpdate > (保存表格) > 停在 frm_AfterUpdate
现在我将代码添加到更改 subfrm.Form.Recordset 的 combo_AfterUpdate 事件处理程序中:
停在 combo_AfterUpdate >(保存表格)> ...
不停在frm_AfterUpdate!?有谁知道为什么?
编辑:这里是在 combo_AfterUpdate 中执行的代码:
If Not IsNull(Me!childID) Then
Dim childSubSource As QueryDef
Set childSubSource = CurrentDb.QueryDefs("qry_parent_Detail_child_WithParam")
childSubSource.Parameters("childID").Value = Me!childID
Set frmChildSub.Form.Recordset = _
childSubSource.OpenRecordset(dbOpenDynaset, dbSeeChanges)
End If
编辑:有趣..如果我改变
Set frmChildSub.Form.Recordset = _
childSubSource.OpenRecordset(dbOpenDynaset, dbSeeChanges)
至
frmChildSub.Form.Recordsource= childSubSource.SQL
活动按预期进行。我检查了父窗体的脏属性,似乎问题出在此处。如果我通过 .recordset 将新对象分配给子表单,则父表单中的更改要么被保存要么丢失,无论如何,即使我更改了组合框,脏也是假的。
问候