Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2520 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Update d'une colonne a partir d'une autre table access

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Update d'une colonne a partir d'une autre table access

n°1920831
Jarod511
****
Posté le 03-09-2009 à 09:56:40  profilanswer
 

Bonjour,
 
J'ai un petit soucis de requete sql dans ACCESS. Voilà je vous explique ce que je veux faire : j'ai une table access contenant le nom, le prenom dans la laquelle j'ai rajouté une colonne date qui est vide (nom de la table bank). Je voudrais remplir cette colonne date en fonction d'une autre table ACCESS  
(nom de la table bank2) qui contient le nom, prenom et la date.
 
J'ai essayé de faire ça :
update bank
set bank.date = bank2.date
where bank.nom = bank2.nom ;
 
Le problème c'est que ça me met la même date pour tout le monde sans prendre en compte la contrainte que le nom doit être égal dans la table bank et la table bank2.
 
Est ce que quelqu'un aurait une idée de comment faire ça ?  
 
Merci.

mood
Publicité
Posté le 03-09-2009 à 09:56:40  profilanswer
 

n°1920865
cezium
Posté le 03-09-2009 à 10:28:31  profilanswer
 

Code :
  1. update bank t1 set t1.date=(select t2.date from bank2 t2 where t1.nom=t2.nom)


 
Tu auras une erreur si le champ nom n'est pas unique dans la table bank2.


Message édité par cezium le 03-09-2009 à 10:30:15
n°1920871
Jarod511
****
Posté le 03-09-2009 à 10:48:22  profilanswer
 

Bonjour cezium,
 
Merci pour ta réponse. J'ai testé ta requête, le problème c'est que lorsque je l'execute sous ACCESS, il m'apparait une une boite de dialogue me demandant de rentrer un valeur de paramètre pour chaque champ de la requete.
Du coup ça revient à la même chose que de la faire à la main puisque je suis obligé de rentrer les noms un par un, à moins qu'il existe un paramètre sous access qui dise tous les champs??.  
Est ce qu'il existe un moyen d'executer une requete qui remplira la colonne date de bank pour tous les noms = noms de bank2?

n°1920906
cezium
Posté le 03-09-2009 à 13:30:39  profilanswer
 

Désolé, j'ai testé cette requête sous MySQL et elle fonctionne correctement.
 
Je ne connais pas les spécificités de l'update sous ACCESS.

n°1920907
Wysi
Posté le 03-09-2009 à 13:40:15  profilanswer
 

Sinon sous access ça ça devrait marcher :
 

Code :
  1. UPDATE Bank INNER JOIN Bank2 ON Bank.nom = Bank2.nom SET Bank.date = Bank2.date;


 
Sinon ta première requête marche en fait. En la modifiant un tout petit peu :
 

Code :
  1. update bank, bank2 set bank.date = bank2.date where bank.nom = bank2.nom ;


 
Mais j'imagine que tu avais fait la modif de toi même sinon tu te serais aperçu qu'il te générait une erreur.
 
Donc en fait je pense que tu as un autre problème pas du tout lié à ta requête.
 
En fait en relisant ce que tu écrivais, lorsque tu te retrouves face à

Citation :

il m'apparait une une boite de dialogue me demandant de rentrer un valeur de paramètre pour chaque champ de la requete.

Ca veut en général dire qu'access n'arrive pas à identifier le champs en question. (Vérifie l'orthographe de tes champs sur la base Bank2)


Message édité par Wysi le 03-09-2009 à 13:56:30
n°1920960
Jarod511
****
Posté le 03-09-2009 à 16:35:01  profilanswer
 

Merci Wysi pour ta réponse.
 
Ca marche impec !
Par contre, est ce qu'il est possible de rajouter 3 contraintes dans la requêtes  
 

Code :
  1. UPDATE Bank INNER JOIN Bank2 ON Bank.nom = Bank2.nom SET Bank.date = Bank2.date;


 
du style :
 

Code :
  1. UPDATE Bank INNER JOIN Bank2 ON (Bank.nom = Bank2.nom) AND (Bank.prenom=Bank2.prenom) AND (Bank.datenais = Bank2.datenais)
  2. SET Bank.date = Bank2.date;


 
Merci.

n°1920963
Wysi
Posté le 03-09-2009 à 16:42:51  profilanswer
 

Tu ferais ptet mieux de mettre une clef primaire dans ta table, non? :o
 
Edit : pour répondre quand même à la question, oui tu mets autant de contraintes que tu veux avec des AND


Message édité par Wysi le 03-09-2009 à 16:46:32

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Update d'une colonne a partir d'une autre table access

 

Sujets relatifs
Problème import données dans table liée SQL sous Access[RESOLU]Arrondi à partir d'une chaine de caractère
Generer aleatoirement un caractère à partir d'un tableaupb access vba
[ACCESS] Indirections SQL ?batch à partir d'un fichier ip plus fichier de log
Quelques conseils sur access !Lire le contenu d'un ftp VBA Access
[Access 2000] Limite Champs "Memo" 
Plus de sujets relatifs à : Update d'une colonne a partir d'une autre table access


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR