更新动态SQL后重新查询子表单。

时间:2010-11-12 21:26:07

标签: sql ms-access dynamic subforms

我有一个小型DBase,它在6个不同的商店中协调工具。 选择要查看的商店名称会更新qryInventory的SQL 很好,所以它看着正确的表,但我还没有能够更新子表单。

我看了下一遍,发现了这段代码的几种变体, 但我根本无法让他们工作。

Forms.Form_UpdateInventoryForm.Form_Inventory00.Requery

2 个答案:

答案 0 :(得分:1)

语法为:

[NameOfMainForm].[NameOfSubformControl].Form.Requery

如果从主窗体运行此命令,则可以使用Me而不是[NameOfMainForm]。小心使用子窗体控件的名称,而不是包含的窗体。 Form和Requery就像它们的立场一样。表单是子表单控件的属性。

更多信息:http://www.mvps.org/access/forms/frm0031.htm

答案 1 :(得分:0)

我遇到了这个问题,包括重新查询子表单失败。

似乎解决了这个问题,至少在我的情况下,是在父(主)表单中清除子窗体控件的SourceObject属性,然后重置它。假设Form_Master已设置..

    Form_Master.SubformQuery.SourceObject = "" 'this is the important part
    Form_Master.SubformQuery.SourceObject = "Query.ListSearchQuery"

请注意,我正在做一个不起眼的事情,即使用Query作为源对象。这似乎迫使Access查看新的sql,即使它刚刚在引用的查询中发生了变化。

希望这也适用于正常形式的情况。你可以把它概括为像这样的东西

    Dim sourceReset As String
    Dim Form_Master As Form_Master 

    Set Form_Master = Forms!Master
    sourceReset = Form_Master.SubformControl.SourceObject
    Form_Master.SubformControl.SourceObject = ""  'force reset
    Form_Master.SubformControl.SourceObject = sourceReset