|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Dan Steely Inscription : mai 2010 Messages : 14 ![]() |
Bonjour
Voila j'ai un problème, bien que j'ai suivi au mieux le tutoriel qui s'y prêtait. Comme vous pouvez voir sur le doc attaché, j'ai 4 Tables et un formaulaire comportant 2 combox: cmbManager et cmbProject. Mon souhait serai que lorsque je sélectionne dans cmbManager un nom, La cmbProject me donne tout les titres de project (Title_Project) dont cette personne s'occupe. Avec le code ci-dessous, je me retrouve systématiquement quelque soit le nom du manager sélectionné avec tous les titres de projets. Dans le tuto l'exemple était basée sur un projet à 2 tables... Merci de votre aide. karim Code :
|
||
|
|
00
|
|
|
#2 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 443 ![]() |
Ton SQL ressemble à un produit croisé c-à-d que tu prend tous les enrs de toutes tes tables. Il n'y a aucune jointure.
La solution la plus simple avec le SQL d'Access c'est de demander à Access de te l'écrire. Va dans l'éditeur de requête, monte ta requête en mode conception puis change l'affichage pour SQl. Ainsi tu peux voir ce que Access attend et le lui donner. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Dan Steely Inscription : mai 2010 Messages : 14 ![]() |
Bonsoir,
Merci pour ta réponse j'ai pu reproduire le code avec ta méthode nickel ça fonctionne bien. ![]() Par contre j'ai 2 petites questions additionnelles: 1) Comment puis-je découpé en plusieurs lignes cette commande sql sous VBA ? histoire d'eviter de faire l'essuie glace... 2) Je voudrais ajouter une liste déroulante sur les mêmes critères qui affiche la date de création du projet qui se trouve dans la table NN_manager_Project, quelle serait ta méthode ? dois-je ajouter un évènement sur la 2 eme combox cmdProject qui pointe une nouvelle liste déroulante ? Ou alors me servir de cet évènement pour afficher la nouvelle liste? Code :
SQL = "SELECT IT_Project_Manager.Manager, IT_Project_Title.Title_Project FROM (IT_Project_Title INNER JOIN IT_Project ON IT_Project_Title.ID_Title_Project = IT_Project.Titel_Project) INNER JOIN (IT_Project_Manager INNER JOIN NN_MAnager_Project ON IT_Project_Manager.ID_Manager = NN_MAnager_Project.IDManager) ON IT_Project.ID_Project = NN_MAnager_Project.IDProject WHERE ID_Manager =" & lngIDMan & " ORDER BY Title_Project" |
|
|
00
|
|
|
#4 | ||
|
Membre actif
![]() David Inscription : septembre 2007 Messages : 353 ![]() |
Bonsoir,
1) en utilisant le & _ Code :
par contre attention aux espaces, je te conseille de mettre un debug.print de ton sql car une erreur n'est pas tjs flagrante! 2) il faut procéder de la même manière, càd qu'il faut mettre à jour la 3ème liste sur un évènement de la 2ème |
||
|
|
00
|
|
|
#5 | ||||
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 443 ![]() |
Citation:
Code :
Citation:
Si tu veux combiner 2 choix successifs, (je n'ai pas bien compris ton besoin) il faut le faire à 2 places. Afin de rendre le code plus lisible tu pourrais faire 2 sub private pour gérer la liste 1 et la liste 2. Dans l'événement tu aurais un truc du genre : C'est une pratique recommandée de gardrer tes fonctions et procedures simples. C-à-d n'effectuant qu'une seule tâche à la fois. Un bon truc est d'essayer de la nommer avec un verbe d'action ou assimilié et un attribut comme ici MAJ_Liste1(). Si tu ne sépare pas cela donne MAJ_Liste1_Liste2. Si tu as une fonction/procedure que tu peux nommer MAJListe_OuvrirMAil_CommanderCafe_RepasserLinge_ReserverRestaurant_GererRDV ou c'est ta secrétaire ou elle fait probablement trop de chose :-). Évidement il faut éviter de tricher en choisissant TraiterDonnees() qui couvre 100% des actions de ton logiciel :-). Attention aussi à la sur-décomposion : c-à-d une fonction qui appele une function qui appele une fonction qui appele une fonction qui appele une fonction ... qui appele une instruction. Personnelement passer 3 niveaux d'imbrication j'ai du mal à suivre. À mon avis un très bon livre sur ces sujets est Code Complete de MIcrosoft Press. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
||||
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Dan Steely Inscription : mai 2010 Messages : 14 ![]() |
Merci Beaucoup Messieurs pour votre aide, quand à la secrétaire elles sont plusieurs et très busy à maintenir la machine à café en marche.
Elle tombe souvent en rade...(machines à capsules, c’est pas top), pour le repassage je repasserai une autre fois, elles sont déjà en mains. A+ merci encore |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com