我有一個主窗體「屬性」,它有兩個子窗體,其中一個顯示房間中的房間,另一個房間中的其他人。在子窗體中設置篩選器
當您更改屬性時,房間會在第一個子窗體中更改,這是連續的。當您向下滾動房間子窗體,創建新房間時,我希望居住者在第二個子窗體中進行更改。
到目前爲止,我在「屬性」主窗體的Current事件寫成這樣:
Dim dblRoomID As Double
dblRoomID = Forms.Properties.frmRoomsByPropertySubform.Form.room_id
成功地翻出從第一子窗體的ROOM_ID。
現在我需要使用Room_ID在第二個子窗體中設置過濾器,該窗體當前顯示所有屬性的所有佔有者,但具有Room_ID字段。
我不能得到
Forms.Properies.frmStudentsRoomQuickview.Form.Filter = "[Room_ID]=" & dblRoomID
或docmd.applyfilter工作 - 我一直在努力的假設,這是因爲活性形式需要爲以後的工作中「frmstudentRoomQuickview」 - 但我不明白爲什麼簡單地設置.filter不起作用。
編輯:我應該補充一點,我不能使用「房間」窗體中的子窗體,因爲房間窗體需要連續。
編輯2:
Private Sub Form_Current()
Dim dblRoomID As Double
If IsNull(Forms.Properties.frmRoomsByPropertySubform.Form.room_id) Then
Forms.Properties.frmRoomsByPropertySubform.Visible = False
Forms.Properties.frmStudentsRoomQuickview.Visible = False
Else
Forms.Properties.frmRoomsByPropertySubform.Visible = True
Forms.Properties.frmStudentsRoomQuickview.Visible = True
dblRoomID = Forms.Properties.frmRoomsByPropertySubform.Form.room_id
Call frmStudentsRoomQuickview_Enter(dblRoomID)
End If
End Sub
Private Sub frmStudentsRoomQuickview_Enter(dblRoomID)
Forms.Properties.frmStudentsRoomQuickview.Filter = "[room_id] = " & dblRoomID
Forms.Properties.frmStudentsRoomQuickview.FilterOn = True
Forms.Properties.frmStudentsRoomQuickview.Requery
Debug.Print Screen.ActiveForm.name
End Sub
現在我就在「過程聲明不匹配事件或過程具有相同名稱的說明」錯誤
嗨,我已經試過了,我會更新我原來的職位與我寫的確切代碼。 – 7thGalaxy
我編輯了我的答案@ 7thGalaxy - 看看這是否適合你。 –
它停止了「過程聲明與具有相同名稱的事件或過程的描述不匹配」 - 但它仍未設置過濾器 - 是否必須將變量dblRoomID傳遞到DoStudentsRoomQuickViewFilter()中?否則dblRoomID <> 0將始終爲真? 當我確實通過它時,我得到一個「對象不支持這個屬性或方法」的錯誤 – 7thGalaxy