2013-08-30 1 views
0

Je me rends un peu fou avec ça, et il y a probablement une solution super facile à me regarder en face, mais je ne le vois tout simplement pas.Sous-formulaire continu avec différents contrôles basés sur l'enregistrement de la source

Voici les tables et champs pertinents.

tblBooks (BookID (PK), Title, Author, Publisher) 
tblBookCategories (BookID (PK), CategoryID (PK), ReportID) 
refCategories(CategoryID (PK), CategoryName) 
tblReports (ReportID (PK), ReportDate) 

J'ai actuellement un formulaire pour entrer des livres dans tblBooks. Il y a un sous-formulaire qui a une liste déroulante qui permet de sélectionner des catégories à assigner au livre. C'est un sous-formulaire continu, de sorte que si plusieurs catégories sont pertinentes pour un livre particulier, des multiples peuvent être indiqués sur le sous-formulaire. La zone de liste déroulante est remplie avec des catégories de refCategories. Le livre est stocké dans tblBooks, et tblBookCategories stocke les catégories assignées à un livre particulier.

Les rapports sont envoyés périodiquement. Lorsqu'un rapport est envoyé, une entrée dans tblReports est créée et les entrées pertinentes dans tblBookCategories ont leur champ ReportID rempli avec l'ID du rapport. Ainsi, dans tblBookCategories, le champ ReportID a deux options: Un numéro de rapport, ou un champ vide. Ce que je voudrais faire est de faire en sorte que dans mon formulaire d'inscription au livre, où il y a des lignes dans le sous-formulaire continu, changez-le pour que la liste-sélecteur de catégorie-sélecteur soit remplacée par une étiquette Envoyé Blah Blah ". Donc, si un livre a été assigné à quatre catégories, et qu'une de ces catégories a été envoyée dans un rapport, alors il liste la catégorie ComboBox, Catégorie ComboBox, "Blah Blah envoyé", Catégorie ComboBox dans le sous-formulaire.

J'espère que cela a du sens. Je commence à penser que les sous-formulaires ne peuvent pas fonctionner comme ça, car il semble que tout ce que je fais au niveau du code affecte tous les enregistrements du sous-formulaire continu au lieu de celui avec lequel j'essaie d'interagir.

+0

Comment sélectionnez-vous/référence l'enregistrement individuel dans le sous-formulaire? Je pense qu'en le référençant et en utilisant une instruction if, vous devriez être capable de faire tout ce qui est nécessaire, y compris de modifier la liste déroulante. – Grant

+0

Le formulaire utilise tblBooks comme source d'enregistrement. Le sous-formulaire utilise actuellement tblBookCategories comme source d'enregistrement. La liste déroulante elle-même fait référence à refCategories. – nilomadison

Répondre

0

Vous avez raison, tout ce que vous faites dans le code affecte la vue de chaque enregistrement. Les formulaires en continu et les formulaires de feuille de données ne sont pas adaptés aux tâches pour lesquelles vous avez besoin de ce type de contrôle. Dans ce cas, vous devez envisager d'utiliser des contrôles ActiveX tels que MS List View ou iGrid de 10tec.

Questions connexes