我有一个小型 DBase,它在 6 个独立的商店中协调工具。选择您要查看的商店的名称可以很好地更新 qryInventory 的 SQL,以便它查看正确的表,但我无法让子表单更新。
我查看了下一个,发现了这段代码的几个变体,但我根本无法让它们工作。
Forms.Form_UpdateInventoryForm.Form_Inventory00.Requery
语法是:
[NameOfMainForm].[NameOfSubformControl].Form.Requery
如果您从主窗体运行它,您可以使用 Me 而不是 [NameOfMainForm]。小心使用子窗体控件的名称,而不是包含的窗体。Form 和 Requery 就像它们一样。表单是子表单控件的属性。
我遇到了这个问题,包括 Requery-ing 子表单失败。
至少在我的情况下,似乎解决该问题的方法是清除父(主)表单中子表单控件的 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