Réglage du Filtre dans le sous-Formulaire
J'ai un formulaire principal "Propriétés", qui a deux sous-formulaires, dont l'un présente les chambres de la propriété, de l'autre les occupants dans chaque chambre.
Que vous modifiez la propriété, les chambres de changement dans le premier sous-formulaire, qui est continu. Lorsque vous faites défiler la salle de sous-formulaire, la fabrication d'une nouvelle pièce active, je veux les occupants de changement dans le deuxième sous-formulaire.
Jusqu'à présent, j'ai écrit cela dans le Courant de l'événement de la "propriétés" du formulaire principal:
Dim dblRoomID As Double
dblRoomID = Forms.Properties.frmRoomsByPropertySubform.Form.room_id
Avec succès tire la Room_ID à partir de la première sous-Formulaire.
Maintenant, j'ai besoin d'utiliser que Room_ID pour définir un filtre dans la deuxième sous-formulaire, qui affiche actuellement tous les occupants de tous les biens, mais a un Room_ID champ.
Je ne peux pas obtenir
Forms.Properies.frmStudentsRoomQuickview.Form.Filter = "[Room_ID]=" & dblRoomID
ou docmd.applyfilter de travail - j'ai travaillé sur l'hypothèse que c'est parce que la forme active doit être le "frmstudentRoomQuickview" pour le plus tard, au travail mais je ne comprends pas pourquoi vous mettez le .le filtre ne fonctionnera pas.
Edit: je tiens à ajouter, je ne peux pas utiliser un sous-formulaire dans les "chambres", comme les chambres, le formulaire doit être continu.
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
Je suis maintenant "Procédure de déclaration ne correspond pas à la description de l'événement ou de la procédure ayant le même nom" erreurs
OriginalL'auteur 7thGalaxy | 2014-01-14
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayez de tourner le filtre?
Edit:
Avoir vu votre mise à jour, je comprends le problème. Le problème est que vous ne pouvez pas passer un paramètre à la _Enter événement. Que vous avez à faire quelque chose comme ceci:
J'ai édité ma réponse @7thGalaxy - voir si cela fonctionne pour vous.
Il est arrêté à la "Procédure de déclaration ne correspond pas à la description de l'événement ou de la procédure ayant le même nom" - mais c'est pas encore le réglage du filtre vous n'avez pas à passer la variable dblRoomID en DoStudentsRoomQuickViewFilter()? Sinon dblRoomID <> 0 sera toujours vrai? Quand je le fais passer à travers, je reçois un "Objet Dosn supporte pas cette propriété ou méthode" erreur
J'ai déclaré dblRoomID à l'extérieur de la Subs, à droite en haut de mon code. Cela signifie que je peux accéder à la variable dans tout le code de ce formulaire. En termes de votre question, puis-je suggérer le remplacement de "des Formes.Les propriétés." avec "Moi."? Voir mon montage ci-dessus.
Grand - c'est ce que fait le truc - je me demandais pourquoi il aurait besoin de qui?
OriginalL'auteur Jamie Dunstan
Vérifier l'orthographe de "Propriétés"...
OriginalL'auteur DaveG