IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

[Access] Update liant deux tables


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 62
    Points : 36
    Points
    36
    Par défaut [Access] Update liant deux tables
    Salut,
    J'aimerai faire la requête suivante :

    J'ai une table : Table1 qui contient plusieurs champs dont les champs A et B, A étant la clé

    J'ai une seconde table Table2 qui contient deux champs C et D, C étant la clé.

    Je souhaiterai mettre à jour le champ B de la Table1 en le remplaçant par les valeurs du champ D de la Table2 (pas compliqué mais dur à formuler ma question ), les deux tables étant liées par les champs A et C.

    Je sais évidemment qu'il faut faire un update mais je ne vois pas comment faire la jointure :
    UPDATE Table1 SET B = --> après je ne vois pas comment faire, si je met un SELECT ça plante
    (je suis sous vba access)

    Merci de votre aide

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Bonjour,

    ceci vous convient-il ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE Table1
       SET Champ_B = (SELECT Champ_D
                        FROM Table2
                       WHERE Champ_C = Champ_A)
    Il est également possible de rajouter une clause WHERE pour préciser quels enregistrements de Table1 sont à mettre à jour

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 62
    Points : 36
    Points
    36
    Par défaut
    J'ai essayé cette méthode qui semble tout à fait logique mais il me met une erreur :
    Aucune valeur pour un ou plusieurs des paramètres requis .
    J'ai oublié de préciser que certains champs sont présents dans ma Table1 et non dans ma table2.
    L'erreur viendrait-elle de la?
    J'ai également testé cela mais j'obtiens la même erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE Table1
       SET Champ_B = (SELECT Champ_D
                        FROM Table2
                       WHERE Champ_C = Champ_A)
       WHERE Champ_A IN (SELECT Champ_C FROM Table2)

  4. #4
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Est-il possible qu'il y ait plusieurs enregistrements dans la Table2 qui correspondent à un enregistrement de Table1 ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 62
    Points : 36
    Points
    36
    Par défaut
    La table2 est assez grosse (2000 enregistrements), a ce que j'ai vu il me semble pas mais par contre dans la table1 il y a plusieurs champs A identiques

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 62
    Points : 36
    Points
    36
    Par défaut
    De plus, il y a des enregistrements de la table1 qui ne sont pas présents dans la table2

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 62
    Points : 36
    Points
    36
    Par défaut
    C'est bon j'ai utilisé les recordsets et ça marche
    Des fois c'est plus facile d'y aller comme un bourrin

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/11/2007, 18h08
  2. Syntaxe Update entre deux tables
    Par lenoil dans le forum SQL
    Réponses: 5
    Dernier message: 02/10/2007, 16h12
  3. UPDATE de deux tables dans une meme requete
    Par onizuka159 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/05/2007, 14h09
  4. [D7-ACCESS-ADO] Joindre deux tables
    Par dleu dans le forum Bases de données
    Réponses: 6
    Dernier message: 25/11/2006, 14h16
  5. [D7],[Access], update d'une table à partir d'une autre
    Par iam dans le forum Bases de données
    Réponses: 4
    Dernier message: 06/11/2006, 18h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo