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

Access Discussion :

MAJ d'une table secondaire avec clé externe [AC-2003]


Sujet :

Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ergonome
    Inscrit en
    Juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ergonome
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2012
    Messages : 23
    Points : 22
    Points
    22
    Par défaut MAJ d'une table secondaire avec clé externe
    Grâce à Minot du forum, j'ai réussi à me débloquer dans un projet que je dois faire. Mais, j'avais oublié un petit détail, et je suis à nouveau coincé.

    Situation actuelle, 4(+1) tables :
    - principale : Invoices
    - secondaires : make, model, color
    - table temporaire : Temp_Invoices

    je remplis la table Temp_Invoices avec l'import d'un fichier excel et je met à jour les 4 autres tables avec des inserts.

    3 requêtes de ce type pour remplir les 3 secondaires :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO T_Color ( Color )
    SELECT Temp_Invoices.Color
    FROM Temp_Invoices LEFT JOIN T_Color ON Temp_Invoices.Color = T_Color.Color
    GROUP BY Temp_Invoices.Color, T_Color.Color
    HAVING (((Temp_Invoices.Color) Is Not Null) AND ((T_Color.Color) Is Null))
    ORDER BY Temp_Invoices.Color;
    Cette requête pour remplir la table principale avec les numéros de factures + les IDs des 3 autres tables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO T_Invoices ( InvoiceNumber, NUM_Color, NUM_Make, NUM_Modele )
    SELECT Temp_Invoices.InvoiceNumber, T_Color.Id_Color, T_Make.Id_Make, T_Modele.Id_Model
    FROM T_Modele RIGHT JOIN (T_Make RIGHT JOIN (T_Color RIGHT JOIN Temp_Invoices ON T_Color.Color = Temp_Invoices.Color) ON T_Make.Make = Temp_Invoices.Make) ON T_Modele.Modele = Temp_Invoices.Modele;
    Aujourd'hui je me rend compte que le modèle doit également référencer la marque auquel il appartient. J'ai donc rajouté un champ "Make" dans la table "T_Modele" pour y insérer les IDs des marques .... mais je n'arrive PAS DUTOUT à le mettre à jour ...

    Vous pourriez m'aider à faire cette requête ?
    Fichier Access en pièce jointe + fichier XLS
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expérimenté
    Avatar de minot83
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2006
    Messages
    972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 972
    Points : 1 430
    Points
    1 430
    Par défaut
    Dans l'ordre,
    on ajoute les nouvelles couleurs, s'il y en a, dans la table T_Color, puis les nouvelles marques.
    Et enfin, comme on dispose de toutes les marques, on lance la requête qui ajoute les nouveaux modèles associés à leurs marques grâce à cette requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO T_Modele ( Modele, NUM_Make )
    SELECT Temp_Invoices.Modele, T_Make.Id_Make
    FROM T_Make RIGHT JOIN (Temp_Invoices LEFT JOIN T_Modele ON Temp_Invoices.Modele = T_Modele.Modele) ON T_Make.Make = Temp_Invoices.Make
    GROUP BY Temp_Invoices.Modele, T_Make.Id_Make, T_Modele.Modele
    HAVING (((Temp_Invoices.Modele) Is Not Null) AND ((T_Modele.Modele) Is Null))
    ORDER BY Temp_Invoices.Modele;

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ergonome
    Inscrit en
    Juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ergonome
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2012
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    Merci beaucoup, je viens de voir que j'avais fait pareil ... mais avec de mauvaises jointures ...

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

Discussions similaires

  1. [VB.NET] Pb MAJ d'une table avec datagrid filtré
    Par Syrrus dans le forum Accès aux données
    Réponses: 8
    Dernier message: 17/04/2007, 17h34
  2. MAJ d'une table avec deux liens
    Par alaingui dans le forum Access
    Réponses: 3
    Dernier message: 16/01/2007, 17h19
  3. UPDATER le champ d'une table 1 avec le champ d'une table 2
    Par alain.dissoir dans le forum Oracle
    Réponses: 2
    Dernier message: 08/06/2005, 14h07
  4. cellule d'une table visible avec focus dans div scrollable
    Par echecetmat dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/03/2005, 11h57
  5. MAJ d'une table sous SQL Server par insertion
    Par keish dans le forum Langage SQL
    Réponses: 6
    Dernier message: 11/06/2003, 17h23

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