Actualiser sous-formulaire à partir d'un autre sous-formulaire, les problèmes
J'ai 2 sous-formulaires dans le formulaire principal. Sub_2 affiche les détails de l'élément choisi dans sub_1, dans une liste. Pour les deux sous-formulaire, j'utilise le formulaire, et ils sont limités à 2 requêtes sur, avec un champ en commun, dire "id".
Ce que j'ai fait est d'ajouter le code dans le DClick événement sur sub_1 pour définir la sub_2 du filtre comme
Me.Parent.sub_2.Form.Filter = "id=" & "'" & Me.Recordset!id & "'"
Puis un requery
Me.Parent.sub_2.Form.Requery
Mais pas de chance, quand je double-cliquez sur le dossier dans sub_1, pas de changement dans sub_2. J'ai eu un coup d'oeil sur les questions pertinentes, je pense que cela devrait fonctionner...
Des suggestions? Je devrais peut-être utiliser une autre démarche à faire?
PS: je suis sûr que Me.Parent.sub_2.Filter
est changé, mais requery ne fonctionne pas.
EDIT:
Merci pour les réponses. J'ai trouver le problème, c'est le champ 'id' est dans la requête, mais il n'est pas affiché sur le sous-formulaire, donc peut-être que l'Accès ne peut pas l'utiliser.
Et quand le filtre est changé, l'Accès n'a actualiser automatiquement.
OriginalL'auteur darkjh | 2011-05-16
Vous devez vous connecter pour publier un commentaire.
Vous ne devez pas faire n'importe quoi avec le filtre de propriété.
Sur le premier sous-formulaire, définissez le Lien Maître des Champs et des Champs fils propriétés comme vous le feriez pour un régulier, un simple contrôle de sous-formulaire dans un formulaire.
Pour le deuxième sous-formulaire, définissez également le Lien de l'Enfant des Champs de propriété, comme vous le feriez pour un régulier, un simple contrôle de sous-formulaire. Le Lien de Maître Domaines de la propriété référence le nom de contrôle de la première sous-formulaire: [sous-Formulaire 1 de Contrôle Nom]!FieldName.
Dans la suractivation (OnCurrent) cas du premier contrôle de sous-formulaire, ajoutez la ligne suivante de code VBA:
Exécuter le formulaire. Lorsque vous cliquez sur une ligne dans le premier sous-formulaire, le deuxième sous-formulaire sera actualiser pour afficher les lignes enfants pour la ligne sélectionnée dans le premier sous-formulaire.
J'ai trouvé la solution ci-dessus ne fonctionnerait pas sans une certaine modification -- il doit être
Me.Parent.Controls!SubformName.Form.Requery
(c'est à dire, insérer unForm.
)OriginalL'auteur John Mo
Ensemble FilterOn True à la propriété après l'affectation de l'expression de Filtre.
OriginalL'auteur HansUp
Vous allez avoir besoin de quelque chose comme ce qui suit:
Je n'ai pas eu le temps de tester cela donc je ne peux pas vous dire à coup sûr si Subform1 et Formulaire2 devrait être le nom du sous-formulaire ou simplement le contrôle de sous-Formulaire/conteneur. Je pense que c'est le dernier.
Voici une excellente source pour ces sortes de questions:
http://access.mvps.org/access/forms/frm0031.htm
Mon seul reproche avec cette page, c'est qu'ils ne couvrent pas l'appel de méthodes, des sous-marins/fonctions, ou se référant à des variables publiques. Tous ces éléments sont (ou peuvent être) légèrement différente que les scénarios y sont énumérés.
OriginalL'auteur HK1