在我的客戶表單中,我有 2 個文本框(tbHHName 和 tbHHID)和一個顯示子表單/子報告的導航控制元件 (nav)。當用戶單擊 tbHHName 時,會打開一個模式表單以選擇要查看的客戶端。在切換客戶端之前,表單顯示:
tbHHName:Client123
導航:Account1、Account2、Account3
切換到 Client456 后,顯示如下:
tbHHName:Client456
導航:Account1、Account2、Account3
這是它應該顯示的內容:
tbHHName:Client456
導航:Account4、Account5、Account6
在用戶單擊導航選項卡之一后,它會正確顯示,但我無法弄清楚如何在沒有單擊的情況下強制重繪 導航控制元件。任何建議將不勝感激。
所有導航的子表單/子報告都將 NavigationWhereClause 設定為:“[HH_ID] = tbHHID”
下面是 Form_Load 和 tbHHName_Click 子項
Private Sub Form_Load()
On Error Resume Next
'Set form recordsource
Me.RecordSource = "SELECT * FROM _HOUSEHOLDS WHERE HH_ID = " & GetSetting(AppName, Reg_JBGeneral, Reg_HH_ID, 0)
'Apologize to users
MsgBox "Please click on the Holdings tab again to refresh the data." & vbNewLine & _
" Sorry for the extra click," & vbNewLine & _
" -MaybeOn8", , AppName
End Sub
Private Sub tbHHName_Click()
On Error Resume Next
'open the form that sets new HH_ID value using the SaveSetting method
DoCmd.OpenForm "Households_Select", WindowMode:=acDialog
Form_Load
End Sub
提前致謝,所以
uj5u.com熱心網友回復:
我在主表單上使用 UNBOUND 組合框進行測驗以選擇過濾器引數,而 NavigationWhereClause 具有標準運算式HH_ID=Forms![NavForm]!Combo9。組合框 AfterUpdate 事件中的代碼:
Forms![NavForm]!NavigationSubform.Requery
然后我用代碼進行了測驗以更改組合框的值并重新查詢。
Forms!NavForm.Combo9 = 17
Forms!NavForm.NavigationSubform.Requery
這一切都有效,不涉及更改 RecordSource。現在只需決定在哪里放置更改控制元件值的代碼并重新查詢子表單。
此外,可以使用 DoCmd.BrowseTo 方法將焦點設定在特定的導航選項卡上。
uj5u.com熱心網友回復:
找到了解決辦法。我把它貼在 Form_Load 子的末尾:
Forms("Households").NavigationSubform.Report.FilterOn = False
Forms("Households").NavigationSubform.Report.FilterOn = True
盡管導航控制元件中有混合的子表單和子報表,但一切似乎都可以正常加載。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/329196.html
