Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/02/2011, 23h14   #1
Candidat au titre de Membre du Club
 
Inscription : février 2004
Messages : 125
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 125
Points : 12
Points : 12
Par défaut UPDATE avec jointure

Bonjour,
j'ai une table avec les colonnes codeArt, typeEnreg, rang.
J'ai des typeEnreg type1, type2, type3, type4.
Pour mes typeEnreg = type4 la valeur "rang" est renseignée.
J'aimerai affecter cette valeur à tous mes enregistrement avec le même codeArt

Le pb est que cela ne fonctionne pas...
Je posterai l'erreur demain mais si déjà vous avez une idée...

Donc, voilà les "erreurs":
Dans ce cas:
Code :
1
2
3
4
 
UPDATE TableArt T1
SET rang = (SELECT rang from TableArt T2 WHERE T1.codeArt = T2.codeArt AND T2.typeEnreg = 'type4')
WHERE T1.codeArt = T2.codeArt
j'ai "No value given for one or more parameters"
Je suppose que le référence à T2.codeArt dans le where de l'UPDATE pose souci, mais je ne sais pas comment le traiter.

et dans ce cas:
Code :
1
2
3
4
 
UPDATE TableArt T1
SET rang = (SELECT rang from TableArt T2 WHERE T1.codeArt = T2.codeArt AND T2.typeEnreg = 'type4')
WHERE T1.typeEnreg <> 'type4'
le message "Operation must use an updateable query"
(Je précise que je fais d'autres UPDATE qui ne pose pas de pb...)
Merci
kluh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 15h13   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 462
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 462
Points : 7 539
Points : 7 539
Bonjour ceci est une suggestion pas une certitude.

Ajoute l'option Distinct Row à la partie qui concerne TableArt et voit ce que cela donne.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 19h06   #3
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 410
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 410
Points : 4 439
Points : 4 439
bonjour,

je vais tenter une expérience SQL:

Code sql :
1
2
3
4
UPDATE TableArt T1 INNER JOIN TableArt T2 
ON (T1.CodeArt=T2.CodeArt AND T2.TypeEnr='type4')
SET T1.rang=T2.rang
WHERE T1.TypeEnr<>'type4';
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 21h17   #4
Candidat au titre de Membre du Club
 
Inscription : février 2004
Messages : 125
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 125
Points : 12
Points : 12
Merci, j'essayerai vos idées demain...
Le truc étant urgent j'ai découpé la requête en 2 avec une boucle en VBA...
Je pensais pas bloquer sur un truc comme ça...

P.S.: dans mes recherches je suis tombé sur un cas similaire où des personnes pensaient que le pb était du au fait que la table tableArt n'ait pas de clée primaire. Vous avez une opinion là dessus?

Merci!
kluh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h43.


 
 
 
 
Partenaires

Hébergement Web