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 :

Mettre à jour un champ du côté un d'une relation un-à-plusieurs. [AC-97]


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 21
    Points : 18
    Points
    18
    Par défaut Mettre à jour un champ du côté un d'une relation un-à-plusieurs.
    Bonjour à tous,

    J'ai un petit problème lors de l'exécution d'une requête de mise à jour :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE Mandataires 
    SET Mandataires.Total1R = (SELECT SUM(Volet1.V1Retr) 
    FROM Volet1,Mandataires 
    WHERE Mandataires.ID = Volet1.Mandataire);

    En effet les tables Mandataires et Volet1 sont en relation 1 à plusieurs. Mandataires étant du côté 1.

    Lorsque j'exécute ma requête qui devrait me permettre de mettre un jour le champs Total1R, j'ai droit au message d'erreur 3073 indiquant :
    Vous avez essayé d'exécuter une requête qui tente de mettre à jour un champ non modifiable. Par exemple, la requête a été créée de façon telle que vous essayez de mettre à jour un champ du côté un d'une relation un-à-plusieurs.
    Que faire pour contourner/palier à ce problème ?

    D'avance, un grand merci.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    bonsoir,

    j'ai resolu ce problème en creant une table temporaire de regroupement,
    celle ci met a jour ma table principale

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    Salut Richemo,

    Merci pour l'info, mais pourrais-je avoir un peu plus d'explications quant à la procédure stp ? Parce que je ne vois pas vraiment comment m'y prendre pour appliquer ta méthode.

    Merci.

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour à tous !

    cacoubalboa, à mon avis, ta requête est erronée.

    Je verrai plutôt ceci:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE Mandataires 
    SET Mandataires.Total1R = (SELECT SUM(Volet1.V1Retr) 
    FROM Volet1 
    WHERE Volet1.Mandataire = Mandataires.ID);
    Pourrais-tu la tester ?

    Si ça ne veut pas fonctionner, tu peux toujours utiliser la fonction de domaine DSum() fournie par Access.
    Fonctionnellement DSum() équivaut au SQL SELECT SUM(...), mais ce n'est pas aussi efficace.
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE Mandataires 
    SET Mandataires.Total1R = DSum("V1Retr", "Volet1", "Mandataire=" & Mandataires.ID);
    _

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    Bonjour JBO,

    La 1ère technique me sort toujours le même message, mais la seconde fonctionne parfaitement à 1ère vue.

    Grand merci à tous pour votre aide.

    *va en apprendre plus sur DSum* q:

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

Discussions similaires

  1. Mettre à jour des champs suite à un RecordSet
    Par Miss Ti dans le forum Access
    Réponses: 3
    Dernier message: 25/07/2006, 22h43
  2. Comment mettre à jour 1 champ d'une table via une autre tabl
    Par cpasmoibiensur dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 05/02/2006, 13h33
  3. [Conception] Comment mettre à jour le champ "ID"
    Par WeDgEMasTeR dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 29/01/2006, 02h36
  4. Impossible de mettre à jour un champs
    Par _developpeur_ dans le forum Access
    Réponses: 4
    Dernier message: 23/01/2006, 13h17
  5. [Swing]Mettre à jour un champ d'un autre Jfame
    Par yoyothebest dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 14/09/2004, 13h39

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