OVH Cloud OVH Cloud

Probleme de requete de mise a jour

2 réponses
Avatar
Whitetown
Bonjour à tous,

Je développe une base de données permettant de stocker des recettes,
j'ai deux tables principales :

Table recette :

id_recette nom_recette
1 poulet au curry
2 spaghetti bolognaise
...

Table detail recette :

id_detail id_recette code_ingredient nom_ingredient
1 1 402125 cuisse poulet
2 1 401121 riz basmati
3 1 401242 TOTO
4 2 401245 Boeuf haché
5 2 401784 TOTO
...


Je rentre mes recettes dans la base à l'aide d'une macro qui va chercher
dans des fichiers excel toutes les infos sur les recettes.
Si une erreur intervient lors de la recuperation de certains ingrédients, je
récupère le code de l'ingredient et je lui donne le nom TOTO

J'ai une autre table à part qui répertorie tous les codes ingredients ainsi
que leurs vrais noms :

Table ingredients

code_ingredient nom_ingredient
401242 curry
401784 tomate
401245 boeuf haché
...

Je souhaiterais faire une requete de mise a jour qui dans la table detil
recette remplacerait les TOTO par le nom de l'ingredient correspondant au
code_ingredient...

J'ai essayé avec cette requête SQL :

UPDATE T_detail_recette SET nom_ingredient = (Select
[Table_ingredient].[nom_ingredient] from [Table_ingredient] where
[T_detail_recette].[code_ingredient]=[Table_ingredient].[code_ingredient])
WHERE [T_detail_recette].[nom_ingredient]='TOTO';

access me sort "l'operation doit utiliser une requête qui peut être mise a
jour"

n'étant pas moi même un foudre de guerre d'access, je n'arrive pas à
résoudre ce pb!!!

si quelqu'un pouvait m'aider, je lui en serais fortement reconnaissant.

Bonne journée à tous

Whitetown

2 réponses

Avatar
Eric
Bonjour Whitetown,

Un SQL du genre à tester :
UPDATE T_detail_recette T1 INNER JOIN Table_ingredient T2
ON T1.code_ingredient = T2.code_ingredient
SET T1.nom_ingredient = T2.nom_ingredient
WHERE T1.nom_ingredient="TOTO";



J'ai essayé avec cette requête SQL :

UPDATE T_detail_recette SET nom_ingredient = (Select
[Table_ingredient].[nom_ingredient] from [Table_ingredient] where
[T_detail_recette].[code_ingredient]=[Table_ingredient].[code_ingredient])
WHERE [T_detail_recette].[nom_ingredient]='TOTO';

access me sort "l'operation doit utiliser une requête qui peut être mise a
jour"
--

A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Whitetown
Merci beaucoup Eric! c'est parfait
Bonne fin de journée!


Bonjour Whitetown,

Un SQL du genre à tester :
UPDATE T_detail_recette T1 INNER JOIN Table_ingredient T2
ON T1.code_ingredient = T2.code_ingredient
SET T1.nom_ingredient = T2.nom_ingredient
WHERE T1.nom_ingredient="TOTO";



J'ai essayé avec cette requête SQL :

UPDATE T_detail_recette SET nom_ingredient = (Select
[Table_ingredient].[nom_ingredient] from [Table_ingredient] where
[T_detail_recette].[code_ingredient]=[Table_ingredient].[code_ingredient])
WHERE [T_detail_recette].[nom_ingredient]='TOTO';

access me sort "l'operation doit utiliser une requête qui peut être mise a
jour"
--

A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr