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

Requêtes et SQL. Discussion :

Mise à jour d'une table avec une autre


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 30
    Points : 17
    Points
    17
    Par défaut Mise à jour d'une table avec une autre
    Bonjour,

    Je n'arrive pas à effectuer une petite manipulation sous Access 2007, et vu que je ne sais pas comment m'y prendre, je n'arrive pas à chercher efficacement dans les forums.
    J'ai une Table A avec 500 enregistrements.
    J'ai une Table B avec 300 enregistrements.

    Je veux faire une mise à jour de ma table B avec ma table A avec une condition, que la mise à jour se fasse que sur enregistrements présents dans ma Table B. Il y a un champ commun qui permet de retrouver ces enregistrements.

    J'ai testé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO TableB (CATEGO, FEU, TYP )
    SELECT [CATEGORIE],[FEUX],[TYPE]
    FROM TableA
    WHERE TableA.Chp1 = TableB.Chp2;
    Le soucis, c'est qu'il me dit qu'il met 500 enregistrements à jour et non 300 comme.

    Je ne comprend pas trop mon erreur, et je ne suis pas une super balaise de Access ...

    Merci de votre aide et de votre compréhension.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 596
    Points : 34 282
    Points
    34 282
    Par défaut
    salut,
    s'il s'agit d'une mise à jour, il faut regarder UPDATE et non pas INSERT INTO...
    d'autre part, dans ta partie SELECT, TableB n'existe pas, donc soit tu l'ajoutes dans ta clause FROM, soit tu fais une jointure
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 30
    Points : 17
    Points
    17
    Par défaut
    Avec une jointure, je peux mettre à jour mes champs de ma tableB à partir de ma tableA, car j'ai essayé, et ça me sort une table avec 500 enregistrements et non 300 comme ça devrait.


  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 596
    Points : 34 282
    Points
    34 282
    Par défaut
    bon,
    peux-tu nous dire exactement ce que tu cherches à faire ?
    quel champ est mis à jour à partir de quel autre ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 30
    Points : 17
    Points
    17
    Par défaut
    Je m'explique.

    J'ai une Table A (300 lignes) : Chp1_A, Chp2_A, Chp3_A
    J'ai une Table B (500 lignes) : Chp1_B, Chp2_B, Chp3_B

    Dans ma TableA, seul mon Chp1_A est renseigné. Il correspond au champ Chp1_B de ma TableB.
    Je veux migrer les données des deux autres champs de ma Table B vers ma Table A quand Chp1_A = Chp2_B. 300 enregistrements doivent donc être mis à jour/ajouter/ou je sais pas comment on dit.

    C'est plus clair comme ça ?

    Merci en tous cas pour tes efforts pour me comprendre et m'aider.

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 596
    Points : 34 282
    Points
    34 282
    Par défaut
    ok,
    essaye de voir ceci :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE TableA INNER JOIN TableB ON TableA.Chp1_A = TableB.Chp1_B SET TableA.Chp2_A = TableB.Chp2_B, TableA.Chp3_A = TableB.Chp3_B
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 30
    Points : 17
    Points
    17
    Par défaut
    Il me répond que l'expression JOIN n'est pas supportée. Faut-il que les champs soient dans un format spécial type texte, nombre ?
    Il me surligne les deux champs par lesquels on fait la liaison !

    C'est bizarre, car je suis sure avoir déjà effectué une telle procédure en SQL, mais Access m'a l'air différent.

  8. #8
    Membre régulier
    Inscrit en
    Août 2003
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 228
    Points : 92
    Points
    92
    Par défaut
    Bonjour,
    je suis dans le même cas que toi, j'arrive pas a mettre a jour une table avec un autre.

    Je suis tes messages
    Commandeur

  9. #9
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 596
    Points : 34 282
    Points
    34 282
    Par défaut
    voici une requête que j'utilise perso au bouot, qui marche très bien...
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE dbo_HEL_ISSUER_FILIATION INNER JOIN dbo_HEL_ISSUER ON dbo_HEL_ISSUER_FILIATION.ID_ISSUER = dbo_HEL_ISSUER.ID_ISSUER SET dbo_HEL_ISSUER_FILIATION.ID_ALIM = dbo_HEL_ISSUER.ID_ALIM;

    n'as-tu (n'avez-vous) pas des problèmes de références de projets ?

    quel est le code SQL exact de vos requetes ? les champs sur lesquels vous faites votre jointure sont-ils bien de meme type ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  10. #10
    Membre régulier
    Inscrit en
    Août 2003
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 228
    Points : 92
    Points
    92
    Par défaut
    voici un exemple

    tablea

    Code produit(sans doublons), nom , dimension

    Tableb

    code produit(avec doublons),Volume


    ont souhaiterais une requete qui mette a jour le champ "dimension" de la tablea avec les données de la tableb du champs "volume".

    la relation des deux tables sont code produit,
    Commandeur

  11. #11
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Comment savoir le volume à utiliser si il existe des doublons ?
    Le plus grand, le plus petit, le dernier renseigné (Bien que je ne voie pas de date) ?

    Soyez clair sur la description de vos tables !

    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  12. #12
    Membre régulier
    Inscrit en
    Août 2003
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 228
    Points : 92
    Points
    92
    Par défaut
    le volume n'a pas de donne differente:

    voici un extrai de tableB:

    codeproduit / volume
    456 / 12
    456 / 12
    582 / 13
    584 / 16
    897 / 11
    897 / 12
    Commandeur

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  2. [MySQL] requete dans une table avec une varible d'une autre table
    Par kogoi dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 03/11/2011, 15h24
  3. Réponses: 7
    Dernier message: 11/05/2010, 16h37
  4. Copier les enregistrements d'une table vers une table d'une autre DB
    Par karinette21 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2008, 21h50
  5. Réponses: 6
    Dernier message: 30/08/2007, 16h47

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