我之前问过相关问题,但是并不能解决问题。因此,我将再次发布更多详细信息。
我有一个表单frmMain
,其中包含子表单frmSub
。 frmSub
包含一个组合框subCombo
。在subCombo
的Not_in_List事件中,我有以下代码:
If msgbox ("Do you want to add this data in list?", vbYesNo) = VbYes then
DoCmd.OpenForm "frmList", acNormal,,, acFormAdd, acDialog, NewData &";"
Response = acDataErrContinue
DoCmd.CancelEvent
Me.ActiveControl.Undo
End if
这将打开frmList
,在其中我成功添加了此新数据,并在其中的“保存”按钮中,我具有用于更新subCombo
的行源的代码:
DoCmd.Save
Me.Refresh
'make new data available in subCombo on frmMain
Forms!frmMain.frmSub.form.subCombo.Requery
但是这最后一行代码不起作用。因此,subCombo保持不受影响。 我不确定是什么引起了这个问题。如果您能提供帮助,将不胜感激。
答案 0 :(得分:0)
Refer to Form and Subform properties and controls
您需要
Forms!frmMain!frmSub.Form!subCombo.Requery
请注意其他.Form
答案 1 :(得分:0)
好,问题终于解决了!
结果表明,我不需要从subCombo
中重新查询frmList
,因为它是在acDailog
模式下打开的,并且已在Not_in_List
事件中暂停了先前的代码subCombo
。相反,我将me.subCombo.Requery
放在End If
事件中Not_in_List
行的前面,它像一个超级按钮一样起作用。最终代码如下:
`If msgbox ("Do you want to add this data in list?", vbYesNo) = VbYes then`
`DoCmd.OpenForm "frmList", acNormal,,, acFormAdd, acDialog, NewData &";"`
`Response = acDataErrContinue`
`DoCmd.CancelEvent`
`Me.ActiveControl.Undo`
`End if`