Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Etat avec une liste complète

2 réponses
Avatar
pomu
J'ai une table (T1) contenant un champ avec une liste de d=E9faut (df)
et j'ai une autre table (T2) avec un champ contenant une liste
d'objets (ob) ayant un ou plusieurs d=E9fauts (df) de la table T1. Sur
un =E9tat imprim=E9 par objet (ob), j'aimerais que l'entier de la liste de
d=E9fauts (df) de la table T1 soit imprim=E9e et qu'une case =E0 cocher soit=

activ=E9e en regard de chaque d=E9faut (df) li=E9e avec l'objet (ob).
Comment arriver =E0 ce r=E9sultat inesp=E9r=E9... Bonnes f=EAtes =E0 toutes =
et =E0
tous et merci

2 réponses

Avatar
Fabien
J'ai une table (T1) contenant un champ avec une liste de défaut (df)
et j'ai une autre table (T2) avec un champ contenant une liste
d'objets (ob) ayant un ou plusieurs défauts (df) de la table T1. Sur
un état imprimé par objet (ob), j'aimerais que l'entier de la liste de
défauts (df) de la table T1 soit imprimée et qu'une case à cocher soit
activée en regard de chaque défaut (df) liée avec l'objet (ob).
Comment arriver à ce résultat inespéré... Bonnes fêtes à toutes et à
tous et merci
Bonjour à toi aussi Pomu,

Voici une première solution.
J'ai cependant considéré que tu avais 3 tables
- Table Piéces Cd Piece,Libelle
- Table Pieces Defaut : Code Piece code defaut
- Table Defaut : Code defaut, Libelle
et fait 4 requetes
R1
R2
R3 : R1 union R2
et
R4 Analyse croisées dynamique de R3

R1 : Classique : liste des pièces et de leurs defauts
SELECT Pieces.[Cd Piece], Pieces.Designation, Defaut.Defaut, True AS Etat
FROM (Pieces INNER JOIN [Piece Defaut] ON Pieces.[Cd Piece] = [Piece
Defaut].[Cd Piece]) INNER JOIN Defaut ON [Piece Defaut].[Cd defaut] =
Defaut.Cd;

R2 : elle ne sert qu'a avoir une pièce avec tous les defauts
SELECT 9999 AS cd, "AAAA" AS design, Defaut.Defaut, False AS Etat
FROM Defaut;

R3 :
SELECT *
FROM Requête1
UNION SELECT *
FROM Requête2;

R4 :
TRANSFORM First([Union R1 R2].Etat) AS PremierDeEtat
SELECT [Union R1 R2].[Cd Piece], [Union R1 R2].Designation
FROM [Union R1 R2]
GROUP BY [Union R1 R2].[Cd Piece], [Union R1 R2].Designation
PIVOT [Union R1 R2].Defaut;

Te donnera un tableau avec en lignes le code piéce et sa désigation, en
colonne le nom des défauts et en valeur null ou -1 selon que la piéce a
ou non ce défaut.

C'est pas exactement ce que tu cherches mais c'est pas trés loin ;-)
A toi de voir.

PS : dans la base EXEMPLE.MDB fournie avec ACCESS il y a un exemple
d'état dynamique basé sur une requete croisées dynamique ;-)

Avatar
Fabien
J'ai une table (T1) contenant un champ avec une liste de défaut (df)
et j'ai une autre table (T2) avec un champ contenant une liste
d'objets (ob) ayant un ou plusieurs défauts (df) de la table T1. Sur
un état imprimé par objet (ob), j'aimerais que l'entier de la liste de
défauts (df) de la table T1 soit imprimée et qu'une case à cocher soit
activée en regard de chaque défaut (df) liée avec l'objet (ob).
Comment arriver à ce résultat inespéré... Bonnes fêtes à toutes et à
tous et merci
Re.

Avec
SELECT Pieces.[Cd Piece], Pieces.Designation, Defaut.Defaut,
Sum([cd]=[cd defaut]) AS test
FROM Defaut, Pieces INNER JOIN [Piece Defaut] ON Pieces.[Cd Piece] =
[Piece Defaut].[Cd Piece]
GROUP BY Pieces.[Cd Piece], Pieces.Designation, Defaut.Defaut
ORDER BY Pieces.[Cd Piece], Defaut.Defaut;

Cà doit être OK