2014-01-14 12 views
5

Ich habe eine Hauptform "Eigenschaften", die zwei Teilformulare hat, von denen eine die Räume in dieser Eigenschaft anzeigt, die andere in jedem Raum.Filter in Unterformular einstellen

Wie Sie die Eigenschaft zu ändern, ändern sich die Zimmer im ersten Teilmaske, die kontinuierlich ist. Wenn Sie im Raumunterformular nach unten scrollen und einen neuen Raum aktivieren, möchte ich, dass sich die Bewohner im zweiten Unterformular ändern.

Dim dblRoomID As Double 
dblRoomID = Forms.Properties.frmRoomsByPropertySubform.Form.room_id 

, die erfolgreich von der ersten Subform die ROOM_ID zieht:

Bisher habe ich dies in dem aktuellen Ereignisse der „Eigenschaften“ Hauptform geschrieben.

Jetzt brauche ich, dass ROOM_ID verwenden, um einen Filter in der zweiten Unterformular zu setzen, die derzeit alle Insassen aller Eigenschaften zeigt, hat aber ein ROOM_ID Feld.

I cant

Forms.Properies.frmStudentsRoomQuickview.Form.Filter = "[Room_ID]=" & dblRoomID 

oder DoCmd.ApplyFilter an der Arbeit - ich habe auf der Annahme gearbeitet, dass dies, weil die aktive Form der ‚frmstudentRoomQuickview‘ sein muss, für die später zu arbeiten - aber Ich kann nicht verstehen, warum das Einstellen des Filters nicht funktioniert.

Edit: Ich sollte hinzufügen, kann ich nicht ein Unterformular in der „Zimmer“ Formular verwenden, da die Zimmer Bedürfnisse bilden kontinuierlich sein.

Edit 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 

ich jetzt bin immer Fehler auf

Antwort

6

Haben Sie versucht, drehen Sie den Filter „Prozedur-Deklaration Beschreibung des Ereignisses oder Prozedur mit demselben Namen nicht überein“?

Forms.Properies.frmStudentsRoomQuickview.Form.Filter = "[Room_ID]=" & dblRoomID 
Forms.Properies.frmStudentsRoomQuickview.Form.FilterOn = True 

Edit:

Ihr Update gesehen haben, ich das Problem verstehen. Das Problem besteht darin, dass Sie keinen Parameter an das _Enter-Ereignis übergeben können. Sie würden, so etwas zu tun haben:

Dim dblRoomID As Double 

Private Sub Form_Current() 

    dblRoomID = 0 

    If IsNull(Forms.Properties.frmRoomsByPropertySubform.Form.room_id) Then 
     Me.frmRoomsByPropertySubform.Visible = False 
     Me.frmStudentsRoomQuickview.Visible = False 
    Else 
     Me.frmRoomsByPropertySubform.Visible = True 
     Me.frmStudentsRoomQuickview.Visible = True 
     dblRoomID = Me.frmRoomsByPropertySubform.Form.room_id 
     DoStudentsRoomQuickViewFilter 
    End If 

End Sub 

Private Sub DoStudentsRoomQuickViewFilter() 
    If dblRoomID <> 0 Then 
     Me.frmStudentsRoomQuickview.Form.Filter = "[Room_ID] = " & dblRoomID 
     Me.frmStudentsRoomQuickview.Form.FilterOn = True 
     Me.frmStudentsRoomQuickview.Requery 
     Debug.Print Screen.ActiveForm.Name 
    End If 
End Sub 

Private Sub frmStudentsRoomQuickview_Enter() 
    DoStudentsRoomQuickViewFilter 
End Sub 
+0

Hallo, ich habe versucht, dass, ich werde mit dem meinem ursprünglichen Beitrag aktualisieren genauen Code, den ich geschrieben habe. – 7thGalaxy

+0

Ich habe meine Antwort @ 7thGalaxy bearbeitet - sehen, ob das für Sie funktioniert. –

+0

Es wurde gestoppt "Die Prozedurdeklaration stimmt nicht mit der Beschreibung des Ereignisses oder der Prozedur mit demselben Namen überein" - aber es setzt den Filter immer noch nicht - müssen Sie die Variable dblRoomID nicht an DoStudentsRoomQuickViewFilter() übergeben? Sonst wird dblRoomID <> 0 immer wahr sein? Wenn ich sie übergebe über, erhalte ich eine „Object dosn't diese Eigenschaft oder Methode“ Fehler – 7thGalaxy

1

Prüfen Sie die Rechtschreibung von „Eigenschaften“ ...

Forms.Properies.frmStudentsRoomQuickview.Form.Filter = "[Room_ID]=" & dblRoomID 
Forms.Properies.frmStudentsRoomQuickview.Form.FilterOn = True 
Verwandte Themen