2012-12-06 5 views
1

J'ai du code pour remplir un seul sous-formulaire sur un formulaire principal avec un jeu d'enregistrements. Le problème est que les enregistrements ne sont pas affichés sur le sous-formulaire. Si j'ouvre le sous-formulaire comme une forme sur son propre puis avec presque le même code, il fonctionne parfaitement:Sous-formulaire Microsoft Access ne pas remplir

Forms!frmCorrespondanceHolidays.RecordSource = strsql ' WORKS FINE 
Me.frmCorrespondanceHolidays.Form.RecordSource = strsql 'SHOWS NO RECORDS 

Je l'ai testé que si je colle juste la valeur de strSQL dans une requête les enregistrements corrects sont renvoyés. Je commence à penser que c'est un bug dans Access. J'ai essayé de recréer la base de données en en créant une nouvelle et en important tous les objets. J'ai également réparé &. Je ne sais pas quoi d'autre à essayer!

Répondre

2

Le nom d'un sous-formulaire est différent du nom de la source du sous-rapport. Voici où vous devez rechercher le nom à référencer dans VBA. Vous sélectionnez le sous-formulaire une fois lorsque le formulaire parent est en mode Création et l'aspect des propriétés.

SubForm Name for VBA

+0

Il peut être mais je nomme généralement le contrôle sous-formulaire le même que le formulaire enfant. Si c'était le problème, j'obtiendrais une erreur disant que le contrôle n'a pas été trouvé mais que le code s'exécute correctement ne montre pas les enregistrements. Merci pour l'idée. – awestrope

+0

J'utilise Option Explicit – awestrope

0

Après une enquête plus approfondie, je l'ai trouvé est lié à la sql plutôt que le sous-formulaire. Si le sql inclut une requête qui ne référence pas les enregistrements de formulaire parent sont affichés. Si le sql inclut une requête qui fait référence au formulaire, aucun enregistrement n'est affiché. Je suppose que je vais devoir contourner cette limitation. Merci pour les pointeurs.