2016-07-22 70 views
0

我有一個包含四個子窗體的主窗體。訪問子窗體鏈接到子窗體中的選擇不會更新

第一個子表格Activity Subform_DatasheetView直接鏈接到主表格Compliance並根據三個下拉列表中的選擇查找記錄。

第二個子表單CommentDatasheet_Subform顯示與在第一個子表單中選擇的記錄相關聯的記錄。

第三個子表格Activity Subform_Detail顯示了第一個子表單中選定記錄的詳細信息。第四個子表單對第三個子表單的作用方式相同。

所有這些子窗體都可以工作,只要他們顯示我想要的細節,但只有在手動選擇每個子窗體並刷新它們之後。

問題:如何讓我的子表單自動更新/刷新?我只看到主窗體中的「點擊」事件選項。

+0

我也遇到過類似的問題。現在我從一個空白模板創建自己的表單,並使用vba中的自定義sql命令來控制所有數據流。更多的編碼,但它避免了使用子表單的麻煩和侷限性 – Michael

+0

我自己對這些子表單感到有些沮喪。我最初使用嚮導創建了第一個子表單,該向導基於我使用的表格命名子表單,所有這些表單都以「tbl_」作爲前綴。所以這個子表單被稱爲「tbl_xxxx子表單」......一團糟。我想重命名它......現在連接已斷開。無法弄清楚它是什麼錯誤。我調整了主/子字段...仍然不起作用。我明白了爲什麼你會開始使用SQL作爲解決方案。 – rohrl77

+0

我遇到了完全相同的問題。如果你想編輯一些東西,就好像你需要從子表單開始一樣。非常令人沮喪。絕對堅持SQL並處理所有的數據輸入並在VBA中進行驗證。我花了幾個小時習慣使用VBA作爲替代品,但我不會回頭。對不起,我忍不住 – Michael

回答

1

您可以創建你的子窗體的事件有型模刷新其他子窗體時,記錄被改變,就像這樣:

Subform_DatasheetView表單代碼

Public Event RecordChanged() 

Private Sub Form_Current() 
    RaiseEvent RecordChanged() 
End Sub 

Compliance表單代碼

Dim WithEvents m_Subform_DatasheetView As Form_Subform_DatasheetView 

Private Sub Form_Load() 
    m_SubForm_DatasheetView = Me.Subform_DatasheetView 
End Sub 

Private Sub m_Subform_DatasheetView_RecordChanged() 
    CommentDatasheet_Subform.Requery() 
    Subform_Detail.Requery() 
End Sub 
+0

語句Dim WithEvents m_Subform_DatasheetView引發錯誤。我從來沒有見過它。我是否需要添加參考以使其正常工作? – rohrl77

+0

@ rohrl77道歉,應該聲明爲'Form_Subform_DatasheetView' – Chawin

+0

@ rohrl77你的問題已解決? – Chawin