Bonjour,
Je désire effectuer un maitre détail dans un état Fast report avec deux Query.
Le query maitre est "qryCasiers" et est remplit tout simplement avec une table d'une base Access.
Le second query (détail est l'ensemble de 3 tables de la base Access).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 with DM.qryCasiers do begin Active:= false; SQL.Clear; Datasource:= nil; SQL.Add('SELECT * FROM Casiers'); Active:= true; First; end;
Voici la requête SQL
Le soucis est que ce code ne donne aucune erreur, mais je n'ai aucune donnée sur mon état.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 With DM.qryVin_Lot_Cases do begin Active:= false; SQL.Clear; Datasource:= DM.dsCasiers; SQL.Add('SELECT Vins.VIN_ID, Vins.VIN_NOMVIN, Vins.VIN_PAYS, Vins.VIN_REGION, ' + ' Vins.VIN_TYPE, Vins.VIN_APPELLATION, Vins.VIN_CLASSEMENT, Lots.LOT_ID, ' + ' Lots.LOT_IDVIN, Lots.LOT_QTE, Lots.LOT_MILLESIME, Lots.LOT_FORMAT, ' + ' Cases.CA2_ID, Cases.CA2_IDCASIERS, Cases.CA2_NUMCOL, ' + ' Cases.CA2_NUMRANG, Cases.CA2_IDLOT ' + ' FROM Vins INNER JOIN (Lots LEFT JOIN Cases ON Lots.LOT_ID = Cases.CA2_IDLOT) ' + ' ON Vins.VIN_ID = Lots.LOT_IDVIN ');// + ' WHERE Cases.CA2_IDCASIERS = :Casiers.CA1_ID'); Active:= true; end;
Pour effectuer un contrôle, j'ai enlevé la dernière ligne de la requête détail, soit :
l'état généré est correcte mais bien sûr sans la relation maitre-détail, c'est à dire avec tous les enregistrement du query "qryVin_Lot_Cases" sont après chaque enregistrement du query "qryCasiers ".
Code : Sélectionner tout - Visualiser dans une fenêtre à part ' WHERE Cases.CA2_IDCASIERS = :Casiers.CA1_ID');
Mon code SQL est-il correcte ou y-a-t'il une erreur ?
Merci d'avance
Partager