我有林通过完全难住了一个问题。 或者说,我有一个变通是凌乱的,我不明白为什么我想要做的不工作:
我有一个的MainForm /子窗体窝。 子窗体由主/子字段连接(均未形式editable-因此Im使用记录源字段直接而不是单独的控制)。 子窗体是连续形式; 这样子窗体显示在MainForm中在当前记录更改相关的主记录。 子窗体是基于查询 - 没有参数或过滤器被运用于─查询需要精确地呈现记录。 这一切都完美地工作(在当的MainForm的变化的记录,所以做了相关的子窗体记录)。
问题出现了,当我想根据不同的不同的查询(即基于不同的表)子窗体 - 但具有相同的唯一密钥(以下简称“ID”)和原始查询的字段。 的查询都是做工精细,并在窗体显示它们工作正常。
当我改变了窗体(所以从QueryA到QueryB)的记录源的问题就出现了。 该记录的子窗体是正确的(即查询结果显示为预期) - 但链接子字段不再工作:子窗体不再显示了它显示他们所有的查询 - 相关记录。 换言之,所述表格显示整个记录集,如同我没有LinkChild / LinkMaster集。
所以,在MainForm中是肘节控制的更新后事件的代码;
Private Sub optActRep_AfterUpdate()
Select Case Me.optActRep
Case 1
MainFormSubFormControl.Form.RecordSource = "QueryA"
Case 2
MainFormSubFormControl.Form.RecordSource = "QueryB"
End Select
IVE调试和属性“linkchldfields”仍设置正确(“ID”)。 我用尽记录源更新之前,这些设置为vbNullString和记录源更新(同样的问题)后复位。 奇怪的是,如果我更新在MainForm中的linkchildfield属性(在当前事件) - 那么它的工作原理,似乎火。 所以,
Debug.print Me!Subform.LinkChildFields
正确返回“ID”。 我可以把它开火的唯一途径是通过编码;
Me!Subform.LinkChildFields = "ID"
到MainForm中的Current事件(即,使得每次的MainForm记录更改,显示正确的QueryB记录)......虽然我只是在设定的财产,以什么我调试告诉我它已经被设置为。 它仿佛它不再火灾。
很迷茫。