|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Marc BellêtreÉtudiant Inscription : mars 2011 Messages : 59 ![]() |
Bonjour,
Ma question est peut-être bête mais je débute en Access et je dois réaliser une application pour mon stage. Je vous explique le problème : J'ai un formulaire "Opérateur" qui contient une combobox et des onglets. Je travaille actuellement sur l'onglet "Fiches de poste" qui me permet de voir les fiches de l'opérateur sélectionné. J'ai donc fait pour l'instant une liste dans cet onglet, contenant toutes les fiches de poste de l'opérateur. Lors du changement d'opérateur dans la liste de recherche, la liste des fiches se met à jour, il n'y a pas de soucis à ce niveau. Maintenant, j'aimerais afficher lors de la sélection d'une fiche de poste la liste de tous les éléments de la fiche de poste dans un tableau. Pour cela, j'imagine que j'ai donc besoin d'un sous-formulaire, dont la requête sera modifiée en fonction du changement de fiche et d'opérateur. Comment peut-on, à partir d'une requête en VBA, parcourir un Recordset pour afficher les lignes du tableau une par une? Ou faut-il procéder autrement? Je vous remercie d'avance pour vos réponses. Cordialement, Prettyletter |
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Lionel GarnierConsultant informatique Inscription : octobre 2007 Messages : 134 ![]() |
Bonjour,
Je ne suis pas sûr d'avoir bien compris à 100%ce que tu veux faire! Mais une solution simple consiste peut être à créer une table temporaire à partir de ta requête SQL (SELECT INTO) puis d'avoir un formulaire qui pointe dessus. Sinon tu peux aussi créer un sous formulaire dont tu changeras la requête SQL source quand nécessaire (évènement after_update par exemple) Code :
Me.NomSousFormulaire.Form.RecordSource = "Requête SQL" |
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Marc BellêtreÉtudiant Inscription : mars 2011 Messages : 59 ![]() |
Je te remercie d'avoir répondu!
J'avais essayé déjà ta deuxième solution mais j'avais des erreurs. Je vais réessayer! Sinon, j'ai eu l'idée de créer un sous-formulaire avec champs pères et champs fils mais je ne sais pas comment récupérer la valeur sélectionnée dans la liste pour faire cela.. |
|
|
10
|
|
|
#4 |
|
Membre actif
![]() Lionel GarnierConsultant informatique Inscription : octobre 2007 Messages : 134 ![]() |
Personnellement j'utilise beaucoup cette solution et ça fonctionne très bien.
Pour éviter les erreurs je te conseille de: 1 - Créer le formulaire qui te servira de sous formulaire 2 - Lui ta chaîne SQL en propriété record source (basé sur une fiche de poste test) afin de tester 3 - Une fois que ça marche tu peux mettre le code que je t'ai donné dans le formulaire parent |
|
00
|
|
|
#5 | ||
|
Nouveau Membre du Club
![]() Marc BellêtreÉtudiant Inscription : mars 2011 Messages : 59 ![]() |
J'ai peut-être un début de solution mais, évidemment, il me faudrait la fin!
J'ai donc utilisé un sous-formulaire contenant toutes les informations dont j'ai besoin, créé avec l'assistant. L'idée est d'avoir en champs père l'identifiant de l'opérateur ET l'identifiant de la fiche, et en champs fils les champs correspondants. En revanche, je ne peux pas sélectionner dans les champs père l'identifiant de la fiche. J'ai donc essayé de le modifier par VB, mais ça ne fonctionne pas. Voici ce que j'ai écrit : Code :
|
||
|
|
00
|
|
|
#6 |
|
Membre actif
![]() Lionel GarnierConsultant informatique Inscription : octobre 2007 Messages : 134 ![]() |
Je crois qu'il te faut mettre des virgules plutôt que des points virgules.
Personnellement je n'utilise jamais cette fonction. J'aurais donc du mal à te fournir plus d'aide! |
|
00
|
|
|
#7 | ||
|
Membre actif
![]() Lionel GarnierConsultant informatique Inscription : octobre 2007 Messages : 134 ![]() |
Et je crois aussi que ça serais plutot quelque chose comme:
Code :
|
||
|
00
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Marc BellêtreÉtudiant Inscription : mars 2011 Messages : 59 ![]() |
Je vais plutôt faire ce que tu m'as dit, je pense que tu sais mieux que moi! C'est peut-être ma requête SQL qui était incorrecte, je vais revérifier et je posterai ma solution quand j'aurai trouvé. Merci beaucoup
|
|
|
00
|
|
|
#9 | ||
|
Nouveau Membre du Club
![]() Marc BellêtreÉtudiant Inscription : mars 2011 Messages : 59 ![]() |
J'ai fait comme tu m'as dit mais ça ne veut pas fonctionner. A chaque fois que je sélectionne une fiche dans la liste, j'obtiens d'abord une fenêtre me demandant un paramètre avec pour intitulé "2" puis une autre, la même avec "5".
Voici mon code VBA : Code :
Edit : Après vérification, je me suis trompé dans l'inclusion du sous-formulaire, j'ai mis une requête au lieu du formulaire. Je n'ai plus de boites de dialogue mais je n'ai pas de résultat et je vois un message s'afficher pendant une fraction de seconde dans la barre d'état du logiciel : "Impossible de mettre à jour ce jeu d'enregistrements"... |
||
|
|
00
|
|
|
#10 |
|
Nouveau Membre du Club
![]() Marc BellêtreÉtudiant Inscription : mars 2011 Messages : 59 ![]() |
L'erreur venait bien de la requête qui ne fonctionnait pas. Résolu! Merci beaucoup!
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com