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 via un Update (select)


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier Avatar de Arola78
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2003
    Messages : 133
    Points : 94
    Points
    94
    Par défaut Mise à Jour d'une table via un Update (select)
    Bonjour,
    J'ai encore un pb avec un Update à partir d'un select.
    J'ai tjrs ma table Valeurs :
    - nom
    - prénom
    - multiple
    chargée avec :
    - Dupont Didier 4
    - Dupont Charles 4
    - Dupont Louise 4
    - Dupont Marie 4
    - Pantin Luc 1
    - Rondau Emile 2
    - Rondau Lucie 2
    J'ai ajouté une colonne Coefficient (décimal,2).
    Je veux valoriser cette colonne par une valeur récupérée de la table Paramètres :
    - nbre
    - coefficient
    chargée avec :
    - 1 1,2
    - 2 1,4
    - 4 1,7
    J'ai donc écrit la requête :
    UPDATE Valeurs AS A SET A.Coefficient = (SELECT B.Coefficient from Paramètres B where A.MULTIPLE = B.nbre);

    Et j'ai de nouveau cette réponse dans une boite message :

    L’opération doit utiliser une requête qui peut être mise à jour

    Merci de consacrer qq minutes à mon pb.
    - Packard Bell SB85-P-020W Intel Core 2 Duo T7300 à 2,0 GHz RAM 2 Go NVIDIA GeForce 8600M GS Vista Edition Familiale
    - Acer VN7-791G-50UV - Windows 10 Home 64 bits - Intel Core i5-4210H 2,90 GHz - NVIDIA GeForce 940M
    Office Pro 2003

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut Lire une valeur
    Bonjour,

    Tu pourrais essayer avec un DLookUp, puisque tu veux 1 valeur à chaque fois, du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Valeurs AS A SET A.Coefficient = DLookUp("Coefficient","Paramètres","nbre = [A].[MULTIPLE]");
    Bon courage,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Membre régulier Avatar de Arola78
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2003
    Messages : 133
    Points : 94
    Points
    94
    Par défaut
    Bonsoir,
    J'ai éxécuté la requête et j'obtiens un message :

    Microsoft Access
    Manquant
    OK

    De + j'ai besoin d'ajouter une clause where dans ma requête mais je ne sais pas comment coder le ' ..AND..'
    - Packard Bell SB85-P-020W Intel Core 2 Duo T7300 à 2,0 GHz RAM 2 Go NVIDIA GeForce 8600M GS Vista Edition Familiale
    - Acer VN7-791G-50UV - Windows 10 Home 64 bits - Intel Core i5-4210H 2,90 GHz - NVIDIA GeForce 940M
    Office Pro 2003

  4. #4
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    Salut Arola78,
    Je te propose de lier la table Valeurs à la table Paramètres au niveau des champs Multiple (de la table Valeurs) et Nbre (de la table Paramètres) dans la requête.
    Ainsi, tu as une instruction SQL comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    UPDATE Valeur A INNER JOIN Paramètres B ON A.Multiple = B.Nbre 
    SET A.Coefficient = B.Coefficient;
    Ceci a été testé et vérifié avec une simulation à partir de tes données. Et ça marche!

    A+
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici nous avons réuni théorie et pratique: Rien ne fonctionne ... et personne ne sait pourquoi!
    Albert Einstein

  5. #5
    Membre régulier Avatar de Arola78
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2003
    Messages : 133
    Points : 94
    Points
    94
    Par défaut
    Bonjour,
    Super ça marche ! Merci Mahefasoa.
    Est-il possible de restreindre la liaison sur la table Paramètres en ajoutant qqchose du genre '...and A.Champ = constante'
    Si oui, quelle est la syntaxe de l'Update.
    Merci
    - Packard Bell SB85-P-020W Intel Core 2 Duo T7300 à 2,0 GHz RAM 2 Go NVIDIA GeForce 8600M GS Vista Edition Familiale
    - Acer VN7-791G-50UV - Windows 10 Home 64 bits - Intel Core i5-4210H 2,90 GHz - NVIDIA GeForce 940M
    Office Pro 2003

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

Discussions similaires

  1. [AC-2007] Mise à jour d'une table via VBA
    Par Korleone dans le forum VBA Access
    Réponses: 3
    Dernier message: 22/03/2014, 10h39
  2. [AC-2007] Mise à jour d'une table via Excel erreur 3078
    Par thomas17180 dans le forum VBA Access
    Réponses: 1
    Dernier message: 23/11/2012, 10h31
  3. mise à jour d'une table via un portail web
    Par jeanbernard.weck dans le forum SQL
    Réponses: 0
    Dernier message: 31/03/2010, 14h59
  4. [c# 2.0] Mise à jour d'une table via DataSet
    Par tscoops dans le forum ASP.NET
    Réponses: 4
    Dernier message: 04/01/2008, 13h52
  5. Mise à Jour d'une table via un formulaire
    Par Arola78 dans le forum IHM
    Réponses: 5
    Dernier message: 05/09/2006, 10h48

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