J'ai un formulaire/sous-formulaire pour entrer des données dans une table ado. Le jeu d'enregistrements du formulaire principal est une table locale de Widgets et des informations sur les widgets (WidgetID, WidgetName, taille, couleur, emplacement, etc.). J'entre les données de test (plusieurs tests par widget, toutes avec des dates uniques) à travers le sous-formulaire qui est connecté à un jeu d'enregistrements ADO à une table appelée Tests. J'ai une zone de liste déroulante, findWidget, dans le formulaire principal où l'utilisateur peut choisir un WidgetID et il met à jour quelques informations sur le formulaire principal. J'ai également écrit le code VBA pour faire le travail de la relation parent/enfant pour changer le jeu d'enregistrements du sous-formulaire pour montrer seulement les tests qui correspondent à ce WidgetID. Cependant, il y a un champ pour le WidgetID dans le sous-formulaire que je voudrais être rempli automatiquement quand je choisis le WidgetID dans le formulaire principal. Cela a juste fonctionné avant que j'aie appliqué le jeu d'enregistrements ADO (j'utilisais deux tables locales), et j'ai établi une relation parent/enfant. Cependant, avec ADO il semble que parent/enfant ne fonctionne pas, donc je dois le vba. Voici le code que j'ai essayé, c'est pour quand le sous-formulaire charge:
Private Sub Form_Load()
Me.UCI = Forms!InputMainForm.findWidget
End Sub
Le code s'exécute sans erreurs, mais le contrôle dans le sous-formulaire n'est pas mis à jour. Il est juste vide lors du chargement du formulaire. Peut-être que le code devrait être dans l'après mise à jour du combo findWidget? Je ne sais pas. Si je le mets là, je ne suis pas vraiment sûr de savoir comment se référer aux contrôles du sous-formulaire. Des idées?
Merci.MS Access. ADO recordset pour sous-formulaire. La relation de l'enfant est mise en place par programme. Ne remplira pas automatiquement le champ
1
A
Répondre
2
l'a corrigé. Je viens de définir la valeur par défaut du contrôle dans le sous-formulaire pour être égal au contrôle du formulaire principal. J'ai également placé le contrôle de sous-forme à verrouiller ainsi l'utilisateur ne pourrait pas choisir un widget différent. cela signifie qu'il n'y a qu'un seul endroit dans l'interface pour que l'utilisateur puisse choisir un widget et qu'il soit dans le formulaire principal (findWidget)
+0
Merci d'être revenu avec une réponse. – Fionnuala
Qu'est-ce qui vous fait penser que vous avez besoin d'un jeu d'enregistrements ADO? Pourquoi ne pas simplement définir Recordsource du sous-formulaire sur le SQL que vous utilisiez pour créer le jeu d'enregistrements ADO? Ensuite, le lien parent/enfant de l'objet sous-formulaire prendrait soin de remplir le FK dans le sous-formulaire. Il me semble que vous avez créé votre problème en ne faisant pas les choses de la manière standard d'Access, donc j'aimerais entendre une explication de pourquoi vous croyez que vous devez utiliser un jeu d'enregistrements ADO. –
la réponse simple est mon patron m'a dit d'utiliser ADO. Avant de "lier" les tables de notre base de données SQL. Pour ce faire, j'ai dû établir la connexion ODBC sur mon ordinateur. Je crois que l'idée d'utiliser ADO à la place est que vous n'avez pas à configurer l'ODBC. De cette façon, nous pouvons passer le mdb à n'importe quel employé et ils peuvent l'utiliser directement à partir de leur bureau. Et je ne peux pas me référer à cela par SQL. Une connexion doit d'abord être établie: une table liée ou une connexion ADO. – Matt