Grâce à Minot du forum, j'ai réussi à me débloquer dans un projet que je dois faire. Mais, j'avais oublié un petit détail, et je suis à nouveau coincé.
Situation actuelle, 4(+1) tables :
- principale : Invoices
- secondaires : make, model, color
- table temporaire : Temp_Invoices
je remplis la table Temp_Invoices avec l'import d'un fichier excel et je met à jour les 4 autres tables avec des inserts.
3 requêtes de ce type pour remplir les 3 secondaires :
Cette requête pour remplir la table principale avec les numéros de factures + les IDs des 3 autres tables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 INSERT INTO T_Color ( Color ) SELECT Temp_Invoices.Color FROM Temp_Invoices LEFT JOIN T_Color ON Temp_Invoices.Color = T_Color.Color GROUP BY Temp_Invoices.Color, T_Color.Color HAVING (((Temp_Invoices.Color) Is Not Null) AND ((T_Color.Color) Is Null)) ORDER BY Temp_Invoices.Color;
Aujourd'hui je me rend compte que le modèle doit également référencer la marque auquel il appartient. J'ai donc rajouté un champ "Make" dans la table "T_Modele" pour y insérer les IDs des marques .... mais je n'arrive PAS DUTOUT à le mettre à jour ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 INSERT INTO T_Invoices ( InvoiceNumber, NUM_Color, NUM_Make, NUM_Modele ) SELECT Temp_Invoices.InvoiceNumber, T_Color.Id_Color, T_Make.Id_Make, T_Modele.Id_Model FROM T_Modele RIGHT JOIN (T_Make RIGHT JOIN (T_Color RIGHT JOIN Temp_Invoices ON T_Color.Color = Temp_Invoices.Color) ON T_Make.Make = Temp_Invoices.Make) ON T_Modele.Modele = Temp_Invoices.Modele;
Vous pourriez m'aider à faire cette requête ?
Fichier Access en pièce jointe + fichier XLS
Partager