【发布时间】:2014-02-02 07:14:51
【问题描述】:
我有一个主窗体“属性”,它有两个子窗体,其中一个显示该属性中的房间,另一个显示每个房间中的居住者。
当您更改属性时,房间会在第一个子表单中发生变化,该子表单是连续的。当您向下滚动房间子表单时,使一个新房间处于活动状态,我希望居住者在第二个子表单中进行更改。
到目前为止,我已经在“属性”主窗体的当前事件中写了这个:
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
我现在收到“过程声明与具有相同名称的事件或过程的描述不匹配”错误
【问题讨论】:
标签: vba ms-access filter subform