Problème de requêtes sur access - VB/VBA/VBS - Programmation
Marsh Posté le 30-08-2005 à 15:17:19
je ferais une jointure externe en affichant tous les nom employé
apres un test sur le champ "boulot attribué"
Marsh Posté le 30-08-2005 à 16:16:36
Le problème est que je ne peux pas tester sur le champ boulot attribué étant donné que je recherche les employés sans boulot.
J'ai en fait une table nommée "Jour employé" qui correspond à une journée effectuée par un employé à telle date sur telle chantier etc etc...
Je ne peux tester dessus puisque les personnes sans boulot attribué n'ont pas d'enregistrement sur cette table.
J'ai essayé de faire afficher tous les employés avec la condition : "n'apparait pas dans la requete "employé avec du boulot attribué"", mais ca me met une erreur de fonction d'agrégats un truc du genre
Marsh Posté le 30-08-2005 à 16:27:03
voici le message d'erreur exact :
Vous avez essayé d'exécuter une requête ne comprenant pas l'expression spécifiée : 'Not[Employés groupe].[Référence employés]=[requête gens qui bossent].[Référence employé] ,
comme une partie de la fonction d'agrégat.
Marsh Posté le 30-08-2005 à 17:27:01
De ce que je me souviens des cours de BDD.. l'opérateur différence ne peut etre effectuer que sur 2 tables comparables (i.e., contenant le meme nombres de colonnes avec des types identiques entre les colonnes de chaques tables)
Donc verifie que ta table ne contient que les noms des employes
Edit-> J'ai redige ce msg juste apres celui de Lenoiche, mais ayant ete derange, je ne l'ai poste que maintenant...
Marsh Posté le 30-08-2005 à 17:31:19
c est pour ca que je te dis de faire une jointure externe entre les 2 tables
tu as une table avec tous les employés (ceux qui travaillent et ceux qui n en ont pas )
et une autre table avec les gens ki travaillent
donc la jointure externe va faire un produit cartesien
il affichera tous les employés , et rajoutera les colonnes de ceux qui travaillent , laissant ces champs vide pour ceux qui ne travaille pas
et zou un test du champs vide et ca roulaize ........
Marsh Posté le 30-08-2005 à 17:41:57
Si je puis me permettre.. il me semble qu'il suffit de faire une selection de la table des employes pour ne garder que leur noms, puis de faire la difference avec la table contenant uniquement les noms des gens qui travaillent.
Marsh Posté le 31-08-2005 à 08:33:40
ca va pas ca?:
select NomEmploye from Employe
where NomEmploye not in
(Select NomEmploye from Jour_Employe)
Marsh Posté le 01-09-2005 à 09:54:18
bonjours a tous.
je suis nouveaux dans access , et j'ai du mal a resourdre un pb dans le cadre d'un projets .
en fait mon pb est le suivant. j'ai un formulaire qui me sert d'interface pour donnerles paramettres d'une requette.
dans le formulaire
jai le code (DoCmd.OpenQuery "nom de la requete" )
et dans la requete j'ais le code SQL suivant
Select*
FROM T29
WHERE (((T29.Feld10) Like forms!brice!Bucht & "*" ) And ((T29.Feld11) Like forms!brice!Leiste & "*" ));
ici j'ai comme nom de la table T29 ce que je veux c'est de pouvoir utiliser comme nom de la table une variable ,qui sera donne manuellement dans le formulaire(car en fait j'aimerai applique la mm requete a plusieur table identique
merci de votre reponse
Marsh Posté le 01-09-2005 à 11:28:28
ben au lieu d'utiliser DoCmd.OpenQuery tu te connectes proprement a ta bdd sia ODBC
un truc de la forme:
Code :
|
Marsh Posté le 30-08-2005 à 15:07:49
Bonjour à tous,
Pour une gestion de planning je souhaiterai créer une requête access qui affiche les employés sans travail attribué.
J'ai une table contenant le nom des employés, ainsi qu'une requête qui liste les employés avec du boulot attribué, mais impossible d'obtenir ce que je veux avec (en faisant la différence).
Je rage !! help me !