j'ai rencontré ce problème, y compris l'échec de Requery-tion du sous-formulaire. Ce qui semble résoudre le problème, au moins dans mon cas, consiste à effacer la propriété SourceObject du contrôle de sous-formulaire dans le formulaire Parent (maître), puis à le réinitialiser. Cela suppose Form_Master est défini ..
Form_Master.SubformQuery.SourceObject = "" 'this is the important part
Form_Master.SubformQuery.SourceObject = "Query.ListSearchQuery"
Notez que je fais une chose obscure, qui utilise une requête comme l'objet source. Cela semble forcer Access à regarder le nouveau sql, même s'il vient de changer dans la requête référencée.
Heureusement, cela fonctionnerait aussi dans la situation de forme normale. Vous pourriez probablement généraliser à quelque chose comme ceci
Dim sourceReset As String
Dim Form_Master As Form_Master
Set Form_Master = Forms!Master
sourceReset = Form_Master.SubformControl.SourceObject
Form_Master.SubformControl.SourceObject = "" 'force reset
Form_Master.SubformControl.SourceObject = sourceReset
Juste une suggestion, mettez tous les magasins dans la même table (à moins qu'ils aient des champs radicalement différents) et ajoutez un champ de ShopID. De cette façon, tout ce que vous auriez à faire est de définir l'ID du magasin à une valeur de paramètre et d'éviter le SQL dynamique. – JeffO