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 16/06/2011, 17h14   #1
Nouveau Membre du Club
 
Homme
Étudiant
Inscription : juin 2011
Messages : 75
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 75
Points : 27
Points : 27
Par défaut Mise à jour d'une colonne par une autre colonne

Bonjour,
J'ai un problème concernant la mise à jour d'une colonne c1 d'une table t1, par les valeurs d'une colonne c2 d'une table t2.
Je sais que pour réaliser cette opération, il faut utiliser "UPDATE", et j'ai donc essayé le code suivant :

Code :
DoCmd.RunSQL ("UPDATE table1 SET table1.colonne1 = SELECT( colonne2 FROM table2 );")
Mon compilateur me dit qu'il y a une erreur de syntaxe dans le SELECT, mais je ne vois absolument pas où...

Bien entendu, j'ai aussi essayé
Code :
DoCmd.RunSQL ("UPDATE table1 SET table1.colonne1 = SELECT( table2.colonne2 FROM table2 );")
même résultat...

Si j'essaye
Code :
DoCmd.RunSQL ("UPDATE table1 SET table1.colonne1 = table2.colonne2 ;")
Il n'y a pas d'erreur, mais lors de l'execution, il m demande de taper un paramètre, avec comme message "table2.colonne2", ce qui évidemment je ne souhaite pas...

Merci d'avance
candrau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 17h23   #2
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 206
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 206
Points : 5 258
Points : 5 258
Salut,

Il faut déjà faire un lien entre table1 et table2

A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 17h26   #3
Nouveau Membre du Club
 
Homme
Étudiant
Inscription : juin 2011
Messages : 75
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 75
Points : 27
Points : 27
J'ai déjà essayé en mettant un lien, meme erreur au final, du coup je l'ai enlevé pour pas compliquer mon code...
candrau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 18h05   #4
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 206
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 206
Points : 5 258
Points : 5 258
le problème c'est qu'access ne va pas comprendre :

Tu ne peux pas lui dire :

"Mets à jour la colonne1 de la table1 avec la colonne2 de la table2"

Les mise à jour sql se font ligne par ligne, il vaut mieux parler de champ1 de la table1 et champ2 de la table2 :

Et justement pour mettre à jour ligne par ligne il faut 1 champ de liaison:

Tu ne peux pas non plus lui dire :

"Mets à jour le champ1 de la 1er ligne de la table1 avec le champ2 de la 1er ligne de la table2"
Puis
"Mets à jour le champ1 de la 2eme ligne de la table1 avec le champ2 de la 2eme ligne de la table2"

etc...

sans avoir recours à 1 champ de liaison


Une solution serait d'ouvrir 2 recordset en DAO:

1 pour la table1 et 1 pour la table2,

puis de parcourir simultanément les 2 tables en mettant à jour ligne par ligne le champ1 de la table2 avec le champ2 de la table2...
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2011, 09h48   #5
Nouveau Membre du Club
 
Homme
Étudiant
Inscription : juin 2011
Messages : 75
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 75
Points : 27
Points : 27
En fait, je me compliquais trop la vie hier, c'était la fin de journée, j'étais fatigué J'ai juste fait un doublon de ma table en rajoutant la colonne voulue, ça me prend une ligne, lol, je ne sais même pas comment j'ai fait pour ne pas le voir ^^ merci encore pour avoir pris du temps sur mon problème !
candrau est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h17.


 
 
 
 
Partenaires

Hébergement Web