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 :

L'opération doit utiliser une requête qui peut être mise à jour. [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Points : 17
    Points
    17
    Par défaut L'opération doit utiliser une requête qui peut être mise à jour.
    Bonjour à tous,
    voilà j'essaie de faire fonctionner le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE TableDossier SET nochargedaff = (SELECT noChargeDaff FROM [Charge_D'affaire] WHERE [Charge_D'affaire].nomChargeDaff LIKE 'Machin');
    Mais mon code me renvoie une erreur "L'opération doit utiliser une requête qui peut être mise à jour."
    Ma base n'est pas en lecture seule et je ne vois pas mon erreur, merci d'avance à ceux qui voudront bien m'éclairer.

  2. #2
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Autotoaster,

    La partie
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT noChargeDaff FROM [Charge_D'affaire] WHERE [Charge_D'affaire].nomChargeDaff LIKE 'Machin'
    ne te renvoie-t-elle qu'un seul enregistrement ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Bonjour Richard_35,
    Oui, cette partie ne renvoie qu'un seul enregistrement, il n'y a pas deux fois la même valeur dans la table Charge_D'affaire. (Et je suis en train de me demander si retirer les apostrophes du nom de la table ne serait pas une bonne idée.)

  4. #4
    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,

    Citation Envoyé par Autotoaster Voir le message
    Et je suis en train de me demander si retirer les apostrophes du nom de la table ne serait pas une bonne idée
    Cela évite en général pas mal de soucis...


  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    J'ai enlevé les apostrophes, mais ça ne change rien à l'erreur.
    J'ai cherché du côté de microsoft mais la plupart de leurs conseils sont en rapport à des tables en lecture seule ou sur un autre serveur, et ça n'est pas mon cas.

  6. #6
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 722
    Points : 57 379
    Points
    57 379
    Billets dans le blog
    42
    Par défaut
    bonjour,

    avec DLookUp peut-être:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE TableDossier SET nochargedaff = 
    DLookUp("noChargeDaff", "[Charge_D'affaire]", "nomChargeDaff LIKE 'Machin'")

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par f-leb Voir le message
    bonjour,

    avec DLookUp peut-être:
    Je dois avouer que ça marche, même un peu trop bien.
    Je n'ai plus le message d'erreur, et toutes les cases ont été remplies du numéro associé à "Machin", même celles qui ne devaient pas l'être. Déjà cela m'a beaucoup aidé, je vous en remercie.

  8. #8
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    .../...toutes les cases ont été remplies du numéro associé à "Machin"
    ==> juste pour comprendre : qu'appelles-tu : "toutes les cases" ?

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par Richard_35 Voir le message
    ==> juste pour comprendre : qu'appelles-tu : "toutes les cases" ?
    Et bien en fait, dans une des tables je dispose d'un certain nombre de devis traités par des personnes,

    dans une autre table je dispose du nom de ces mêmes personnes dans une colonne, et dans une autre leur numéro de badge.

    Dans la première table j'ai rajouté une colonne numéro de badge, et par la formule je cherche à la remplir en comparant les deux tables sur les noms de personne.

    (Pas très pratique, mais avec la source que j'ai à adapter, je n'ai pas trop le choix)

  10. #10
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Hum... peut-être y-a-t-il des noms en double.

    Juste une remarque : le LIKE est utilisé pour tester des caractères génériques ("*", par exemple). Donc :

    nomChargeDaff LIKE 'Machin*'==> OK ;
    nomChargeDaff = 'Machin'==> OK ;
    nomChargeDaff LIKE 'Machin'==> n'est pas nécessaire.


    D'autre part,
    .../... même celles qui ne devaient pas l'être .../...
    ==> je n'ai pas compris si cela fonctionne ou pas, donc.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Et bien je devrais avoir comme résultat quelque chose comme ça
    ------------------
    | Machin| 012345|
    | Machin| 012345|
    | Truc| |
    | Chose| |
    | Machin| 012345|
    ------------------

    et à la place j'ai ça:
    ------------------
    | Machin| 012345|
    | Machin| 012345|
    | Truc| 012345|
    | Chose| 012345|
    | Machin| 012345|
    ------------------

    L'écriture se fait bien, mais pas de comparaison actuellement on dirait. J'essaye d'adapter la solution de f-leb pour que la comparaison se fasse.

    Sinon merci pour les conseils pour le LIKE et le =.

    EDIT:
    Ceci fonctionne et n'altère que les cases de la colonne des badges correpondantes aux cases de la colonne chargé d'affaire contenant "Machin":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE TableDossier SET nochargedaff = DLookUp("noChargeDaff","[Charge_Daffaire]","nomChargeDaff LIKE 'Machin'")
    WHERE chargedaff='Machin';
    Merci à tous!

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 16/02/2010, 07h41
  2. Réponses: 0
    Dernier message: 17/01/2010, 17h42
  3. Réponses: 1
    Dernier message: 18/12/2009, 10h29
  4. Réponses: 1
    Dernier message: 23/05/2008, 11h45
  5. Réponses: 7
    Dernier message: 29/04/2008, 12h16

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